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; 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([]); } });