mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-11 08:07:26 +02:00
refactor(v2): simplify code by removing wip i18n & translation (#1431)
* refactor(v2): remove i18n & versioning + cleaner code * totally remove i18n and versioning from plugin
This commit is contained in:
parent
0813920349
commit
373d17ee72
123 changed files with 170 additions and 4162 deletions
|
@ -31,87 +31,4 @@ Object {
|
|||
}
|
||||
`;
|
||||
|
||||
exports[`loadSidebars site with sidebars & versioned sidebars 1`] = `
|
||||
Object {
|
||||
"docs": Array [
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "foo/bar",
|
||||
"type": "doc",
|
||||
},
|
||||
Object {
|
||||
"id": "foo/baz",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Test",
|
||||
"type": "category",
|
||||
},
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "hello",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Guides",
|
||||
"type": "category",
|
||||
},
|
||||
],
|
||||
"version-1.0.0-docs": Array [
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "version-1.0.0-foo/bar",
|
||||
"type": "doc",
|
||||
},
|
||||
Object {
|
||||
"id": "version-1.0.0-foo/baz",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Test",
|
||||
"type": "category",
|
||||
},
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "version-1.0.0-hello",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Guides",
|
||||
"type": "category",
|
||||
},
|
||||
],
|
||||
"version-1.0.1-docs": Array [
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "version-1.0.1-foo/bar",
|
||||
"type": "doc",
|
||||
},
|
||||
Object {
|
||||
"id": "version-1.0.1-foo/baz",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Test",
|
||||
"type": "category",
|
||||
},
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "version-1.0.1-hello",
|
||||
"type": "doc",
|
||||
},
|
||||
],
|
||||
"label": "Guides",
|
||||
"type": "category",
|
||||
},
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`loadSidebars site without sidebars 1`] = `Object {}`;
|
||||
|
|
|
@ -7,16 +7,15 @@
|
|||
|
||||
import '@babel/polyfill';
|
||||
import path from 'path';
|
||||
import loadSetup from '../../../docusaurus/test/loadSetup';
|
||||
import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup';
|
||||
import DocusaurusPluginContentDocs from '../index';
|
||||
|
||||
describe('loadDocs', () => {
|
||||
test('simple website', async () => {
|
||||
const {env, siteDir, siteConfig} = await loadSetup('simple');
|
||||
const {siteDir, siteConfig} = await loadSetup('simple');
|
||||
const sidebarPath = path.join(siteDir, 'sidebars.json');
|
||||
const plugin = new DocusaurusPluginContentDocs(
|
||||
{
|
||||
env,
|
||||
siteDir,
|
||||
siteConfig,
|
||||
},
|
||||
|
@ -31,229 +30,22 @@ describe('loadDocs', () => {
|
|||
expect(docsMetadata.hello).toEqual({
|
||||
category: 'Guides',
|
||||
id: 'hello',
|
||||
language: null,
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/hello',
|
||||
previous: 'foo/baz',
|
||||
previous_id: 'foo/baz',
|
||||
previous_title: 'baz',
|
||||
sidebar: 'docs',
|
||||
source: path.join(docsDir, 'hello.md'),
|
||||
title: 'Hello, World !',
|
||||
version: null,
|
||||
});
|
||||
expect(docsMetadata['foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'foo/bar',
|
||||
language: null,
|
||||
localized_id: 'foo/bar',
|
||||
next: 'foo/baz',
|
||||
next_id: 'foo/baz',
|
||||
next_title: 'baz',
|
||||
permalink: '/docs/foo/bar',
|
||||
sidebar: 'docs',
|
||||
source: path.join(docsDir, 'foo', 'bar.md'),
|
||||
title: 'Bar',
|
||||
version: null,
|
||||
});
|
||||
});
|
||||
|
||||
test('versioned website', async () => {
|
||||
const {env, siteDir, siteConfig} = await loadSetup('versioned');
|
||||
const sidebarPath = path.join(siteDir, 'sidebars.json');
|
||||
const plugin = new DocusaurusPluginContentDocs(
|
||||
{
|
||||
env,
|
||||
siteDir,
|
||||
siteConfig,
|
||||
},
|
||||
{
|
||||
path: '../docs',
|
||||
sidebarPath,
|
||||
},
|
||||
);
|
||||
const {docs: docsMetadata, versionedDir} = await plugin.loadContent();
|
||||
const docsDir = plugin.contentPath;
|
||||
|
||||
expect(docsMetadata['version-1.0.0-foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'version-1.0.0-foo/bar',
|
||||
language: null,
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
next: 'version-1.0.0-foo/baz',
|
||||
next_id: 'version-1.0.0-foo/baz',
|
||||
next_title: 'Baz',
|
||||
permalink: '/docs/1.0.0/foo/bar',
|
||||
sidebar: 'version-1.0.0-docs',
|
||||
source: path.join(versionedDir, 'version-1.0.0/foo/bar.md'),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(docsMetadata['foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'foo/bar',
|
||||
language: null,
|
||||
localized_id: 'foo/bar',
|
||||
next: 'foo/baz',
|
||||
next_id: 'foo/baz',
|
||||
next_title: 'baz',
|
||||
permalink: '/docs/next/foo/bar',
|
||||
sidebar: 'docs',
|
||||
source: path.join(docsDir, 'foo/bar.md'),
|
||||
title: 'Bar',
|
||||
version: 'next',
|
||||
});
|
||||
});
|
||||
|
||||
test('versioned & translated website', async () => {
|
||||
const {env, siteDir, siteConfig} = await loadSetup('transversioned');
|
||||
const sidebarPath = path.join(siteDir, 'sidebars.json');
|
||||
const plugin = new DocusaurusPluginContentDocs(
|
||||
{
|
||||
env,
|
||||
siteDir,
|
||||
siteConfig,
|
||||
},
|
||||
{
|
||||
path: '../docs',
|
||||
sidebarPath,
|
||||
},
|
||||
);
|
||||
const {
|
||||
docs: docsMetadata,
|
||||
translatedDir,
|
||||
versionedDir,
|
||||
} = await plugin.loadContent();
|
||||
const docsDir = plugin.contentPath;
|
||||
|
||||
expect(docsMetadata['ko-version-1.0.0-foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'ko-version-1.0.0-foo/bar',
|
||||
language: 'ko',
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
next: 'ko-version-1.0.0-foo/baz',
|
||||
next_id: 'version-1.0.0-foo/baz',
|
||||
next_title: 'baz',
|
||||
permalink: '/docs/ko/1.0.0/foo/bar',
|
||||
sidebar: 'version-1.0.0-docs',
|
||||
source: path.join(translatedDir, '/ko/version-1.0.0/foo/bar.md'),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(docsMetadata['en-version-1.0.0-foo/baz']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'en-version-1.0.0-foo/baz',
|
||||
language: 'en',
|
||||
localized_id: 'version-1.0.0-foo/baz',
|
||||
next: 'en-version-1.0.0-hello',
|
||||
next_id: 'version-1.0.0-hello',
|
||||
next_title: 'Hello, World !',
|
||||
permalink: '/docs/en/1.0.0/foo/baz',
|
||||
previous: 'en-version-1.0.0-foo/bar',
|
||||
previous_id: 'version-1.0.0-foo/bar',
|
||||
previous_title: 'Bar',
|
||||
sidebar: 'version-1.0.0-docs',
|
||||
source: path.join(versionedDir, 'version-1.0.0/foo/baz.md'),
|
||||
title: 'Baz',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(docsMetadata['en-hello']).toEqual({
|
||||
category: 'Guides',
|
||||
id: 'en-hello',
|
||||
language: 'en',
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/en/next/hello',
|
||||
previous: 'en-foo/baz',
|
||||
previous_id: 'foo/baz',
|
||||
previous_title: 'baz',
|
||||
sidebar: 'docs',
|
||||
source: path.join(docsDir, 'hello.md'),
|
||||
title: 'Hello, World !',
|
||||
version: 'next',
|
||||
});
|
||||
});
|
||||
|
||||
test('translated website', async () => {
|
||||
const {env, siteDir, siteConfig} = await loadSetup('translated');
|
||||
const sidebarPath = path.join(siteDir, 'sidebars.json');
|
||||
const plugin = new DocusaurusPluginContentDocs(
|
||||
{
|
||||
env,
|
||||
siteDir,
|
||||
siteConfig,
|
||||
},
|
||||
{
|
||||
path: '../docs',
|
||||
sidebarPath,
|
||||
},
|
||||
);
|
||||
const {docs: docsMetadata, translatedDir} = await plugin.loadContent();
|
||||
const docsDir = plugin.contentPath;
|
||||
|
||||
expect(docsMetadata['ko-foo/baz']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'ko-foo/baz',
|
||||
language: 'ko',
|
||||
localized_id: 'foo/baz',
|
||||
next: 'ko-hello',
|
||||
next_id: 'hello',
|
||||
next_title: 'Hello, World !',
|
||||
permalink: '/docs/ko/foo/baz',
|
||||
previous: 'ko-foo/bar',
|
||||
previous_id: 'foo/bar',
|
||||
previous_title: 'Bar',
|
||||
sidebar: 'docs',
|
||||
source: path.join(translatedDir, 'ko', 'foo', 'baz.md'),
|
||||
title: 'baz',
|
||||
version: null,
|
||||
});
|
||||
expect(docsMetadata['en-foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'en-foo/bar',
|
||||
language: 'en',
|
||||
localized_id: 'foo/bar',
|
||||
next: 'en-foo/baz',
|
||||
next_id: 'foo/baz',
|
||||
next_title: 'baz',
|
||||
permalink: '/docs/en/foo/bar',
|
||||
sidebar: 'docs',
|
||||
source: path.join(docsDir, 'foo', 'bar.md'),
|
||||
title: 'Bar',
|
||||
version: null,
|
||||
});
|
||||
});
|
||||
|
||||
test('versioned website with skip next release', async () => {
|
||||
const {env, siteDir, siteConfig} = await loadSetup('versioned');
|
||||
const sidebarPath = path.join(siteDir, 'sidebars.json');
|
||||
const plugin = new DocusaurusPluginContentDocs(
|
||||
{
|
||||
env,
|
||||
siteDir,
|
||||
siteConfig,
|
||||
},
|
||||
{
|
||||
path: '../docs',
|
||||
sidebarPath,
|
||||
skipNextRelease: true,
|
||||
},
|
||||
);
|
||||
const {docs: docsMetadata, versionedDir} = await plugin.loadContent();
|
||||
|
||||
expect(docsMetadata['version-1.0.0-foo/bar']).toEqual({
|
||||
category: 'Test',
|
||||
id: 'version-1.0.0-foo/bar',
|
||||
language: null,
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
next: 'version-1.0.0-foo/baz',
|
||||
next_id: 'version-1.0.0-foo/baz',
|
||||
next_title: 'Baz',
|
||||
permalink: '/docs/1.0.0/foo/bar',
|
||||
sidebar: 'version-1.0.0-docs',
|
||||
source: path.join(versionedDir, 'version-1.0.0/foo/bar.md'),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(docsMetadata['foo/bar']).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,19 +8,18 @@
|
|||
import '@babel/polyfill';
|
||||
import path from 'path';
|
||||
import processMetadata from '../metadata';
|
||||
import loadSetup from '../../../docusaurus/test/loadSetup';
|
||||
import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup';
|
||||
|
||||
describe('processMetadata', () => {
|
||||
test('normal docs', async () => {
|
||||
const props = await loadSetup('simple');
|
||||
const {siteDir, env, siteConfig} = props;
|
||||
const {siteDir, siteConfig} = props;
|
||||
const docsDir = path.resolve(siteDir, '..', 'docs');
|
||||
const sourceA = path.join('foo', 'bar.md');
|
||||
const sourceB = path.join('hello.md');
|
||||
const dataA = await processMetadata(
|
||||
sourceA,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
|
@ -28,362 +27,35 @@ describe('processMetadata', () => {
|
|||
const dataB = await processMetadata(
|
||||
sourceB,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
expect(dataA).toEqual({
|
||||
id: 'foo/bar',
|
||||
language: null,
|
||||
localized_id: 'foo/bar',
|
||||
permalink: '/docs/foo/bar',
|
||||
source: path.join(docsDir, sourceA),
|
||||
title: 'Bar',
|
||||
version: null,
|
||||
});
|
||||
expect(dataB).toEqual({
|
||||
id: 'hello',
|
||||
language: null,
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/hello',
|
||||
source: path.join(docsDir, sourceB),
|
||||
title: 'Hello, World !',
|
||||
version: null,
|
||||
});
|
||||
});
|
||||
|
||||
test('docs with custom permalink', async () => {
|
||||
const props = await loadSetup('simple');
|
||||
const {siteDir, env, siteConfig} = props;
|
||||
const {siteDir, siteConfig} = props;
|
||||
const docsDir = path.resolve(siteDir, '..', 'docs');
|
||||
const source = path.join('permalink.md');
|
||||
const data = await processMetadata(
|
||||
source,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const data = await processMetadata(source, docsDir, {}, siteConfig, 'docs');
|
||||
expect(data).toEqual({
|
||||
id: 'permalink',
|
||||
language: null,
|
||||
localized_id: 'permalink',
|
||||
permalink: '/docs/endiliey/permalink',
|
||||
source: path.join(docsDir, source),
|
||||
title: 'Permalink',
|
||||
version: null,
|
||||
});
|
||||
});
|
||||
|
||||
test('versioned docs (without translation)', async () => {
|
||||
const props = await loadSetup('versioned');
|
||||
const {siteDir, env, siteConfig} = props;
|
||||
const docsDir = path.resolve(siteDir, '..', 'docs');
|
||||
const versionedDir = path.join(siteDir, 'versioned_docs');
|
||||
const sourceA = path.join('version-1.0.0', 'foo', 'bar.md');
|
||||
const sourceB = path.join('version-1.0.0', 'hello.md');
|
||||
const sourceC = path.join('foo', 'bar.md');
|
||||
const sourceD = path.join('hello.md');
|
||||
const dataA = await processMetadata(
|
||||
sourceA,
|
||||
versionedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataB = await processMetadata(
|
||||
sourceB,
|
||||
versionedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataC = await processMetadata(
|
||||
sourceC,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataD = await processMetadata(
|
||||
sourceD,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
expect(dataA).toEqual({
|
||||
id: 'version-1.0.0-foo/bar',
|
||||
language: null,
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
permalink: '/docs/1.0.0/foo/bar',
|
||||
source: path.join(versionedDir, sourceA),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(dataB).toEqual({
|
||||
id: 'version-1.0.0-hello',
|
||||
language: null,
|
||||
localized_id: 'version-1.0.0-hello',
|
||||
permalink: '/docs/1.0.0/hello',
|
||||
source: path.join(versionedDir, sourceB),
|
||||
title: 'Hello, World !',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(dataC).toEqual({
|
||||
id: 'foo/bar',
|
||||
language: null,
|
||||
localized_id: 'foo/bar',
|
||||
permalink: '/docs/next/foo/bar',
|
||||
source: path.join(docsDir, sourceC),
|
||||
title: 'Bar',
|
||||
version: 'next',
|
||||
});
|
||||
expect(dataD).toEqual({
|
||||
id: 'hello',
|
||||
language: null,
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/next/hello',
|
||||
source: path.join(docsDir, sourceD),
|
||||
title: 'Hello, World !',
|
||||
version: 'next',
|
||||
});
|
||||
});
|
||||
|
||||
test('translated versioned docs', async () => {
|
||||
const props = await loadSetup('transversioned');
|
||||
const {siteDir, env, siteConfig} = props;
|
||||
const docsDir = path.resolve(siteDir, '..', 'docs');
|
||||
const versionedDir = path.join(siteDir, 'versioned_docs');
|
||||
const translatedDir = path.join(siteDir, 'translated_docs');
|
||||
const sourceA = path.join('ko', 'version-1.0.0', 'foo', 'bar.md');
|
||||
const sourceB = path.join('ko', 'version-1.0.0', 'hello.md');
|
||||
const sourceC = path.join('ko', 'version-1.0.1', 'foo', 'bar.md');
|
||||
const sourceD = path.join('ko', 'version-1.0.1', 'hello.md');
|
||||
const sourceE = path.join('foo', 'bar.md');
|
||||
const sourceF = path.join('hello.md');
|
||||
const sourceG = path.join('version-1.0.0', 'foo', 'bar.md');
|
||||
const sourceH = path.join('version-1.0.0', 'hello.md');
|
||||
const dataA = await processMetadata(
|
||||
sourceA,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataB = await processMetadata(
|
||||
sourceB,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataC = await processMetadata(
|
||||
sourceC,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataD = await processMetadata(
|
||||
sourceD,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataE = await processMetadata(
|
||||
sourceE,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataF = await processMetadata(
|
||||
sourceF,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataG = await processMetadata(
|
||||
sourceG,
|
||||
versionedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataH = await processMetadata(
|
||||
sourceH,
|
||||
versionedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
expect(dataA).toEqual({
|
||||
id: 'ko-version-1.0.0-foo/bar',
|
||||
language: 'ko',
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
permalink: '/docs/ko/1.0.0/foo/bar',
|
||||
source: path.join(translatedDir, sourceA),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(dataB).toEqual({
|
||||
id: 'ko-version-1.0.0-hello',
|
||||
language: 'ko',
|
||||
localized_id: 'version-1.0.0-hello',
|
||||
permalink: '/docs/ko/1.0.0/hello',
|
||||
source: path.join(translatedDir, sourceB),
|
||||
title: 'Hello, World !',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(dataC).toEqual({
|
||||
id: 'ko-version-1.0.1-foo/bar',
|
||||
language: 'ko',
|
||||
localized_id: 'version-1.0.1-foo/bar',
|
||||
permalink: '/docs/ko/foo/bar',
|
||||
source: path.join(translatedDir, sourceC),
|
||||
title: 'Bar',
|
||||
version: '1.0.1',
|
||||
});
|
||||
expect(dataD).toEqual({
|
||||
id: 'ko-version-1.0.1-hello',
|
||||
language: 'ko',
|
||||
localized_id: 'version-1.0.1-hello',
|
||||
permalink: '/docs/ko/hello',
|
||||
source: path.join(translatedDir, sourceD),
|
||||
title: 'Hello, World !',
|
||||
version: '1.0.1',
|
||||
});
|
||||
expect(dataE).toEqual({
|
||||
id: 'en-foo/bar',
|
||||
language: 'en',
|
||||
localized_id: 'foo/bar',
|
||||
permalink: '/docs/en/next/foo/bar',
|
||||
source: path.join(docsDir, sourceE),
|
||||
title: 'Bar',
|
||||
version: 'next',
|
||||
});
|
||||
expect(dataF).toEqual({
|
||||
id: 'en-hello',
|
||||
language: 'en',
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/en/next/hello',
|
||||
source: path.join(docsDir, sourceF),
|
||||
title: 'Hello, World !',
|
||||
version: 'next',
|
||||
});
|
||||
expect(dataG).toEqual({
|
||||
id: 'en-version-1.0.0-foo/bar',
|
||||
language: 'en',
|
||||
localized_id: 'version-1.0.0-foo/bar',
|
||||
permalink: '/docs/en/1.0.0/foo/bar',
|
||||
source: path.join(versionedDir, sourceG),
|
||||
title: 'Bar',
|
||||
version: '1.0.0',
|
||||
});
|
||||
expect(dataH).toEqual({
|
||||
id: 'en-version-1.0.0-hello',
|
||||
language: 'en',
|
||||
localized_id: 'version-1.0.0-hello',
|
||||
permalink: '/docs/en/1.0.0/hello',
|
||||
source: path.join(versionedDir, sourceH),
|
||||
title: 'Hello, World !',
|
||||
version: '1.0.0',
|
||||
});
|
||||
});
|
||||
|
||||
test('translated docs only', async () => {
|
||||
const props = await loadSetup('translated');
|
||||
const {siteDir, env, siteConfig} = props;
|
||||
const docsDir = path.resolve(siteDir, '..', 'docs');
|
||||
const translatedDir = path.join(siteDir, 'translated_docs');
|
||||
const sourceA = path.join('ko', 'foo', 'bar.md');
|
||||
const sourceB = path.join('ko', 'hello.md');
|
||||
const sourceC = path.join('foo', 'bar.md');
|
||||
const sourceD = path.join('hello.md');
|
||||
const dataA = await processMetadata(
|
||||
sourceA,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataB = await processMetadata(
|
||||
sourceB,
|
||||
translatedDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataC = await processMetadata(
|
||||
sourceC,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
const dataD = await processMetadata(
|
||||
sourceD,
|
||||
docsDir,
|
||||
env,
|
||||
{},
|
||||
siteConfig,
|
||||
'docs',
|
||||
);
|
||||
expect(dataA).toEqual({
|
||||
id: 'ko-foo/bar',
|
||||
language: 'ko',
|
||||
localized_id: 'foo/bar',
|
||||
permalink: '/docs/ko/foo/bar',
|
||||
source: path.join(translatedDir, sourceA),
|
||||
title: 'Bar',
|
||||
version: null,
|
||||
});
|
||||
expect(dataB).toEqual({
|
||||
id: 'ko-hello',
|
||||
language: 'ko',
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/ko/hello',
|
||||
source: path.join(translatedDir, sourceB),
|
||||
title: 'Hello, World !',
|
||||
version: null,
|
||||
});
|
||||
expect(dataC).toEqual({
|
||||
id: 'en-foo/bar',
|
||||
language: 'en',
|
||||
localized_id: 'foo/bar',
|
||||
permalink: '/docs/en/foo/bar',
|
||||
source: path.join(docsDir, sourceC),
|
||||
title: 'Bar',
|
||||
version: null,
|
||||
});
|
||||
expect(dataD).toEqual({
|
||||
id: 'en-hello',
|
||||
language: 'en',
|
||||
localized_id: 'hello',
|
||||
permalink: '/docs/en/hello',
|
||||
source: path.join(docsDir, sourceD),
|
||||
title: 'Hello, World !',
|
||||
version: null,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
import path from 'path';
|
||||
import loadSidebars from '../sidebars';
|
||||
import loadSetup from '../../../docusaurus/test/loadSetup';
|
||||
import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup';
|
||||
|
||||
/* eslint-disable global-require, import/no-dynamic-require */
|
||||
|
||||
|
@ -15,38 +15,15 @@ describe('loadSidebars', () => {
|
|||
const fixtures = path.join(__dirname, '..', '__fixtures__');
|
||||
|
||||
test('normal site with sidebars', async () => {
|
||||
const {env, siteDir} = await loadSetup('simple');
|
||||
const {siteDir} = await loadSetup('simple');
|
||||
const sidebar = require(path.join(siteDir, 'sidebars.json'));
|
||||
const result = loadSidebars({siteDir, env, sidebar});
|
||||
const result = loadSidebars({siteDir, sidebar});
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('site without sidebars', () => {
|
||||
const env = {};
|
||||
const siteDir = path.join(fixtures, 'bad-site');
|
||||
const result = loadSidebars({siteDir, env, sidebar: {}});
|
||||
const result = loadSidebars({siteDir, sidebar: {}});
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('site with sidebars & versioned sidebars', async () => {
|
||||
const {env, siteDir} = await loadSetup('versioned');
|
||||
const sidebar = require(path.join(siteDir, 'sidebars.json'));
|
||||
const result = loadSidebars({siteDir, env, sidebar});
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('site with missing versioned sidebars', async () => {
|
||||
const env = {
|
||||
versioning: {
|
||||
enabled: true,
|
||||
versions: ['2.0.0'],
|
||||
},
|
||||
};
|
||||
const {siteDir} = await loadSetup('versioned');
|
||||
expect(() => {
|
||||
loadSidebars({siteDir, env, sidebar: {}});
|
||||
}).toThrowErrorMatchingInlineSnapshot(
|
||||
`"Failed to load versioned_sidebars/version-2.0.0-sidebars.json. It does not exist."`,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue