diff --git a/scripts/lib/LinkChecker.test.ts b/scripts/lib/LinkChecker.test.ts index 67be461862c..1f0e0d0c80a 100644 --- a/scripts/lib/LinkChecker.test.ts +++ b/scripts/lib/LinkChecker.test.ts @@ -22,7 +22,12 @@ describe("Test the constructor of Link", () => { testLink.originFiles, testLink.isExternal, ]; - const correct_values = ["/testpath", "", ["/testorigin.mdx"], false]; + const correct_values = [ + "/testpath", + "", + new Set(["/testorigin.mdx"]), + false, + ]; expect(attributes).toEqual(correct_values); }); @@ -37,7 +42,7 @@ describe("Test the constructor of Link", () => { const correct_values = [ "/testpath", "#testanchor", - ["/testorigin.mdx"], + new Set(["/testorigin.mdx"]), false, ]; expect(attributes).toEqual(correct_values); @@ -54,7 +59,7 @@ describe("Test the constructor of Link", () => { const correct_values = [ "https://test.link.com", "", - ["/testorigin.mdx"], + new Set(["/testorigin.mdx"]), true, ]; expect(attributes).toEqual(correct_values); @@ -129,6 +134,8 @@ describe("Validate links", () => { let testLink = new Link("../testpath", [ "docs/test/testorigin.mdx", "docs/test/test2/testorigin.mdx", + // Duplicate of the above value to confirm we de-duplicate originFiles. + "docs/test/test2/testorigin.mdx", "docs/test/test3/testorigin.mdx", "docs/test/test2/test4/testorigin.mdx", ]); diff --git a/scripts/lib/LinkChecker.ts b/scripts/lib/LinkChecker.ts index e05768a7f53..35fff098f6c 100644 --- a/scripts/lib/LinkChecker.ts +++ b/scripts/lib/LinkChecker.ts @@ -35,7 +35,7 @@ export class File { export class Link { readonly value: string; readonly anchor: string; - readonly originFiles: string[]; + readonly originFiles: Set; readonly isExternal: boolean; /** @@ -46,7 +46,7 @@ export class Link { const splitLink = linkString.split("#", 2); this.value = splitLink[0]; this.anchor = splitLink.length > 1 ? `#${splitLink[1]}` : ""; - this.originFiles = originFiles; + this.originFiles = new Set(originFiles); this.isExternal = linkString.startsWith("http"); }