

























@@ -34,11 +34,20 @@ function deriveReportEnvelope(report: Parameters<typeof filterRecordsForReport>[
3434const singleOwnerEnvelope = deriveReportEnvelope("single-owner-shared");
3535const unusedEnvelope = deriveReportEnvelope("unused-public-surface");
363637+function requireRecordByExport(exportName: string) {
38+const record = publicSurfaceEnvelope.records.find((entry) =>
39+entry.exportNames.includes(exportName),
40+);
41+expect(record).toBeDefined();
42+if (!record) {
43+throw new Error(`Expected topology record for ${exportName}`);
44+}
45+return record;
46+}
47+3748describe("ts-topology", () => {
3849it("collapses canonical symbols exported by multiple public subpaths", () => {
39-const sharedThing = publicSurfaceEnvelope.records.find((record) =>
40-record.exportNames.includes("sharedThing"),
41-);
50+const sharedThing = requireRecordByExport("sharedThing");
42514352expect(sharedThing).toMatchObject({
4453declarationPath: "src/lib/shared.ts",
@@ -47,21 +56,15 @@ describe("ts-topology", () => {
4756productionPackages: ["src"],
4857productionOwners: ["extension:alpha", "extension:beta", "src"],
4958});
50-expect(sharedThing?.publicSpecifiers).toEqual(["fixture-sdk", "fixture-sdk/extra"]);
59+expect(sharedThing.publicSpecifiers).toEqual(["fixture-sdk", "fixture-sdk/extra"]);
5160});
52615362it("counts renamed imports, namespace imports, type-only imports, and test-only consumers", () => {
54-const aliasedThing = publicSurfaceEnvelope.records.find((record) =>
55-record.exportNames.includes("aliasedThing"),
56-);
57-const sharedType = publicSurfaceEnvelope.records.find((record) =>
58-record.exportNames.includes("SharedType"),
59-);
60-const testOnlyThing = publicSurfaceEnvelope.records.find((record) =>
61-record.exportNames.includes("testOnlyThing"),
62-);
63+const aliasedThing = requireRecordByExport("aliasedThing");
64+const sharedType = requireRecordByExport("SharedType");
65+const testOnlyThing = requireRecordByExport("testOnlyThing");
636664-expect(aliasedThing?.productionRefCount).toBe(1);
67+expect(aliasedThing.productionRefCount).toBe(1);
6568expect(sharedType).toMatchObject({
6669isTypeOnlyCandidate: true,
6770productionExtensions: ["alpha", "beta"],
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。