From 4de9b6d30e700ff58641eca01529e2b7c509836e Mon Sep 17 00:00:00 2001 From: Blaine Bublitz Date: Fri, 26 Oct 2018 16:34:47 -0700 Subject: [PATCH] Add test for replacing reference links within a doc --- .../server/__tests__/__fixtures__/metadata.js | 15 ++++++++ .../server/__tests__/__fixtures__/reflinks.md | 36 +++++++++++++++++++ .../__tests__/__snapshots__/docs.test.js.snap | 36 +++++++++++++++++++ .../__snapshots__/readCategories.test.js.snap | 18 ++++++++++ v1/lib/server/__tests__/docs.test.js | 17 +++++++++ 5 files changed, 122 insertions(+) create mode 100644 v1/lib/server/__tests__/__fixtures__/reflinks.md diff --git a/v1/lib/server/__tests__/__fixtures__/metadata.js b/v1/lib/server/__tests__/__fixtures__/metadata.js index 799694feeb70..07944047ac2b 100644 --- a/v1/lib/server/__tests__/__fixtures__/metadata.js +++ b/v1/lib/server/__tests__/__fixtures__/metadata.js @@ -51,6 +51,21 @@ module.exports = { previous_title: 'Document 2', sort: 3, }, + 'en-reflinks': { + id: 'en-reflinks', + title: 'Reference Links', + source: 'reflinks.md', + version: 'next', + permalink: 'docs/en/next/reflinks.html', + localized_id: 'reflinks', + language: 'en', + sidebar: 'docs', + category: 'Test 2', + previous_id: 'doc3', + previous: 'en-doc3', + previous_title: 'Document 3', + sort: 4, + }, 'ko-doc1': { id: 'ko-doc1', title: '문서 1', diff --git a/v1/lib/server/__tests__/__fixtures__/reflinks.md b/v1/lib/server/__tests__/__fixtures__/reflinks.md new file mode 100644 index 000000000000..1d0e8911f34f --- /dev/null +++ b/v1/lib/server/__tests__/__fixtures__/reflinks.md @@ -0,0 +1,36 @@ +--- +id: reflinks +title: Reference Links +--- + +### Existing Docs + +- [doc1][doc1] +- [doc2][doc2] + +### Non-existing Docs + +- [hahaha][hahaha] + +## Repeating Docs + +- [doc1][doc1] +- [doc2][doc2] + +## Do not replace this +```md +![image1][image1] +``` + +```js +const doc1 = foo(); +console.log("[image2][image2]"); +const testStr = `![image3][image3]`; +``` + +[doc1]: doc1.md +[doc2]: ./doc2.md +[hahaha]: hahaha.md +[image1]: assets/image1.png +[image2]: assets/image2.jpg +[image3]: assets/image3.gif diff --git a/v1/lib/server/__tests__/__snapshots__/docs.test.js.snap b/v1/lib/server/__tests__/__snapshots__/docs.test.js.snap index cc1153c3f18a..bd7f6f9e6485 100644 --- a/v1/lib/server/__tests__/__snapshots__/docs.test.js.snap +++ b/v1/lib/server/__tests__/__snapshots__/docs.test.js.snap @@ -57,6 +57,42 @@ const testStr = \`![image3](assets/image3.gif)\`; \`\`\`" `; +exports[`mdToHtmlify transforms reference links 1`] = ` +" +### Existing Docs + +- [doc1][doc1] +- [doc2][doc2] + +### Non-existing Docs + +- [hahaha][hahaha] + +## Repeating Docs + +- [doc1][doc1] +- [doc2][doc2] + +## Do not replace this +\`\`\`md +![image1][image1] +\`\`\` + +\`\`\`js +const doc1 = foo(); +console.log(\\"[image2][image2]\\"); +const testStr = \`![image3][image3]\`; +\`\`\` + +[doc1]: /docs/en/next/doc1 +[doc2]: /docs/en/next/doc2 +[hahaha]: hahaha.md +[image1]: assets/image1.png +[image2]: assets/image2.jpg +[image3]: assets/image3.gif +" +`; + exports[`replaceAssetsLink does not transform document without valid assets link 1`] = ` " ### Existing Docs diff --git a/v1/lib/server/__tests__/__snapshots__/readCategories.test.js.snap b/v1/lib/server/__tests__/__snapshots__/readCategories.test.js.snap index 37480028cca7..6dea2956a49c 100644 --- a/v1/lib/server/__tests__/__snapshots__/readCategories.test.js.snap +++ b/v1/lib/server/__tests__/__snapshots__/readCategories.test.js.snap @@ -64,6 +64,24 @@ Array [ }, "type": "LINK", }, + Object { + "item": Object { + "category": "Test 2", + "id": "en-reflinks", + "language": "en", + "localized_id": "reflinks", + "permalink": "docs/en/next/reflinks.html", + "previous": "en-doc3", + "previous_id": "doc3", + "previous_title": "Document 3", + "sidebar": "docs", + "sort": 4, + "source": "reflinks.md", + "title": "Reference Links", + "version": "next", + }, + "type": "LINK", + }, ], "title": "Test 2", "type": "CATEGORY", diff --git a/v1/lib/server/__tests__/docs.test.js b/v1/lib/server/__tests__/docs.test.js index 63e156963192..38d2664273a2 100644 --- a/v1/lib/server/__tests__/docs.test.js +++ b/v1/lib/server/__tests__/docs.test.js @@ -55,9 +55,15 @@ const doc3 = fs.readFileSync( 'utf8', ); +const refLinks = fs.readFileSync( + path.join(__dirname, '__fixtures__', 'reflinks.md'), + 'utf8', +); + const rawContent1 = metadataUtils.extractMetadata(doc1).rawContent; const rawContent2 = metadataUtils.extractMetadata(doc2).rawContent; const rawContent3 = metadataUtils.extractMetadata(doc3).rawContent; +const rawContentRefLinks = metadataUtils.extractMetadata(refLinks).rawContent; describe('mdToHtmlify', () => { const mdToHtml = metadataUtils.mdToHtml(Metadata, '/'); @@ -105,6 +111,17 @@ describe('mdToHtmlify', () => { expect(content3).toMatchSnapshot(); expect(content3).not.toEqual(rawContent3); }); + + test('transforms reference links', () => { + const contentRefLinks = docs.mdToHtmlify( + rawContentRefLinks, + mdToHtml, + Metadata['en-reflinks'], + ); + expect(contentRefLinks).toContain('/docs/en/next/'); + expect(contentRefLinks).toMatchSnapshot(); + expect(contentRefLinks).not.toEqual(rawContentRefLinks); + }); }); describe('getFile', () => {