diff --git a/test/scripts/root-dependency-ownership-audit.test.ts b/test/scripts/root-dependency-ownership-audit.test.ts index 3490277306b..66651cc8c53 100644 --- a/test/scripts/root-dependency-ownership-audit.test.ts +++ b/test/scripts/root-dependency-ownership-audit.test.ts @@ -182,18 +182,28 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { scanRoots: ["src", "packages"], }); - expect(records).toMatchObject([ + expect(records).toEqual([ { category: "core_runtime", + declaredInExtensions: [], depName: "pdfjs-dist", + fileCount: 1, + internalizedBundledRuntimeOwners: [], + recommendation: "keep at root", sampleFiles: ["src/media/pdf-extract.ts"], sections: ["src"], + spec: "^5.0.0", }, { category: "core_runtime", + declaredInExtensions: [], depName: "sqlite-vec", + fileCount: 1, + internalizedBundledRuntimeOwners: [], + recommendation: "keep at root", sampleFiles: ["packages/memory-host-sdk/src/host/sqlite-vec.ts"], sections: ["packages"], + spec: "0.1.9", }, ]); }); @@ -254,16 +264,30 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { const records = collectRootDependencyOwnershipAudit({ repoRoot, scanRoots: ["extensions"] }); - expect(records).toMatchObject([ + expect(records).toEqual([ { category: "root_owned_extension_runtime", + declaredInExtensions: ["bonjour:dependencies"], depName: "@homebridge/ciao", + fileCount: 1, + internalizedBundledRuntimeOwners: [], + recommendation: + "keep at root; the Bonjour runtime is shipped with packaged startup surfaces even though the bundled plugin also declares it", + sampleFiles: ["extensions/bonjour/src/advertiser.ts"], sections: ["extensions"], + spec: "^1.3.7", }, { category: "root_owned_extension_runtime", + declaredInExtensions: ["browser:dependencies"], depName: "playwright-core", + fileCount: 1, + internalizedBundledRuntimeOwners: [], + recommendation: + "keep at root; the internal browser runtime is shipped with core even though downloadable browser-adjacent plugins also declare it", + sampleFiles: ["extensions/browser/src/browser/playwright-core.runtime.ts"], sections: ["extensions"], + spec: "1.59.1", }, ]); expect(collectRootDependencyOwnershipCheckErrors(records)).toStrictEqual([]); @@ -293,12 +317,18 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { const records = collectRootDependencyOwnershipAudit({ repoRoot, scanRoots: ["extensions"] }); - expect(records).toMatchObject([ + expect(records).toEqual([ { category: "root_owned_extension_runtime", + declaredInExtensions: ["internal:dependencies"], depName: "vendor-sdk", + fileCount: 1, internalizedBundledRuntimeOwners: ["internal:dependencies"], + recommendation: + "keep at root while bundled plugin runtime dependencies are internalized; owners: internal:dependencies", + sampleFiles: ["extensions/internal/src/setup.ts"], sections: ["extensions"], + spec: "^1.0.0", }, ]); expect(collectRootDependencyOwnershipCheckErrors(records)).toStrictEqual([]); @@ -328,12 +358,18 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { const records = collectRootDependencyOwnershipAudit({ repoRoot, scanRoots: ["extensions"] }); - expect(records).toMatchObject([ + expect(records).toEqual([ { category: "extension_only_localizable", + declaredInExtensions: ["externalized:dependencies"], depName: "vendor-sdk", + fileCount: 1, internalizedBundledRuntimeOwners: [], + recommendation: + "remove from root package.json and rely on owning extension manifests plus doctor --fix", + sampleFiles: ["extensions/externalized/src/setup.ts"], sections: ["extensions"], + spec: "^1.0.0", }, ]); });