51 lines
1.8 KiB
TypeScript
51 lines
1.8 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 exactly error + types", {
|
|
timeout: 5000,
|
|
}, () => {
|
|
const pkg = JSON.parse(
|
|
readFileSync(join(__dirname, "..", "package.json"), "utf8")
|
|
) as {
|
|
dependencies?: Record<string, string>;
|
|
peerDependencies?: Record<string, string>;
|
|
};
|
|
const runtimeScoped = Object.keys(pkg.dependencies ?? {})
|
|
.filter((name) => name.startsWith("@suaveplan/"))
|
|
.sort();
|
|
expect(runtimeScoped).toEqual(["@suaveplan/error"]);
|
|
|
|
const peerScoped = Object.keys(pkg.peerDependencies ?? {}).filter(
|
|
(name) => name.startsWith("@suaveplan/")
|
|
);
|
|
expect(peerScoped).toEqual([]);
|
|
});
|
|
|
|
it("runtime deps are exactly the expected set", {
|
|
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(["@suaveplan/error", "tslib", "zod"]);
|
|
});
|
|
|
|
it("package metadata is consistent", { timeout: 5000 }, () => {
|
|
const pkg = JSON.parse(
|
|
readFileSync(join(__dirname, "..", "package.json"), "utf8")
|
|
) as {
|
|
name: string;
|
|
version: string;
|
|
type: string;
|
|
sideEffects: boolean;
|
|
};
|
|
expect(pkg.name).toBe("@suaveplan/api-openapi-ui-swagger");
|
|
expect(pkg.version).toBe("0.1.0");
|
|
expect(pkg.type).toBe("module");
|
|
expect(pkg.sideEffects).toBe(false);
|
|
});
|
|
});
|