Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/scripts/verify-phase-c-boundaries.test.mjs
T
2026-07-08 16:15:37 +02:00

35 lines
1.6 KiB
JavaScript

import assert from "node:assert/strict";
import { describe, it } from "vitest";
import { getDeclaredBoundaryDependencies, isForbiddenBoundarySpecifier, isForbiddenRelativeBoundarySpecifier } from "./verify-phase-c-boundaries.mjs";
describe("verify-phase-c-boundaries", () => {
it("matches exact forbidden packages and their subpaths only", () => {
assert.equal(isForbiddenBoundarySpecifier("@hivegrid/db", "@hivegrid/db"), true);
assert.equal(isForbiddenBoundarySpecifier("@hivegrid/db/client.server", "@hivegrid/db"), true);
assert.equal(isForbiddenBoundarySpecifier("@hivegrid/database", "@hivegrid/db"), false);
assert.equal(isForbiddenBoundarySpecifier("react-dom", "react"), false);
});
it("matches relative imports that resolve into forbidden package roots", () => {
const rootDir = "/repo";
assert.equal(isForbiddenRelativeBoundarySpecifier("packages/ui-app/src/index.ts", "../../db/src/client.server", "@hivegrid/db", rootDir), true);
assert.equal(isForbiddenRelativeBoundarySpecifier("packages/ui-app/src/index.ts", "../view-models/src/index", "@hivegrid/db", rootDir), false);
assert.equal(isForbiddenRelativeBoundarySpecifier("packages/foundation/src/index.ts", "@hivegrid/db", "@hivegrid/db", rootDir), false);
});
it("includes devDependencies in package boundary dependency checks", () => {
assert.deepEqual(
getDeclaredBoundaryDependencies({
dependencies: { "@hivegrid/view-models": "workspace:*" },
devDependencies: { "@hivegrid/db": "workspace:*" },
}),
{
"@hivegrid/view-models": "workspace:*",
"@hivegrid/db": "workspace:*",
}
);
});
});