Files
moltbot/test/scripts/dependency-changes-report.test.ts
Josh Avant bd4db5ee62 Add dependency release safety evidence and PR awareness (#81325)
* test: cover dependency pin guard

* build: add dependency vulnerability gate

* build: add dependency risk report

* build: add dependency drift reports

* build: include dependency ownership surface evidence

* build: rename dependency report commands

* build: respect release age exclusions in risk report

* build: clarify transitive risk accounting

* build: remove transitive risk exception registry

* build: clarify transitive risk signal wording

* ci: attach dependency evidence to release preflight

* ci: extract dependency release evidence generator

* build: rename ownership surface dependency report

* ci: clarify release evidence naming

* build: clarify recently published risk report

* build: reorder transitive risk report sections

* build: fix ownership surface pluralization

* ci: surface dependency changes on PRs

* ci: harden dependency change awareness

* ci: use dependency changed PR label

* build: fix dependency report lint

* docs: add dependency safety changelog
2026-05-13 03:05:09 -05:00

43 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { createDependencyChangesReport } from "../../scripts/dependency-changes-report.mjs";
describe("dependency-changes-report", () => {
it("reports added, removed, and changed packages", () => {
const report = createDependencyChangesReport({
basePayload: {
removed: ["1.0.0"],
stable: ["1.0.0"],
changed: ["1.0.0"],
},
headPayload: {
added: ["1.0.0"],
stable: ["1.0.0"],
changed: ["2.0.0"],
},
dependencyFileChanges: [
{ status: "M", path: "pnpm-lock.yaml", oldPath: null },
{ status: "M", path: "pnpm-workspace.yaml", oldPath: null },
],
generatedAt: "2026-05-12T00:00:00Z",
});
expect(report.summary).toEqual({
basePackages: 3,
headPackages: 3,
addedPackages: 1,
removedPackages: 1,
changedPackages: 1,
dependencyFileChanges: 2,
});
expect(report.dependencyFileChanges).toEqual([
{ status: "M", path: "pnpm-lock.yaml", oldPath: null },
{ status: "M", path: "pnpm-workspace.yaml", oldPath: null },
]);
expect(report.addedPackages).toEqual([{ packageName: "added", versions: ["1.0.0"] }]);
expect(report.removedPackages).toEqual([{ packageName: "removed", versions: ["1.0.0"] }]);
expect(report.changedPackages).toEqual([
{ packageName: "changed", addedVersions: ["2.0.0"], removedVersions: ["1.0.0"] },
]);
});
});