From 9c62414c9ac29c5c17e19fd6015dbfa747562108 Mon Sep 17 00:00:00 2001 From: Jack Bates Date: Thu, 30 Apr 2020 08:56:04 -0700 Subject: [PATCH 1/2] Keep local references out of testDependencies --- .../definitions-parser/src/lib/module-info.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/definitions-parser/src/lib/module-info.ts b/packages/definitions-parser/src/lib/module-info.ts index 6e9b5f1abf..25f43cf5fa 100644 --- a/packages/definitions-parser/src/lib/module-info.ts +++ b/packages/definitions-parser/src/lib/module-info.ts @@ -374,15 +374,17 @@ export function getTestDependencies( throw new Error(`Test files should not use ''. '${filePath()}' references '${ref}'.`); } for (const { fileName: referencedPackage } of typeReferenceDirectives) { - if (dependencies.has(referencedPackage)) { - throw new Error( - `'${filePath()}' unnecessarily references '${referencedPackage}', which is already referenced in the type definition.` - ); - } - if (referencedPackage === packageName) { - referencesSelf = true; + if (!referencedPackage.startsWith(".")) { + if (dependencies.has(referencedPackage)) { + throw new Error( + `'${filePath()}' unnecessarily references '${referencedPackage}', which is already referenced in the type definition.` + ); + } + if (referencedPackage === packageName) { + referencesSelf = true; + } + testDependencies.add(referencedPackage); } - testDependencies.add(referencedPackage); } for (const imported of imports(sourceFile)) { hasImports = true; From 84b1ea79e8f718d246bce5d0e40e2fd9c55f4c6d Mon Sep 17 00:00:00 2001 From: Jack Bates Date: Tue, 1 Sep 2020 14:48:57 -0700 Subject: [PATCH 2/2] Add tests --- .../definitions-parser/test/module-info.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/definitions-parser/test/module-info.test.ts b/packages/definitions-parser/test/module-info.test.ts index 62797f9276..20302f3eba 100644 --- a/packages/definitions-parser/test/module-info.test.ts +++ b/packages/definitions-parser/test/module-info.test.ts @@ -133,5 +133,19 @@ testo({ const i = getModuleInfo("boring", types); const d = getTestDependencies("boring", types, tests.keys(), i.dependencies, fs.subDir("types").subDir("boring")); expect(d).toEqual(new Set(["super-big-fun-hus"])); + }, + getTestDependenciesIgnoresRelativeTypeReferences() { + const pkg = new Dir(undefined); + pkg.set( + "mock-tests.ts", + `/// +` + ); + pkg.set("addon.pdf.d.ts", ""); + const memFS = new InMemoryFS(pkg, "types/mock"); + const { types, tests } = allReferencedFiles(["mock-tests.ts"], memFS, "mock", "types/mock"); + const { dependencies } = getModuleInfo("mock", types); + const testDependencies = getTestDependencies("mock", types, tests.keys(), dependencies, memFS); + expect(Array.from(testDependencies)).toEqual([]); } });