From 18bfd44439f0192d3ffc427aedf38d2ac0eeabeb Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 29 May 2026 20:51:21 +0200 Subject: [PATCH] test: shard channel import guardrails --- .../channel-import-guardrails.test.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/channels/plugins/contracts/channel-import-guardrails.test.ts b/src/channels/plugins/contracts/channel-import-guardrails.test.ts index a2cdac6498b..da266a7b5d2 100644 --- a/src/channels/plugins/contracts/channel-import-guardrails.test.ts +++ b/src/channels/plugins/contracts/channel-import-guardrails.test.ts @@ -687,13 +687,7 @@ describe("channel import guardrails", () => { }); it("keeps bundled extension source files off legacy core send-deps src imports", () => { - const legacyCoreSendDepsImport = /["'][^"']*src\/infra\/outbound\/send-deps\.[cm]?[jt]s["']/; - for (const file of collectExtensionSourceFiles()) { - const text = readSource(file); - expect(text, `${file} should not import src/infra/outbound/send-deps.*`).not.toMatch( - legacyCoreSendDepsImport, - ); - } + expect(collectExtensionForbiddenImportMatches(["src/infra/outbound/send-deps"])).toEqual([]); }); it("keeps core production files off plugin-private src imports", () => { @@ -705,9 +699,18 @@ describe("channel import guardrails", () => { } }); - it("keeps extension production files off other extensions' private src imports", () => { - for (const file of collectExtensionSourceFiles()) { - expectNoSiblingExtensionPrivateSrcImports(file, getSourceAnalysis(file).importSpecifiers); + describe("extension private src import guardrails", () => { + for (const extensionId of BUNDLED_EXTENSION_IDS.toSorted((left, right) => + left.localeCompare(right), + )) { + it(`${extensionId} stays off other extensions' private src imports`, () => { + for (const file of collectExtensionFiles(extensionId)) { + if (basename(file) === "api.ts") { + continue; + } + expectNoSiblingExtensionPrivateSrcImports(file, getSourceAnalysis(file).importSpecifiers); + } + }); } });