Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
122 lines
3.9 KiB
JavaScript
122 lines
3.9 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import {
|
|
externalBundledTiptapImports,
|
|
packagePeerContractViolations
|
|
} from "./package-pack-peer-contracts.mjs";
|
|
|
|
test("accepts matching Tiptap peer and development dependencies", () => {
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/ui-rich-text", {
|
|
devDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/extension-document": "^3.23.6",
|
|
"@tiptap/extension-hard-break": "^3.23.6",
|
|
"@tiptap/extension-paragraph": "^3.23.6",
|
|
"@tiptap/extension-text": "^3.23.6"
|
|
},
|
|
peerDependencies: { "@tiptap/core": "^3.23.6" }
|
|
}),
|
|
["@tiptap/react is missing from peerDependencies"]
|
|
);
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/ui-rich-text", {
|
|
devDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/extension-document": "^3.23.6",
|
|
"@tiptap/extension-hard-break": "^3.23.6",
|
|
"@tiptap/extension-paragraph": "^3.23.6",
|
|
"@tiptap/extension-text": "^3.23.6",
|
|
"@tiptap/react": "^3.23.6"
|
|
},
|
|
peerDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/react": "^3.23.6"
|
|
}
|
|
}),
|
|
[]
|
|
);
|
|
});
|
|
|
|
test("rejects package-private or mismatched Tiptap dependencies", () => {
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/ui-rich-text", {
|
|
devDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/extension-document": "^3.23.6",
|
|
"@tiptap/extension-hard-break": "^3.23.6",
|
|
"@tiptap/extension-paragraph": "^3.23.6",
|
|
"@tiptap/extension-text": "^3.23.6",
|
|
"@tiptap/react": "^3.23.6"
|
|
},
|
|
peerDependencies: { "@tiptap/react": "^3.23.6" }
|
|
}),
|
|
["@tiptap/core is missing from peerDependencies"]
|
|
);
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/ui-rich-text", {
|
|
dependencies: { "@tiptap/extension-document": "^3.23.6" },
|
|
devDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/extension-hard-break": "^3.23.6",
|
|
"@tiptap/extension-paragraph": "^3.23.6",
|
|
"@tiptap/extension-text": "^3.23.6",
|
|
"@tiptap/react": "^3.23.6"
|
|
},
|
|
peerDependencies: {
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/react": "^3.23.6"
|
|
}
|
|
}),
|
|
[
|
|
"@tiptap/extension-document must be bundled from devDependencies",
|
|
"@tiptap/extension-document is missing from devDependencies"
|
|
]
|
|
);
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/agent-gui", {
|
|
dependencies: { "@tiptap/core": "^3.11.1" },
|
|
devDependencies: { "@tiptap/core": "^3.23.6" }
|
|
}),
|
|
[
|
|
"@tiptap/core must be a peer dependency",
|
|
"@tiptap/core is missing from peerDependencies",
|
|
"@tiptap/pm is missing from peerDependencies",
|
|
"@tiptap/react is missing from peerDependencies",
|
|
"@tiptap/starter-kit is missing from peerDependencies",
|
|
"@tiptap/suggestion is missing from peerDependencies"
|
|
]
|
|
);
|
|
assert.deepEqual(
|
|
packagePeerContractViolations("@tutti-os/agent-gui", {
|
|
devDependencies: { "@tiptap/core": "^3.11.1" },
|
|
peerDependencies: { "@tiptap/core": "^3.23.6" }
|
|
}),
|
|
[
|
|
"@tiptap/core must use the same peer and dev range",
|
|
"@tiptap/pm is missing from peerDependencies",
|
|
"@tiptap/react is missing from peerDependencies",
|
|
"@tiptap/starter-kit is missing from peerDependencies",
|
|
"@tiptap/suggestion is missing from peerDependencies"
|
|
]
|
|
);
|
|
});
|
|
|
|
test("finds component-internal Tiptap extensions left external", () => {
|
|
assert.deepEqual(
|
|
externalBundledTiptapImports(
|
|
"@tutti-os/ui-rich-text",
|
|
'import Document from "@tiptap/extension-document";'
|
|
),
|
|
["@tiptap/extension-document"]
|
|
);
|
|
assert.deepEqual(
|
|
externalBundledTiptapImports(
|
|
"@tutti-os/ui-rich-text",
|
|
'import { Extension } from "@tiptap/core";'
|
|
),
|
|
[]
|
|
);
|
|
});
|