Files
suaveplan/packages/api-stack/api/api-sandbox-permissions/tests/dep-graph.test.ts
2026-05-27 23:29:53 +01:00

46 lines
1.5 KiB
TypeScript

import { readFileSync } from "node:fs";
import { join } from "node:path";
import { describe, expect, it } from "@suaveplan/testing/runner";
describe("dep-graph", () => {
it("@suaveplan/* runtime deps are minimal (api-types, error, opentelemetry, types)", {
timeout: 5000,
}, () => {
const pkg = JSON.parse(
readFileSync(join(__dirname, "..", "package.json"), "utf8")
) as {
dependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
};
const runtime = Object.keys(pkg.dependencies ?? {})
.filter((name) => name.startsWith("@suaveplan/"))
.sort();
expect(runtime).toEqual([
"@suaveplan/api-types",
"@suaveplan/error",
"@suaveplan/opentelemetry",
"@suaveplan/types",
]);
const peers = Object.keys(pkg.peerDependencies ?? {});
expect(peers).toEqual([]);
});
it("full runtime dependency set is the documented allowlist", {
timeout: 5000,
}, () => {
const pkg = JSON.parse(
readFileSync(join(__dirname, "..", "package.json"), "utf8")
) as { dependencies?: Record<string, string> };
const runtime = Object.keys(pkg.dependencies ?? {}).sort();
expect(runtime).toEqual([
"@opentelemetry/api",
"@suaveplan/api-types",
"@suaveplan/error",
"@suaveplan/opentelemetry",
"@suaveplan/types",
"tslib",
"zod",
]);
});
});