mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 23:57:22 +02:00
test(theme-common): improve test coverage (#6902)
* test(theme-common): improve test coverage * revert
This commit is contained in:
parent
aa5a2d4c04
commit
f6baaa6b75
59 changed files with 1183 additions and 755 deletions
|
@ -67,28 +67,28 @@ describe('readOutputHTMLFile', () => {
|
|||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
undefined,
|
||||
).then(String),
|
||||
).resolves.toEqual('file\n');
|
||||
).resolves.toBe('file\n');
|
||||
await expect(
|
||||
readOutputHTMLFile(
|
||||
'/folder',
|
||||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
undefined,
|
||||
).then(String),
|
||||
).resolves.toEqual('folder\n');
|
||||
).resolves.toBe('folder\n');
|
||||
await expect(
|
||||
readOutputHTMLFile(
|
||||
'/file/',
|
||||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
undefined,
|
||||
).then(String),
|
||||
).resolves.toEqual('file\n');
|
||||
).resolves.toBe('file\n');
|
||||
await expect(
|
||||
readOutputHTMLFile(
|
||||
'/folder/',
|
||||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
undefined,
|
||||
).then(String),
|
||||
).resolves.toEqual('folder\n');
|
||||
).resolves.toBe('folder\n');
|
||||
});
|
||||
it('trailing slash true', async () => {
|
||||
await expect(
|
||||
|
@ -97,14 +97,14 @@ describe('readOutputHTMLFile', () => {
|
|||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
true,
|
||||
).then(String),
|
||||
).resolves.toEqual('folder\n');
|
||||
).resolves.toBe('folder\n');
|
||||
await expect(
|
||||
readOutputHTMLFile(
|
||||
'/folder/',
|
||||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
true,
|
||||
).then(String),
|
||||
).resolves.toEqual('folder\n');
|
||||
).resolves.toBe('folder\n');
|
||||
});
|
||||
it('trailing slash false', async () => {
|
||||
await expect(
|
||||
|
@ -113,14 +113,14 @@ describe('readOutputHTMLFile', () => {
|
|||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
false,
|
||||
).then(String),
|
||||
).resolves.toEqual('file\n');
|
||||
).resolves.toBe('file\n');
|
||||
await expect(
|
||||
readOutputHTMLFile(
|
||||
'/file/',
|
||||
path.join(__dirname, '__fixtures__/build-snap'),
|
||||
false,
|
||||
).then(String),
|
||||
).resolves.toEqual('file\n');
|
||||
).resolves.toBe('file\n');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -15,53 +15,53 @@ describe('createMatcher', () => {
|
|||
const matcher = createMatcher(GlobExcludeDefault);
|
||||
|
||||
it('match default exclude MD/MDX partials correctly', () => {
|
||||
expect(matcher('doc.md')).toEqual(false);
|
||||
expect(matcher('category/doc.md')).toEqual(false);
|
||||
expect(matcher('category/subcategory/doc.md')).toEqual(false);
|
||||
expect(matcher('doc.md')).toBe(false);
|
||||
expect(matcher('category/doc.md')).toBe(false);
|
||||
expect(matcher('category/subcategory/doc.md')).toBe(false);
|
||||
//
|
||||
expect(matcher('doc.mdx')).toEqual(false);
|
||||
expect(matcher('category/doc.mdx')).toEqual(false);
|
||||
expect(matcher('category/subcategory/doc.mdx')).toEqual(false);
|
||||
expect(matcher('doc.mdx')).toBe(false);
|
||||
expect(matcher('category/doc.mdx')).toBe(false);
|
||||
expect(matcher('category/subcategory/doc.mdx')).toBe(false);
|
||||
//
|
||||
expect(matcher('_doc.md')).toEqual(true);
|
||||
expect(matcher('category/_doc.md')).toEqual(true);
|
||||
expect(matcher('category/subcategory/_doc.md')).toEqual(true);
|
||||
expect(matcher('_category/doc.md')).toEqual(true);
|
||||
expect(matcher('_category/subcategory/doc.md')).toEqual(true);
|
||||
expect(matcher('category/_subcategory/doc.md')).toEqual(true);
|
||||
expect(matcher('_doc.md')).toBe(true);
|
||||
expect(matcher('category/_doc.md')).toBe(true);
|
||||
expect(matcher('category/subcategory/_doc.md')).toBe(true);
|
||||
expect(matcher('_category/doc.md')).toBe(true);
|
||||
expect(matcher('_category/subcategory/doc.md')).toBe(true);
|
||||
expect(matcher('category/_subcategory/doc.md')).toBe(true);
|
||||
});
|
||||
|
||||
it('match default exclude tests correctly', () => {
|
||||
expect(matcher('xyz.js')).toEqual(false);
|
||||
expect(matcher('xyz.ts')).toEqual(false);
|
||||
expect(matcher('xyz.jsx')).toEqual(false);
|
||||
expect(matcher('xyz.tsx')).toEqual(false);
|
||||
expect(matcher('folder/xyz.js')).toEqual(false);
|
||||
expect(matcher('folder/xyz.ts')).toEqual(false);
|
||||
expect(matcher('folder/xyz.jsx')).toEqual(false);
|
||||
expect(matcher('folder/xyz.tsx')).toEqual(false);
|
||||
expect(matcher('xyz.js')).toBe(false);
|
||||
expect(matcher('xyz.ts')).toBe(false);
|
||||
expect(matcher('xyz.jsx')).toBe(false);
|
||||
expect(matcher('xyz.tsx')).toBe(false);
|
||||
expect(matcher('folder/xyz.js')).toBe(false);
|
||||
expect(matcher('folder/xyz.ts')).toBe(false);
|
||||
expect(matcher('folder/xyz.jsx')).toBe(false);
|
||||
expect(matcher('folder/xyz.tsx')).toBe(false);
|
||||
//
|
||||
expect(matcher('xyz.test.js')).toEqual(true);
|
||||
expect(matcher('xyz.test.ts')).toEqual(true);
|
||||
expect(matcher('xyz.test.jsx')).toEqual(true);
|
||||
expect(matcher('xyz.test.tsx')).toEqual(true);
|
||||
expect(matcher('folder/xyz.test.js')).toEqual(true);
|
||||
expect(matcher('folder/xyz.test.ts')).toEqual(true);
|
||||
expect(matcher('folder/xyz.test.jsx')).toEqual(true);
|
||||
expect(matcher('folder/xyz.test.tsx')).toEqual(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.js')).toEqual(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.ts')).toEqual(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.jsx')).toEqual(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.tsx')).toEqual(true);
|
||||
expect(matcher('xyz.test.js')).toBe(true);
|
||||
expect(matcher('xyz.test.ts')).toBe(true);
|
||||
expect(matcher('xyz.test.jsx')).toBe(true);
|
||||
expect(matcher('xyz.test.tsx')).toBe(true);
|
||||
expect(matcher('folder/xyz.test.js')).toBe(true);
|
||||
expect(matcher('folder/xyz.test.ts')).toBe(true);
|
||||
expect(matcher('folder/xyz.test.jsx')).toBe(true);
|
||||
expect(matcher('folder/xyz.test.tsx')).toBe(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.js')).toBe(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.ts')).toBe(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.jsx')).toBe(true);
|
||||
expect(matcher('folder/subfolder/xyz.test.tsx')).toBe(true);
|
||||
//
|
||||
expect(matcher('__tests__/subfolder/xyz.js')).toEqual(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.ts')).toEqual(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.jsx')).toEqual(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.tsx')).toEqual(true);
|
||||
expect(matcher('folder/__tests__/xyz.js')).toEqual(true);
|
||||
expect(matcher('folder/__tests__/xyz.ts')).toEqual(true);
|
||||
expect(matcher('folder/__tests__/xyz.jsx')).toEqual(true);
|
||||
expect(matcher('folder/__tests__/xyz.tsx')).toEqual(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.js')).toBe(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.ts')).toBe(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.jsx')).toBe(true);
|
||||
expect(matcher('__tests__/subfolder/xyz.tsx')).toBe(true);
|
||||
expect(matcher('folder/__tests__/xyz.js')).toBe(true);
|
||||
expect(matcher('folder/__tests__/xyz.ts')).toBe(true);
|
||||
expect(matcher('folder/__tests__/xyz.jsx')).toBe(true);
|
||||
expect(matcher('folder/__tests__/xyz.tsx')).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -74,29 +74,29 @@ describe('createAbsoluteFilePathMatcher', () => {
|
|||
);
|
||||
|
||||
it('match default exclude MD/MDX partials correctly', () => {
|
||||
expect(matcher('/_root/docs/myDoc.md')).toEqual(false);
|
||||
expect(matcher('/_root/docs/myDoc.mdx')).toEqual(false);
|
||||
expect(matcher('/root/_docs/myDoc.md')).toEqual(false);
|
||||
expect(matcher('/root/_docs/myDoc.mdx')).toEqual(false);
|
||||
expect(matcher('/_root/docs/category/myDoc.md')).toEqual(false);
|
||||
expect(matcher('/_root/docs/category/myDoc.mdx')).toEqual(false);
|
||||
expect(matcher('/root/_docs/category/myDoc.md')).toEqual(false);
|
||||
expect(matcher('/root/_docs/category/myDoc.mdx')).toEqual(false);
|
||||
expect(matcher('/_root/docs/myDoc.md')).toBe(false);
|
||||
expect(matcher('/_root/docs/myDoc.mdx')).toBe(false);
|
||||
expect(matcher('/root/_docs/myDoc.md')).toBe(false);
|
||||
expect(matcher('/root/_docs/myDoc.mdx')).toBe(false);
|
||||
expect(matcher('/_root/docs/category/myDoc.md')).toBe(false);
|
||||
expect(matcher('/_root/docs/category/myDoc.mdx')).toBe(false);
|
||||
expect(matcher('/root/_docs/category/myDoc.md')).toBe(false);
|
||||
expect(matcher('/root/_docs/category/myDoc.mdx')).toBe(false);
|
||||
//
|
||||
expect(matcher('/_root/docs/_myDoc.md')).toEqual(true);
|
||||
expect(matcher('/_root/docs/_myDoc.mdx')).toEqual(true);
|
||||
expect(matcher('/root/_docs/_myDoc.md')).toEqual(true);
|
||||
expect(matcher('/root/_docs/_myDoc.mdx')).toEqual(true);
|
||||
expect(matcher('/_root/docs/_category/myDoc.md')).toEqual(true);
|
||||
expect(matcher('/_root/docs/_category/myDoc.mdx')).toEqual(true);
|
||||
expect(matcher('/root/_docs/_category/myDoc.md')).toEqual(true);
|
||||
expect(matcher('/root/_docs/_category/myDoc.mdx')).toEqual(true);
|
||||
expect(matcher('/_root/docs/_myDoc.md')).toBe(true);
|
||||
expect(matcher('/_root/docs/_myDoc.mdx')).toBe(true);
|
||||
expect(matcher('/root/_docs/_myDoc.md')).toBe(true);
|
||||
expect(matcher('/root/_docs/_myDoc.mdx')).toBe(true);
|
||||
expect(matcher('/_root/docs/_category/myDoc.md')).toBe(true);
|
||||
expect(matcher('/_root/docs/_category/myDoc.mdx')).toBe(true);
|
||||
expect(matcher('/root/_docs/_category/myDoc.md')).toBe(true);
|
||||
expect(matcher('/root/_docs/_category/myDoc.mdx')).toBe(true);
|
||||
});
|
||||
|
||||
it('match default exclude tests correctly', () => {
|
||||
expect(matcher('/__test__/website/src/xyz.js')).toEqual(false);
|
||||
expect(matcher('/__test__/website/src/__test__/xyz.js')).toEqual(true);
|
||||
expect(matcher('/__test__/website/src/xyz.test.js')).toEqual(true);
|
||||
expect(matcher('/__test__/website/src/xyz.js')).toBe(false);
|
||||
expect(matcher('/__test__/website/src/__test__/xyz.js')).toBe(true);
|
||||
expect(matcher('/__test__/website/src/xyz.test.js')).toBe(true);
|
||||
});
|
||||
|
||||
it('throw if file is not contained in any root doc', () => {
|
||||
|
|
|
@ -18,23 +18,23 @@ import _ from 'lodash';
|
|||
|
||||
describe('removeSuffix', () => {
|
||||
it("is no-op when suffix doesn't exist", () => {
|
||||
expect(removeSuffix('abcdef', 'ijk')).toEqual('abcdef');
|
||||
expect(removeSuffix('abcdef', 'abc')).toEqual('abcdef');
|
||||
expect(removeSuffix('abcdef', '')).toEqual('abcdef');
|
||||
expect(removeSuffix('abcdef', 'ijk')).toBe('abcdef');
|
||||
expect(removeSuffix('abcdef', 'abc')).toBe('abcdef');
|
||||
expect(removeSuffix('abcdef', '')).toBe('abcdef');
|
||||
});
|
||||
it('removes suffix', () => {
|
||||
expect(removeSuffix('abcdef', 'ef')).toEqual('abcd');
|
||||
expect(removeSuffix('abcdef', 'ef')).toBe('abcd');
|
||||
});
|
||||
});
|
||||
|
||||
describe('removePrefix', () => {
|
||||
it("is no-op when prefix doesn't exist", () => {
|
||||
expect(removePrefix('abcdef', 'ijk')).toEqual('abcdef');
|
||||
expect(removePrefix('abcdef', 'def')).toEqual('abcdef');
|
||||
expect(removePrefix('abcdef', '')).toEqual('abcdef');
|
||||
expect(removePrefix('abcdef', 'ijk')).toBe('abcdef');
|
||||
expect(removePrefix('abcdef', 'def')).toBe('abcdef');
|
||||
expect(removePrefix('abcdef', '')).toBe('abcdef');
|
||||
});
|
||||
it('removes prefix', () => {
|
||||
expect(removePrefix('abcdef', 'ab')).toEqual('cdef');
|
||||
expect(removePrefix('abcdef', 'ab')).toBe('cdef');
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -133,7 +133,7 @@ describe('findAsyncSequential', () => {
|
|||
});
|
||||
|
||||
const timeBefore = Date.now();
|
||||
await expect(findAsyncSequential(items, findFn)).resolves.toEqual('2');
|
||||
await expect(findAsyncSequential(items, findFn)).resolves.toBe('2');
|
||||
const timeAfter = Date.now();
|
||||
|
||||
expect(findFn).toHaveBeenCalledTimes(2);
|
||||
|
|
|
@ -21,7 +21,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual(
|
||||
).toBe(
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.',
|
||||
);
|
||||
});
|
||||
|
@ -36,7 +36,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual(
|
||||
).toBe(
|
||||
// h1 title is skipped on purpose, because we don't want the page to have
|
||||
// SEO metadata title === description
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.',
|
||||
|
@ -54,7 +54,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual(
|
||||
).toBe(
|
||||
// h1 title is skipped on purpose, because we don't want the page to have
|
||||
// SEO metadata title === description
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.',
|
||||
|
@ -68,7 +68,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual('Lorem ipsum dolor sit amet');
|
||||
).toBe('Lorem ipsum dolor sit amet');
|
||||
});
|
||||
|
||||
it('creates excerpt for content beginning with blockquote', () => {
|
||||
|
@ -78,7 +78,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual('Lorem ipsum dolor sit amet');
|
||||
).toBe('Lorem ipsum dolor sit amet');
|
||||
});
|
||||
|
||||
it('creates excerpt for content beginning with image (eg. blog post)', () => {
|
||||
|
@ -86,7 +86,7 @@ describe('createExcerpt', () => {
|
|||
createExcerpt(dedent`
|
||||

|
||||
`),
|
||||
).toEqual('Lorem ipsum');
|
||||
).toBe('Lorem ipsum');
|
||||
});
|
||||
|
||||
it('creates excerpt for content beginning with admonitions', () => {
|
||||
|
@ -102,7 +102,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
|
||||
).toBe('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
|
||||
});
|
||||
|
||||
it('creates excerpt for content with imports/exports declarations and Markdown markup, as well as Emoji', () => {
|
||||
|
@ -120,7 +120,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.
|
||||
`),
|
||||
).toEqual(
|
||||
).toBe(
|
||||
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.',
|
||||
);
|
||||
});
|
||||
|
@ -130,7 +130,7 @@ describe('createExcerpt', () => {
|
|||
createExcerpt(dedent`
|
||||
## Markdown title {#my-anchor-id}
|
||||
`),
|
||||
).toEqual('Markdown title');
|
||||
).toBe('Markdown title');
|
||||
});
|
||||
|
||||
it('creates excerpt for content with various code blocks', () => {
|
||||
|
@ -143,7 +143,7 @@ describe('createExcerpt', () => {
|
|||
|
||||
Lorem \`ipsum\` dolor sit amet, consectetur \`adipiscing elit\`.
|
||||
`),
|
||||
).toEqual('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
|
||||
).toBe('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -123,9 +123,9 @@ describe('toMessageRelativeFilePath', () => {
|
|||
jest
|
||||
.spyOn(process, 'cwd')
|
||||
.mockImplementationOnce(() => path.join(__dirname, '..'));
|
||||
expect(
|
||||
toMessageRelativeFilePath(path.join(__dirname, 'foo/bar.js')),
|
||||
).toEqual('__tests__/foo/bar.js');
|
||||
expect(toMessageRelativeFilePath(path.join(__dirname, 'foo/bar.js'))).toBe(
|
||||
'__tests__/foo/bar.js',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -10,18 +10,18 @@ import {createSlugger} from '../slugger';
|
|||
describe('createSlugger', () => {
|
||||
it('can create unique slugs', () => {
|
||||
const slugger = createSlugger();
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toEqual('somevalue');
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toEqual('somevalue-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toEqual('somevalue-2');
|
||||
expect(slugger.slug('Some$/vaLue$!^-1')).toEqual('somevalue-1-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toBe('somevalue');
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toBe('somevalue-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^')).toBe('somevalue-2');
|
||||
expect(slugger.slug('Some$/vaLue$!^-1')).toBe('somevalue-1-1');
|
||||
});
|
||||
|
||||
it('can create unique slugs respecting case', () => {
|
||||
const slugger = createSlugger();
|
||||
const opt = {maintainCase: true};
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toEqual('SomevaLue');
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toEqual('SomevaLue-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toEqual('SomevaLue-2');
|
||||
expect(slugger.slug('Some$/vaLue$!^-1', opt)).toEqual('SomevaLue-1-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toBe('SomevaLue');
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toBe('SomevaLue-1');
|
||||
expect(slugger.slug('Some$/vaLue$!^', opt)).toBe('SomevaLue-2');
|
||||
expect(slugger.slug('Some$/vaLue$!^-1', opt)).toBe('SomevaLue-1-1');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -146,15 +146,15 @@ describe('getEditUrl', () => {
|
|||
it('returns right path', () => {
|
||||
expect(
|
||||
getEditUrl('foo/bar.md', 'https://github.com/facebook/docusaurus'),
|
||||
).toEqual('https://github.com/facebook/docusaurus/foo/bar.md');
|
||||
).toBe('https://github.com/facebook/docusaurus/foo/bar.md');
|
||||
expect(
|
||||
getEditUrl('foo/你好.md', 'https://github.com/facebook/docusaurus'),
|
||||
).toEqual('https://github.com/facebook/docusaurus/foo/你好.md');
|
||||
).toBe('https://github.com/facebook/docusaurus/foo/你好.md');
|
||||
});
|
||||
it('always returns valid URL', () => {
|
||||
expect(
|
||||
getEditUrl('foo\\你好.md', 'https://github.com/facebook/docusaurus'),
|
||||
).toEqual('https://github.com/facebook/docusaurus/foo/你好.md');
|
||||
).toBe('https://github.com/facebook/docusaurus/foo/你好.md');
|
||||
});
|
||||
it('returns undefined for undefined', () => {
|
||||
expect(getEditUrl('foo/bar.md')).toBeUndefined();
|
||||
|
@ -200,28 +200,28 @@ describe('isValidPathname', () => {
|
|||
|
||||
describe('addTrailingSlash', () => {
|
||||
it('is no-op for path with trailing slash', () => {
|
||||
expect(addTrailingSlash('/abcd/')).toEqual('/abcd/');
|
||||
expect(addTrailingSlash('/abcd/')).toBe('/abcd/');
|
||||
});
|
||||
it('adds / for path without trailing slash', () => {
|
||||
expect(addTrailingSlash('/abcd')).toEqual('/abcd/');
|
||||
expect(addTrailingSlash('/abcd')).toBe('/abcd/');
|
||||
});
|
||||
});
|
||||
|
||||
describe('addLeadingSlash', () => {
|
||||
it('is no-op for path with leading slash', () => {
|
||||
expect(addLeadingSlash('/abc')).toEqual('/abc');
|
||||
expect(addLeadingSlash('/abc')).toBe('/abc');
|
||||
});
|
||||
it('adds / for path without leading slash', () => {
|
||||
expect(addLeadingSlash('abc')).toEqual('/abc');
|
||||
expect(addLeadingSlash('abc')).toBe('/abc');
|
||||
});
|
||||
});
|
||||
|
||||
describe('removeTrailingSlash', () => {
|
||||
it('is no-op for path without trailing slash', () => {
|
||||
expect(removeTrailingSlash('/abcd')).toEqual('/abcd');
|
||||
expect(removeTrailingSlash('/abcd')).toBe('/abcd');
|
||||
});
|
||||
it('removes / for path with trailing slash', () => {
|
||||
expect(removeTrailingSlash('/abcd/')).toEqual('/abcd');
|
||||
expect(removeTrailingSlash('/abcd/')).toBe('/abcd');
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -229,21 +229,21 @@ describe('resolvePathname', () => {
|
|||
it('works', () => {
|
||||
// These tests are directly copied from https://github.com/mjackson/resolve-pathname/blob/master/modules/__tests__/resolvePathname-test.js
|
||||
// Maybe we want to wrap that logic in the future?
|
||||
expect(resolvePathname('c')).toEqual('c');
|
||||
expect(resolvePathname('c', 'a/b')).toEqual('a/c');
|
||||
expect(resolvePathname('/c', '/a/b')).toEqual('/c');
|
||||
expect(resolvePathname('', '/a/b')).toEqual('/a/b');
|
||||
expect(resolvePathname('../c', '/a/b')).toEqual('/c');
|
||||
expect(resolvePathname('c', '/a/b')).toEqual('/a/c');
|
||||
expect(resolvePathname('c', '/a/')).toEqual('/a/c');
|
||||
expect(resolvePathname('..', '/a/b')).toEqual('/');
|
||||
expect(resolvePathname('c')).toBe('c');
|
||||
expect(resolvePathname('c', 'a/b')).toBe('a/c');
|
||||
expect(resolvePathname('/c', '/a/b')).toBe('/c');
|
||||
expect(resolvePathname('', '/a/b')).toBe('/a/b');
|
||||
expect(resolvePathname('../c', '/a/b')).toBe('/c');
|
||||
expect(resolvePathname('c', '/a/b')).toBe('/a/c');
|
||||
expect(resolvePathname('c', '/a/')).toBe('/a/c');
|
||||
expect(resolvePathname('..', '/a/b')).toBe('/');
|
||||
});
|
||||
});
|
||||
|
||||
describe('encodePath', () => {
|
||||
it('works', () => {
|
||||
expect(encodePath('a/foo/')).toEqual('a/foo/');
|
||||
expect(encodePath('a/<foo>/')).toEqual('a/%3Cfoo%3E/');
|
||||
expect(encodePath('a/你好/')).toEqual('a/%E4%BD%A0%E5%A5%BD/');
|
||||
expect(encodePath('a/foo/')).toBe('a/foo/');
|
||||
expect(encodePath('a/<foo>/')).toBe('a/%3Cfoo%3E/');
|
||||
expect(encodePath('a/你好/')).toBe('a/%E4%BD%A0%E5%A5%BD/');
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue