Initial Commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Verify that the runtime dependencies declared in package.json match those
|
||||
* actually required by the source tree — no undeclared deps, no phantom deps.
|
||||
*/
|
||||
import { readFileSync } from "node:fs";
|
||||
import { join } from "node:path";
|
||||
import { describe, expect, it } from "@suaveplan/testing/runner";
|
||||
|
||||
const PKG_ROOT = join(import.meta.dirname, "..");
|
||||
const pkg = JSON.parse(
|
||||
readFileSync(join(PKG_ROOT, "package.json"), "utf-8")
|
||||
) as {
|
||||
dependencies: Record<string, string>;
|
||||
devDependencies: Record<string, string>;
|
||||
};
|
||||
|
||||
describe("dep-graph", () => {
|
||||
it("has zod as a runtime dep", { timeout: 5000 }, () => {
|
||||
expect(pkg.dependencies["zod"]).toBeDefined();
|
||||
});
|
||||
|
||||
it("has tslib as a runtime dep", { timeout: 5000 }, () => {
|
||||
expect(pkg.dependencies["tslib"]).toBeDefined();
|
||||
});
|
||||
|
||||
it("has @opentelemetry/api as a runtime dep", { timeout: 5000 }, () => {
|
||||
expect(pkg.dependencies["@opentelemetry/api"]).toBeDefined();
|
||||
});
|
||||
|
||||
it("does NOT have @suaveplan/error as a runtime dep (leaf package)", {
|
||||
timeout: 5000,
|
||||
}, () => {
|
||||
expect(pkg.dependencies["@suaveplan/error"]).toBeUndefined();
|
||||
});
|
||||
|
||||
it("does NOT have @suaveplan/types as a runtime dep (leaf package)", {
|
||||
timeout: 5000,
|
||||
}, () => {
|
||||
expect(pkg.dependencies["@suaveplan/types"]).toBeUndefined();
|
||||
});
|
||||
|
||||
it("has vitest as a devDep only", { timeout: 5000 }, () => {
|
||||
expect(pkg.devDependencies["vitest"]).toBeDefined();
|
||||
expect(pkg.dependencies["vitest"]).toBeUndefined();
|
||||
});
|
||||
|
||||
it("has @vitest/coverage-istanbul as a devDep only", {
|
||||
timeout: 5000,
|
||||
}, () => {
|
||||
expect(pkg.devDependencies["@vitest/coverage-istanbul"]).toBeDefined();
|
||||
expect(pkg.dependencies["@vitest/coverage-istanbul"]).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user