test(plugin-sdk): tighten boundary guardrails

This commit is contained in:
Peter Steinberger
2026-04-03 11:34:04 +01:00
parent 1c26e806ff
commit 5400980305
5 changed files with 83 additions and 9 deletions

View File

@@ -41,6 +41,12 @@ function findExtensionImports(source: string): string[] {
].map((match) => match[1]);
}
function isAllowedExtensionPublicImport(specifier: string): boolean {
return /(?:^|\/)extensions\/[^/]+\/(?:api|index|runtime-api|setup-entry|login-qr-api)\.js$/u.test(
specifier,
);
}
function findPluginSdkImports(source: string): string[] {
return [
...source.matchAll(/from\s+["']((?:\.\.\/)+plugin-sdk\/[^"']+)["']/g),
@@ -78,7 +84,9 @@ describe("non-extension test boundaries", () => {
const offenders = testFiles
.map((file) => {
const source = fs.readFileSync(path.join(repoRoot, file), "utf8");
const imports = findExtensionImports(source);
const imports = findExtensionImports(source).filter(
(specifier) => !isAllowedExtensionPublicImport(specifier),
);
if (imports.length === 0) {
return null;
}