@docusaurus/plugin-content-docs 2.0.0-beta.15d451942 → 2.0.0-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/categoryGeneratedIndex.d.ts +12 -0
- package/lib/categoryGeneratedIndex.js +35 -0
- package/lib/cli.d.ts +2 -2
- package/lib/cli.js +37 -51
- package/lib/client/docsClientUtils.d.ts +6 -26
- package/lib/client/docsClientUtils.js +28 -34
- package/lib/{theme/hooks/useDocs.d.ts → client/index.d.ts} +4 -3
- package/lib/{theme/hooks/useDocs.js → client/index.js} +28 -25
- package/lib/docs.d.ts +31 -4
- package/lib/docs.js +160 -54
- package/{src/__tests__/__fixtures__/simple-site/docusaurus.config.js → lib/frontMatter.d.ts} +4 -8
- package/lib/{docFrontMatter.js → frontMatter.js} +13 -6
- package/lib/globalData.d.ts +2 -2
- package/lib/globalData.js +32 -3
- package/lib/index.d.ts +4 -3
- package/lib/index.js +123 -136
- package/lib/lastUpdate.d.ts +4 -6
- package/lib/lastUpdate.js +22 -26
- package/lib/markdown/index.d.ts +3 -6
- package/lib/markdown/index.js +3 -3
- package/lib/markdown/linkify.d.ts +1 -1
- package/lib/markdown/linkify.js +7 -3
- package/lib/numberPrefix.d.ts +1 -1
- package/lib/numberPrefix.js +16 -21
- package/lib/options.d.ts +3 -5
- package/lib/options.js +55 -19
- package/lib/props.d.ts +7 -2
- package/lib/props.js +70 -14
- package/lib/routes.d.ts +28 -0
- package/lib/routes.js +110 -0
- package/lib/server-export.d.ts +8 -0
- package/lib/server-export.js +23 -0
- package/lib/{sidebarItemsGenerator.d.ts → sidebars/generator.d.ts} +1 -6
- package/lib/sidebars/generator.js +209 -0
- package/lib/sidebars/index.d.ts +13 -0
- package/lib/sidebars/index.js +94 -0
- package/lib/sidebars/normalization.d.ts +13 -0
- package/lib/sidebars/normalization.js +55 -0
- package/lib/sidebars/postProcessor.d.ts +8 -0
- package/lib/sidebars/postProcessor.js +65 -0
- package/lib/sidebars/processor.d.ts +10 -0
- package/lib/sidebars/processor.js +79 -0
- package/lib/sidebars/types.d.ts +174 -0
- package/{src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars2.js → lib/sidebars/types.js} +2 -10
- package/lib/sidebars/utils.d.ts +54 -0
- package/lib/sidebars/utils.js +255 -0
- package/lib/sidebars/validation.d.ts +11 -0
- package/lib/sidebars/validation.js +138 -0
- package/lib/slug.d.ts +6 -4
- package/lib/slug.js +29 -19
- package/{src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docusaurus.config.js → lib/tags.d.ts} +2 -8
- package/lib/tags.js +21 -0
- package/lib/translations.d.ts +2 -2
- package/lib/translations.js +89 -49
- package/lib/types.d.ts +60 -130
- package/lib/versions.d.ts +29 -4
- package/lib/versions.js +134 -97
- package/package.json +30 -26
- package/src/categoryGeneratedIndex.ts +55 -0
- package/src/cli.ts +47 -63
- package/src/client/docsClientUtils.ts +38 -73
- package/src/{theme/hooks/useDocs.ts → client/index.ts} +16 -11
- package/{types.d.ts → src/deps.d.ts} +1 -1
- package/src/docs.ts +212 -46
- package/src/{docFrontMatter.ts → frontMatter.ts} +21 -26
- package/src/globalData.ts +53 -3
- package/src/index.ts +168 -178
- package/src/lastUpdate.ts +26 -33
- package/src/markdown/index.ts +10 -16
- package/src/markdown/linkify.ts +6 -2
- package/src/numberPrefix.ts +19 -26
- package/src/options.ts +60 -32
- package/src/plugin-content-docs.d.ts +263 -40
- package/src/props.ts +105 -21
- package/src/routes.ts +185 -0
- package/src/server-export.ts +24 -0
- package/src/sidebars/README.md +9 -0
- package/src/sidebars/generator.ts +292 -0
- package/src/sidebars/index.ts +120 -0
- package/src/sidebars/normalization.ts +85 -0
- package/src/sidebars/postProcessor.ts +89 -0
- package/src/sidebars/processor.ts +120 -0
- package/src/sidebars/types.ts +274 -0
- package/src/sidebars/utils.ts +388 -0
- package/src/sidebars/validation.ts +174 -0
- package/src/slug.ts +40 -23
- package/src/tags.ts +19 -0
- package/src/translations.ts +124 -66
- package/src/types.ts +67 -187
- package/src/versions.ts +205 -110
- package/lib/.tsbuildinfo +0 -4717
- package/lib/docFrontMatter.d.ts +0 -21
- package/lib/sidebarItemsGenerator.js +0 -211
- package/lib/sidebars.d.ts +0 -42
- package/lib/sidebars.js +0 -309
- package/src/__tests__/__fixtures__/bad-id-site/docs/invalid-id.md +0 -5
- package/src/__tests__/__fixtures__/bad-slug-on-doc-home-site/docs/docWithSlug.md +0 -5
- package/src/__tests__/__fixtures__/empty-site/docusaurus.config.js +0 -16
- package/src/__tests__/__fixtures__/empty-site/sidebars.json +0 -1
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-shorthand.js +0 -34
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-wrong-items.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-wrong-label.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-category.js +0 -44
- package/src/__tests__/__fixtures__/sidebars/sidebars-collapsed-first-level.json +0 -20
- package/src/__tests__/__fixtures__/sidebars/sidebars-collapsed.json +0 -21
- package/src/__tests__/__fixtures__/sidebars/sidebars-doc-id-not-string.json +0 -10
- package/src/__tests__/__fixtures__/sidebars/sidebars-first-level-not-category.js +0 -20
- package/src/__tests__/__fixtures__/sidebars/sidebars-link-wrong-href.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-link-wrong-label.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-link.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-unknown-type.json +0 -14
- package/src/__tests__/__fixtures__/sidebars/sidebars-wrong-field.json +0 -20
- package/src/__tests__/__fixtures__/sidebars/sidebars.json +0 -20
- package/src/__tests__/__fixtures__/simple-site/docs/foo/bar.md +0 -69
- package/src/__tests__/__fixtures__/simple-site/docs/foo/baz.md +0 -67
- package/src/__tests__/__fixtures__/simple-site/docs/headingAsTitle.md +0 -1
- package/src/__tests__/__fixtures__/simple-site/docs/hello.md +0 -52
- package/src/__tests__/__fixtures__/simple-site/docs/ipsum.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/lorem.md +0 -6
- package/src/__tests__/__fixtures__/simple-site/docs/rootAbsoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootRelativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootResolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootTryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/sidebars.json +0 -23
- package/src/__tests__/__fixtures__/simple-site/wrong-sidebars.json +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/0-getting-started.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/1-installation.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/00_api-overview.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/0 --- Client API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/1 --- Server API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/0. Plugin API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/1. Theme API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/_category_.yml +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/03_api-end.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/_category_.json +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/0-guide2.5.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/02-guide2.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/_category_.json +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/a-guide4.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/b-guide5.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/guide3.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/z-guide1.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars.js +0 -23
- package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-1.md +0 -7
- package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-2.md +0 -8
- package/src/__tests__/__fixtures__/site-with-doc-label/docusaurus.config.js +0 -14
- package/src/__tests__/__fixtures__/site-with-doc-label/sidebars.json +0 -14
- package/src/__tests__/__fixtures__/versioned-site/community/team.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/community_sidebars.json +0 -3
- package/src/__tests__/__fixtures__/versioned-site/community_versioned_docs/version-1.0.0/team.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/community_versioned_sidebars/version-1.0.0-sidebars.json +0 -3
- package/src/__tests__/__fixtures__/versioned-site/community_versions.json +0 -1
- package/src/__tests__/__fixtures__/versioned-site/docs/foo/bar.md +0 -4
- package/src/__tests__/__fixtures__/versioned-site/docs/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docusaurus.config.js +0 -18
- package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs-community/current/team.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/sidebars.json +0 -10
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/bar.md +0 -4
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/baz.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/foo/bar.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootAbsoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootRelativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootResolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootTryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.0-sidebars.json +0 -11
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.1-sidebars.json +0 -10
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-withSlugs-sidebars.json +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versions.json +0 -5
- package/src/__tests__/__snapshots__/cli.test.ts.snap +0 -90
- package/src/__tests__/__snapshots__/index.test.ts.snap +0 -1907
- package/src/__tests__/__snapshots__/sidebars.test.ts.snap +0 -218
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -487
- package/src/__tests__/cli.test.ts +0 -333
- package/src/__tests__/docFrontMatter.test.ts +0 -204
- package/src/__tests__/docs.test.ts +0 -875
- package/src/__tests__/index.test.ts +0 -1831
- package/src/__tests__/lastUpdate.test.ts +0 -68
- package/src/__tests__/numberPrefix.test.ts +0 -199
- package/src/__tests__/options.test.ts +0 -232
- package/src/__tests__/sidebarItemsGenerator.test.ts +0 -336
- package/src/__tests__/sidebars.test.ts +0 -638
- package/src/__tests__/slug.test.ts +0 -109
- package/src/__tests__/translations.test.ts +0 -159
- package/src/__tests__/versions.test.ts +0 -718
- package/src/client/__tests__/docsClientUtils.test.ts +0 -372
- package/src/markdown/__tests__/__fixtures__/docs/doc-localized.md +0 -1
- package/src/markdown/__tests__/__fixtures__/docs/doc1.md +0 -13
- package/src/markdown/__tests__/__fixtures__/docs/doc2.md +0 -12
- package/src/markdown/__tests__/__fixtures__/docs/doc4.md +0 -19
- package/src/markdown/__tests__/__fixtures__/docs/doc5.md +0 -6
- package/src/markdown/__tests__/__fixtures__/docs/subdir/doc3.md +0 -3
- package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/doc2.md +0 -7
- package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/subdir/doc1.md +0 -3
- package/src/markdown/__tests__/__snapshots__/linkify.test.ts.snap +0 -82
- package/src/markdown/__tests__/linkify.test.ts +0 -190
- package/src/sidebarItemsGenerator.ts +0 -307
- package/src/sidebars.ts +0 -489
- package/tsconfig.json +0 -9
|
@@ -1,718 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import path from 'path';
|
|
9
|
-
import {
|
|
10
|
-
getVersionsFilePath,
|
|
11
|
-
getVersionedDocsDirPath,
|
|
12
|
-
getVersionedSidebarsDirPath,
|
|
13
|
-
readVersionsMetadata,
|
|
14
|
-
} from '../versions';
|
|
15
|
-
import {DEFAULT_OPTIONS} from '../options';
|
|
16
|
-
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
|
17
|
-
import {PluginOptions, VersionMetadata} from '../types';
|
|
18
|
-
import {I18n} from '@docusaurus/types';
|
|
19
|
-
|
|
20
|
-
const DefaultI18N: I18n = {
|
|
21
|
-
currentLocale: 'en',
|
|
22
|
-
locales: ['en'],
|
|
23
|
-
defaultLocale: 'en',
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
describe('version paths', () => {
|
|
27
|
-
test('getVersionsFilePath', () => {
|
|
28
|
-
expect(getVersionsFilePath('someSiteDir', DEFAULT_PLUGIN_ID)).toBe(
|
|
29
|
-
`someSiteDir${path.sep}versions.json`,
|
|
30
|
-
);
|
|
31
|
-
expect(getVersionsFilePath('otherSite/dir', 'pluginId')).toBe(
|
|
32
|
-
`otherSite${path.sep}dir${path.sep}pluginId_versions.json`,
|
|
33
|
-
);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test('getVersionedDocsDirPath', () => {
|
|
37
|
-
expect(getVersionedDocsDirPath('someSiteDir', DEFAULT_PLUGIN_ID)).toBe(
|
|
38
|
-
`someSiteDir${path.sep}versioned_docs`,
|
|
39
|
-
);
|
|
40
|
-
expect(getVersionedDocsDirPath('otherSite/dir', 'pluginId')).toBe(
|
|
41
|
-
`otherSite${path.sep}dir${path.sep}pluginId_versioned_docs`,
|
|
42
|
-
);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test('getVersionedSidebarsDirPath', () => {
|
|
46
|
-
expect(getVersionedSidebarsDirPath('someSiteDir', DEFAULT_PLUGIN_ID)).toBe(
|
|
47
|
-
`someSiteDir${path.sep}versioned_sidebars`,
|
|
48
|
-
);
|
|
49
|
-
expect(getVersionedSidebarsDirPath('otherSite/dir', 'pluginId')).toBe(
|
|
50
|
-
`otherSite${path.sep}dir${path.sep}pluginId_versioned_sidebars`,
|
|
51
|
-
);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
describe('simple site', () => {
|
|
56
|
-
async function loadSite() {
|
|
57
|
-
const simpleSiteDir = path.resolve(
|
|
58
|
-
path.join(__dirname, '__fixtures__', 'simple-site'),
|
|
59
|
-
);
|
|
60
|
-
const defaultOptions: PluginOptions = {
|
|
61
|
-
id: DEFAULT_PLUGIN_ID,
|
|
62
|
-
...DEFAULT_OPTIONS,
|
|
63
|
-
};
|
|
64
|
-
const defaultContext = {
|
|
65
|
-
siteDir: simpleSiteDir,
|
|
66
|
-
baseUrl: '/',
|
|
67
|
-
i18n: DefaultI18N,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const vCurrent: VersionMetadata = {
|
|
71
|
-
contentPath: path.join(simpleSiteDir, 'docs'),
|
|
72
|
-
contentPathLocalized: path.join(
|
|
73
|
-
simpleSiteDir,
|
|
74
|
-
'i18n/en/docusaurus-plugin-content-docs/current',
|
|
75
|
-
),
|
|
76
|
-
isLast: true,
|
|
77
|
-
routePriority: -1,
|
|
78
|
-
sidebarFilePath: undefined,
|
|
79
|
-
versionLabel: 'Next',
|
|
80
|
-
versionName: 'current',
|
|
81
|
-
versionPath: '/docs',
|
|
82
|
-
};
|
|
83
|
-
return {simpleSiteDir, defaultOptions, defaultContext, vCurrent};
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
test('readVersionsMetadata simple site', async () => {
|
|
87
|
-
const {defaultOptions, defaultContext, vCurrent} = await loadSite();
|
|
88
|
-
|
|
89
|
-
const versionsMetadata = readVersionsMetadata({
|
|
90
|
-
options: defaultOptions,
|
|
91
|
-
context: defaultContext,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
expect(versionsMetadata).toEqual([vCurrent]);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
test('readVersionsMetadata simple site with base url', async () => {
|
|
98
|
-
const {defaultOptions, defaultContext, vCurrent} = await loadSite();
|
|
99
|
-
|
|
100
|
-
const versionsMetadata = readVersionsMetadata({
|
|
101
|
-
options: defaultOptions,
|
|
102
|
-
context: {
|
|
103
|
-
...defaultContext,
|
|
104
|
-
baseUrl: '/myBaseUrl',
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
expect(versionsMetadata).toEqual([
|
|
109
|
-
{
|
|
110
|
-
...vCurrent,
|
|
111
|
-
versionPath: '/myBaseUrl/docs',
|
|
112
|
-
},
|
|
113
|
-
]);
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
test('readVersionsMetadata simple site with current version config', async () => {
|
|
117
|
-
const {defaultOptions, defaultContext, vCurrent} = await loadSite();
|
|
118
|
-
|
|
119
|
-
const versionsMetadata = readVersionsMetadata({
|
|
120
|
-
options: {
|
|
121
|
-
...defaultOptions,
|
|
122
|
-
versions: {
|
|
123
|
-
current: {
|
|
124
|
-
label: 'current-label',
|
|
125
|
-
path: 'current-path',
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
context: {
|
|
130
|
-
...defaultContext,
|
|
131
|
-
baseUrl: '/myBaseUrl',
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
expect(versionsMetadata).toEqual([
|
|
136
|
-
{
|
|
137
|
-
...vCurrent,
|
|
138
|
-
versionPath: '/myBaseUrl/docs/current-path',
|
|
139
|
-
versionLabel: 'current-label',
|
|
140
|
-
routePriority: undefined,
|
|
141
|
-
sidebarFilePath: undefined,
|
|
142
|
-
versionEditUrl: undefined,
|
|
143
|
-
versionEditUrlLocalized: undefined,
|
|
144
|
-
},
|
|
145
|
-
]);
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
test('readVersionsMetadata simple site with unknown lastVersion should throw', async () => {
|
|
149
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
150
|
-
|
|
151
|
-
expect(() =>
|
|
152
|
-
readVersionsMetadata({
|
|
153
|
-
options: {...defaultOptions, lastVersion: 'unknownVersionName'},
|
|
154
|
-
context: defaultContext,
|
|
155
|
-
}),
|
|
156
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
157
|
-
`"Docs option lastVersion=unknownVersionName is invalid. Available version names are: current"`,
|
|
158
|
-
);
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
test('readVersionsMetadata simple site with unknown version configurations should throw', async () => {
|
|
162
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
163
|
-
|
|
164
|
-
expect(() =>
|
|
165
|
-
readVersionsMetadata({
|
|
166
|
-
options: {
|
|
167
|
-
...defaultOptions,
|
|
168
|
-
versions: {
|
|
169
|
-
current: {label: 'current'},
|
|
170
|
-
unknownVersionName1: {label: 'unknownVersionName1'},
|
|
171
|
-
unknownVersionName2: {label: 'unknownVersionName2'},
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
context: defaultContext,
|
|
175
|
-
}),
|
|
176
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
177
|
-
`"Bad docs options.versions: unknown versions found: unknownVersionName1,unknownVersionName2. Available version names are: current"`,
|
|
178
|
-
);
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
test('readVersionsMetadata simple site with disableVersioning while single version should throw', async () => {
|
|
182
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
183
|
-
|
|
184
|
-
expect(() =>
|
|
185
|
-
readVersionsMetadata({
|
|
186
|
-
options: {...defaultOptions, disableVersioning: true},
|
|
187
|
-
context: defaultContext,
|
|
188
|
-
}),
|
|
189
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
190
|
-
`"Docs: using disableVersioning=true option on a non-versioned site does not make sense"`,
|
|
191
|
-
);
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
test('readVersionsMetadata simple site without including current version should throw', async () => {
|
|
195
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
196
|
-
|
|
197
|
-
expect(() =>
|
|
198
|
-
readVersionsMetadata({
|
|
199
|
-
options: {...defaultOptions, includeCurrentVersion: false},
|
|
200
|
-
context: defaultContext,
|
|
201
|
-
}),
|
|
202
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
203
|
-
`"It is not possible to use docs without any version. Please check the configuration of these options: includeCurrentVersion=false disableVersioning=false"`,
|
|
204
|
-
);
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
describe('versioned site, pluginId=default', () => {
|
|
209
|
-
async function loadSite() {
|
|
210
|
-
const versionedSiteDir = path.resolve(
|
|
211
|
-
path.join(__dirname, '__fixtures__', 'versioned-site'),
|
|
212
|
-
);
|
|
213
|
-
const defaultOptions: PluginOptions = {
|
|
214
|
-
id: DEFAULT_PLUGIN_ID,
|
|
215
|
-
...DEFAULT_OPTIONS,
|
|
216
|
-
sidebarPath: 'sidebars.json',
|
|
217
|
-
};
|
|
218
|
-
const defaultContext = {
|
|
219
|
-
siteDir: versionedSiteDir,
|
|
220
|
-
baseUrl: '/',
|
|
221
|
-
i18n: DefaultI18N,
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
const vCurrent: VersionMetadata = {
|
|
225
|
-
contentPath: path.join(versionedSiteDir, 'docs'),
|
|
226
|
-
contentPathLocalized: path.join(
|
|
227
|
-
versionedSiteDir,
|
|
228
|
-
'i18n/en/docusaurus-plugin-content-docs/current',
|
|
229
|
-
),
|
|
230
|
-
isLast: false,
|
|
231
|
-
routePriority: undefined,
|
|
232
|
-
sidebarFilePath: path.join(versionedSiteDir, 'sidebars.json'),
|
|
233
|
-
versionLabel: 'Next',
|
|
234
|
-
versionName: 'current',
|
|
235
|
-
versionPath: '/docs/next',
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
const v101: VersionMetadata = {
|
|
239
|
-
contentPath: path.join(versionedSiteDir, 'versioned_docs/version-1.0.1'),
|
|
240
|
-
contentPathLocalized: path.join(
|
|
241
|
-
versionedSiteDir,
|
|
242
|
-
'i18n/en/docusaurus-plugin-content-docs/version-1.0.1',
|
|
243
|
-
),
|
|
244
|
-
isLast: true,
|
|
245
|
-
routePriority: -1,
|
|
246
|
-
sidebarFilePath: path.join(
|
|
247
|
-
versionedSiteDir,
|
|
248
|
-
'versioned_sidebars/version-1.0.1-sidebars.json',
|
|
249
|
-
),
|
|
250
|
-
versionLabel: '1.0.1',
|
|
251
|
-
versionName: '1.0.1',
|
|
252
|
-
versionPath: '/docs',
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
const v100: VersionMetadata = {
|
|
256
|
-
contentPath: path.join(versionedSiteDir, 'versioned_docs/version-1.0.0'),
|
|
257
|
-
contentPathLocalized: path.join(
|
|
258
|
-
versionedSiteDir,
|
|
259
|
-
'i18n/en/docusaurus-plugin-content-docs/version-1.0.0',
|
|
260
|
-
),
|
|
261
|
-
isLast: false,
|
|
262
|
-
routePriority: undefined,
|
|
263
|
-
sidebarFilePath: path.join(
|
|
264
|
-
versionedSiteDir,
|
|
265
|
-
'versioned_sidebars/version-1.0.0-sidebars.json',
|
|
266
|
-
),
|
|
267
|
-
versionLabel: '1.0.0',
|
|
268
|
-
versionName: '1.0.0',
|
|
269
|
-
versionPath: '/docs/1.0.0',
|
|
270
|
-
};
|
|
271
|
-
|
|
272
|
-
const vwithSlugs: VersionMetadata = {
|
|
273
|
-
contentPath: path.join(
|
|
274
|
-
versionedSiteDir,
|
|
275
|
-
'versioned_docs/version-withSlugs',
|
|
276
|
-
),
|
|
277
|
-
contentPathLocalized: path.join(
|
|
278
|
-
versionedSiteDir,
|
|
279
|
-
'i18n/en/docusaurus-plugin-content-docs/version-withSlugs',
|
|
280
|
-
),
|
|
281
|
-
isLast: false,
|
|
282
|
-
routePriority: undefined,
|
|
283
|
-
sidebarFilePath: path.join(
|
|
284
|
-
versionedSiteDir,
|
|
285
|
-
'versioned_sidebars/version-withSlugs-sidebars.json',
|
|
286
|
-
),
|
|
287
|
-
versionLabel: 'withSlugs',
|
|
288
|
-
versionName: 'withSlugs',
|
|
289
|
-
versionPath: '/docs/withSlugs',
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
return {
|
|
293
|
-
versionedSiteDir,
|
|
294
|
-
defaultOptions,
|
|
295
|
-
defaultContext,
|
|
296
|
-
vCurrent,
|
|
297
|
-
v101,
|
|
298
|
-
v100,
|
|
299
|
-
vwithSlugs,
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
test('readVersionsMetadata versioned site', async () => {
|
|
304
|
-
const {
|
|
305
|
-
defaultOptions,
|
|
306
|
-
defaultContext,
|
|
307
|
-
vCurrent,
|
|
308
|
-
v101,
|
|
309
|
-
v100,
|
|
310
|
-
vwithSlugs,
|
|
311
|
-
} = await loadSite();
|
|
312
|
-
|
|
313
|
-
const versionsMetadata = readVersionsMetadata({
|
|
314
|
-
options: defaultOptions,
|
|
315
|
-
context: defaultContext,
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
expect(versionsMetadata).toEqual([vCurrent, v101, v100, vwithSlugs]);
|
|
319
|
-
});
|
|
320
|
-
|
|
321
|
-
test('readVersionsMetadata versioned site with includeCurrentVersion=false', async () => {
|
|
322
|
-
const {
|
|
323
|
-
defaultOptions,
|
|
324
|
-
defaultContext,
|
|
325
|
-
v101,
|
|
326
|
-
v100,
|
|
327
|
-
vwithSlugs,
|
|
328
|
-
} = await loadSite();
|
|
329
|
-
|
|
330
|
-
const versionsMetadata = readVersionsMetadata({
|
|
331
|
-
options: {...defaultOptions, includeCurrentVersion: false},
|
|
332
|
-
context: defaultContext,
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
expect(versionsMetadata).toEqual([
|
|
336
|
-
// vCurrent removed
|
|
337
|
-
v101,
|
|
338
|
-
v100,
|
|
339
|
-
vwithSlugs,
|
|
340
|
-
]);
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
test('readVersionsMetadata versioned site with version options', async () => {
|
|
344
|
-
const {
|
|
345
|
-
defaultOptions,
|
|
346
|
-
defaultContext,
|
|
347
|
-
vCurrent,
|
|
348
|
-
v101,
|
|
349
|
-
v100,
|
|
350
|
-
vwithSlugs,
|
|
351
|
-
} = await loadSite();
|
|
352
|
-
|
|
353
|
-
const versionsMetadata = readVersionsMetadata({
|
|
354
|
-
options: {
|
|
355
|
-
...defaultOptions,
|
|
356
|
-
lastVersion: '1.0.0',
|
|
357
|
-
versions: {
|
|
358
|
-
current: {
|
|
359
|
-
path: 'current-path',
|
|
360
|
-
},
|
|
361
|
-
'1.0.0': {
|
|
362
|
-
label: '1.0.0-label',
|
|
363
|
-
},
|
|
364
|
-
},
|
|
365
|
-
},
|
|
366
|
-
context: defaultContext,
|
|
367
|
-
});
|
|
368
|
-
|
|
369
|
-
expect(versionsMetadata).toEqual([
|
|
370
|
-
{...vCurrent, versionPath: '/docs/current-path'},
|
|
371
|
-
{
|
|
372
|
-
...v101,
|
|
373
|
-
isLast: false,
|
|
374
|
-
routePriority: undefined,
|
|
375
|
-
versionPath: '/docs/1.0.1',
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
...v100,
|
|
379
|
-
isLast: true,
|
|
380
|
-
routePriority: -1,
|
|
381
|
-
versionLabel: '1.0.0-label',
|
|
382
|
-
versionPath: '/docs',
|
|
383
|
-
},
|
|
384
|
-
vwithSlugs,
|
|
385
|
-
]);
|
|
386
|
-
});
|
|
387
|
-
|
|
388
|
-
test('readVersionsMetadata versioned site with editUrl', async () => {
|
|
389
|
-
const {
|
|
390
|
-
defaultOptions,
|
|
391
|
-
defaultContext,
|
|
392
|
-
vCurrent,
|
|
393
|
-
v101,
|
|
394
|
-
v100,
|
|
395
|
-
vwithSlugs,
|
|
396
|
-
} = await loadSite();
|
|
397
|
-
|
|
398
|
-
const versionsMetadata = readVersionsMetadata({
|
|
399
|
-
options: {
|
|
400
|
-
...defaultOptions,
|
|
401
|
-
editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/',
|
|
402
|
-
},
|
|
403
|
-
context: defaultContext,
|
|
404
|
-
});
|
|
405
|
-
|
|
406
|
-
expect(versionsMetadata).toEqual([
|
|
407
|
-
{
|
|
408
|
-
...vCurrent,
|
|
409
|
-
versionEditUrl:
|
|
410
|
-
'https://github.com/facebook/docusaurus/edit/master/website/docs',
|
|
411
|
-
versionEditUrlLocalized:
|
|
412
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/current',
|
|
413
|
-
},
|
|
414
|
-
{
|
|
415
|
-
...v101,
|
|
416
|
-
versionEditUrl:
|
|
417
|
-
'https://github.com/facebook/docusaurus/edit/master/website/versioned_docs/version-1.0.1',
|
|
418
|
-
versionEditUrlLocalized:
|
|
419
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/version-1.0.1',
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
...v100,
|
|
423
|
-
versionEditUrl:
|
|
424
|
-
'https://github.com/facebook/docusaurus/edit/master/website/versioned_docs/version-1.0.0',
|
|
425
|
-
versionEditUrlLocalized:
|
|
426
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/version-1.0.0',
|
|
427
|
-
},
|
|
428
|
-
{
|
|
429
|
-
...vwithSlugs,
|
|
430
|
-
versionEditUrl:
|
|
431
|
-
'https://github.com/facebook/docusaurus/edit/master/website/versioned_docs/version-withSlugs',
|
|
432
|
-
versionEditUrlLocalized:
|
|
433
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/version-withSlugs',
|
|
434
|
-
},
|
|
435
|
-
]);
|
|
436
|
-
});
|
|
437
|
-
|
|
438
|
-
test('readVersionsMetadata versioned site with editUrl and editCurrentVersion=true', async () => {
|
|
439
|
-
const {
|
|
440
|
-
defaultOptions,
|
|
441
|
-
defaultContext,
|
|
442
|
-
vCurrent,
|
|
443
|
-
v101,
|
|
444
|
-
v100,
|
|
445
|
-
vwithSlugs,
|
|
446
|
-
} = await loadSite();
|
|
447
|
-
|
|
448
|
-
const versionsMetadata = readVersionsMetadata({
|
|
449
|
-
options: {
|
|
450
|
-
...defaultOptions,
|
|
451
|
-
editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/',
|
|
452
|
-
editCurrentVersion: true,
|
|
453
|
-
},
|
|
454
|
-
context: defaultContext,
|
|
455
|
-
});
|
|
456
|
-
|
|
457
|
-
expect(versionsMetadata).toEqual([
|
|
458
|
-
{
|
|
459
|
-
...vCurrent,
|
|
460
|
-
versionEditUrl:
|
|
461
|
-
'https://github.com/facebook/docusaurus/edit/master/website/docs',
|
|
462
|
-
versionEditUrlLocalized:
|
|
463
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/current',
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
...v101,
|
|
467
|
-
versionEditUrl:
|
|
468
|
-
'https://github.com/facebook/docusaurus/edit/master/website/docs',
|
|
469
|
-
versionEditUrlLocalized:
|
|
470
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/current',
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
...v100,
|
|
474
|
-
versionEditUrl:
|
|
475
|
-
'https://github.com/facebook/docusaurus/edit/master/website/docs',
|
|
476
|
-
versionEditUrlLocalized:
|
|
477
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/current',
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
...vwithSlugs,
|
|
481
|
-
versionEditUrl:
|
|
482
|
-
'https://github.com/facebook/docusaurus/edit/master/website/docs',
|
|
483
|
-
versionEditUrlLocalized:
|
|
484
|
-
'https://github.com/facebook/docusaurus/edit/master/website/i18n/en/docusaurus-plugin-content-docs/current',
|
|
485
|
-
},
|
|
486
|
-
]);
|
|
487
|
-
});
|
|
488
|
-
|
|
489
|
-
test('readVersionsMetadata versioned site with onlyIncludeVersions option', async () => {
|
|
490
|
-
const {defaultOptions, defaultContext, v101, vwithSlugs} = await loadSite();
|
|
491
|
-
|
|
492
|
-
const versionsMetadata = readVersionsMetadata({
|
|
493
|
-
options: {
|
|
494
|
-
...defaultOptions,
|
|
495
|
-
// Order reversed on purpose: should not have any impact
|
|
496
|
-
onlyIncludeVersions: [vwithSlugs.versionName, v101.versionName],
|
|
497
|
-
},
|
|
498
|
-
context: defaultContext,
|
|
499
|
-
});
|
|
500
|
-
|
|
501
|
-
expect(versionsMetadata).toEqual([v101, vwithSlugs]);
|
|
502
|
-
});
|
|
503
|
-
|
|
504
|
-
test('readVersionsMetadata versioned site with disableVersioning', async () => {
|
|
505
|
-
const {defaultOptions, defaultContext, vCurrent} = await loadSite();
|
|
506
|
-
|
|
507
|
-
const versionsMetadata = readVersionsMetadata({
|
|
508
|
-
options: {...defaultOptions, disableVersioning: true},
|
|
509
|
-
context: defaultContext,
|
|
510
|
-
});
|
|
511
|
-
|
|
512
|
-
expect(versionsMetadata).toEqual([
|
|
513
|
-
{...vCurrent, isLast: true, routePriority: -1, versionPath: '/docs'},
|
|
514
|
-
]);
|
|
515
|
-
});
|
|
516
|
-
|
|
517
|
-
test('readVersionsMetadata versioned site with all versions disabled', async () => {
|
|
518
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
519
|
-
|
|
520
|
-
expect(() =>
|
|
521
|
-
readVersionsMetadata({
|
|
522
|
-
options: {
|
|
523
|
-
...defaultOptions,
|
|
524
|
-
includeCurrentVersion: false,
|
|
525
|
-
disableVersioning: true,
|
|
526
|
-
},
|
|
527
|
-
context: defaultContext,
|
|
528
|
-
}),
|
|
529
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
530
|
-
`"It is not possible to use docs without any version. Please check the configuration of these options: includeCurrentVersion=false disableVersioning=true"`,
|
|
531
|
-
);
|
|
532
|
-
});
|
|
533
|
-
|
|
534
|
-
test('readVersionsMetadata versioned site with empty onlyIncludeVersions', async () => {
|
|
535
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
536
|
-
|
|
537
|
-
expect(() =>
|
|
538
|
-
readVersionsMetadata({
|
|
539
|
-
options: {
|
|
540
|
-
...defaultOptions,
|
|
541
|
-
onlyIncludeVersions: [],
|
|
542
|
-
},
|
|
543
|
-
context: defaultContext,
|
|
544
|
-
}),
|
|
545
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
546
|
-
`"Bad docs options.onlyIncludeVersions: an empty array is not allowed, at least one version is needed"`,
|
|
547
|
-
);
|
|
548
|
-
});
|
|
549
|
-
|
|
550
|
-
test('readVersionsMetadata versioned site with unknown versions in onlyIncludeVersions', async () => {
|
|
551
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
552
|
-
|
|
553
|
-
expect(() =>
|
|
554
|
-
readVersionsMetadata({
|
|
555
|
-
options: {
|
|
556
|
-
...defaultOptions,
|
|
557
|
-
onlyIncludeVersions: ['unknownVersion1', 'unknownVersion2'],
|
|
558
|
-
},
|
|
559
|
-
context: defaultContext,
|
|
560
|
-
}),
|
|
561
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
562
|
-
`"Bad docs options.onlyIncludeVersions: unknown versions found: unknownVersion1,unknownVersion2. Available version names are: current, 1.0.1, 1.0.0, withSlugs"`,
|
|
563
|
-
);
|
|
564
|
-
});
|
|
565
|
-
|
|
566
|
-
test('readVersionsMetadata versioned site with lastVersion not in onlyIncludeVersions', async () => {
|
|
567
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
568
|
-
|
|
569
|
-
expect(() =>
|
|
570
|
-
readVersionsMetadata({
|
|
571
|
-
options: {
|
|
572
|
-
...defaultOptions,
|
|
573
|
-
lastVersion: '1.0.1',
|
|
574
|
-
onlyIncludeVersions: ['current', '1.0.0'],
|
|
575
|
-
},
|
|
576
|
-
context: defaultContext,
|
|
577
|
-
}),
|
|
578
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
579
|
-
`"Bad docs options.lastVersion: if you use both the onlyIncludeVersions and lastVersion options, then lastVersion must be present in the provided onlyIncludeVersions array"`,
|
|
580
|
-
);
|
|
581
|
-
});
|
|
582
|
-
|
|
583
|
-
test('readVersionsMetadata versioned site with invalid versions.json file', async () => {
|
|
584
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
585
|
-
|
|
586
|
-
const mock = jest.spyOn(JSON, 'parse').mockImplementationOnce(() => {
|
|
587
|
-
return {
|
|
588
|
-
invalid: 'json',
|
|
589
|
-
};
|
|
590
|
-
});
|
|
591
|
-
|
|
592
|
-
expect(() => {
|
|
593
|
-
readVersionsMetadata({
|
|
594
|
-
options: defaultOptions,
|
|
595
|
-
context: defaultContext,
|
|
596
|
-
});
|
|
597
|
-
}).toThrowErrorMatchingInlineSnapshot(
|
|
598
|
-
`"The versions file should contain an array of versions! Found content={\\"invalid\\":\\"json\\"}"`,
|
|
599
|
-
);
|
|
600
|
-
mock.mockRestore();
|
|
601
|
-
});
|
|
602
|
-
});
|
|
603
|
-
|
|
604
|
-
describe('versioned site, pluginId=community', () => {
|
|
605
|
-
async function loadSite() {
|
|
606
|
-
const versionedSiteDir = path.resolve(
|
|
607
|
-
path.join(__dirname, '__fixtures__', 'versioned-site'),
|
|
608
|
-
);
|
|
609
|
-
const defaultOptions: PluginOptions = {
|
|
610
|
-
...DEFAULT_OPTIONS,
|
|
611
|
-
id: 'community',
|
|
612
|
-
path: 'community',
|
|
613
|
-
routeBasePath: 'communityBasePath',
|
|
614
|
-
sidebarPath: 'sidebars.json',
|
|
615
|
-
};
|
|
616
|
-
const defaultContext = {
|
|
617
|
-
siteDir: versionedSiteDir,
|
|
618
|
-
baseUrl: '/',
|
|
619
|
-
i18n: DefaultI18N,
|
|
620
|
-
};
|
|
621
|
-
|
|
622
|
-
const vCurrent: VersionMetadata = {
|
|
623
|
-
contentPath: path.join(versionedSiteDir, 'community'),
|
|
624
|
-
contentPathLocalized: path.join(
|
|
625
|
-
versionedSiteDir,
|
|
626
|
-
'i18n/en/docusaurus-plugin-content-docs-community/current',
|
|
627
|
-
),
|
|
628
|
-
isLast: false,
|
|
629
|
-
routePriority: undefined,
|
|
630
|
-
sidebarFilePath: path.join(versionedSiteDir, 'sidebars.json'),
|
|
631
|
-
versionLabel: 'Next',
|
|
632
|
-
versionName: 'current',
|
|
633
|
-
versionPath: '/communityBasePath/next',
|
|
634
|
-
};
|
|
635
|
-
|
|
636
|
-
const v100: VersionMetadata = {
|
|
637
|
-
contentPath: path.join(
|
|
638
|
-
versionedSiteDir,
|
|
639
|
-
'community_versioned_docs/version-1.0.0',
|
|
640
|
-
),
|
|
641
|
-
contentPathLocalized: path.join(
|
|
642
|
-
versionedSiteDir,
|
|
643
|
-
'i18n/en/docusaurus-plugin-content-docs-community/version-1.0.0',
|
|
644
|
-
),
|
|
645
|
-
isLast: true,
|
|
646
|
-
routePriority: -1,
|
|
647
|
-
sidebarFilePath: path.join(
|
|
648
|
-
versionedSiteDir,
|
|
649
|
-
'community_versioned_sidebars/version-1.0.0-sidebars.json',
|
|
650
|
-
),
|
|
651
|
-
versionLabel: '1.0.0',
|
|
652
|
-
versionName: '1.0.0',
|
|
653
|
-
versionPath: '/communityBasePath',
|
|
654
|
-
};
|
|
655
|
-
|
|
656
|
-
return {versionedSiteDir, defaultOptions, defaultContext, vCurrent, v100};
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
test('readVersionsMetadata versioned site (community)', async () => {
|
|
660
|
-
const {defaultOptions, defaultContext, vCurrent, v100} = await loadSite();
|
|
661
|
-
|
|
662
|
-
const versionsMetadata = readVersionsMetadata({
|
|
663
|
-
options: defaultOptions,
|
|
664
|
-
context: defaultContext,
|
|
665
|
-
});
|
|
666
|
-
|
|
667
|
-
expect(versionsMetadata).toEqual([vCurrent, v100]);
|
|
668
|
-
});
|
|
669
|
-
|
|
670
|
-
test('readVersionsMetadata versioned site (community) with includeCurrentVersion=false', async () => {
|
|
671
|
-
const {defaultOptions, defaultContext, v100} = await loadSite();
|
|
672
|
-
|
|
673
|
-
const versionsMetadata = readVersionsMetadata({
|
|
674
|
-
options: {...defaultOptions, includeCurrentVersion: false},
|
|
675
|
-
context: defaultContext,
|
|
676
|
-
});
|
|
677
|
-
|
|
678
|
-
expect(versionsMetadata).toEqual([
|
|
679
|
-
// vCurrent removed
|
|
680
|
-
v100,
|
|
681
|
-
]);
|
|
682
|
-
});
|
|
683
|
-
|
|
684
|
-
test('readVersionsMetadata versioned site (community) with disableVersioning', async () => {
|
|
685
|
-
const {defaultOptions, defaultContext, vCurrent} = await loadSite();
|
|
686
|
-
|
|
687
|
-
const versionsMetadata = readVersionsMetadata({
|
|
688
|
-
options: {...defaultOptions, disableVersioning: true},
|
|
689
|
-
context: defaultContext,
|
|
690
|
-
});
|
|
691
|
-
|
|
692
|
-
expect(versionsMetadata).toEqual([
|
|
693
|
-
{
|
|
694
|
-
...vCurrent,
|
|
695
|
-
isLast: true,
|
|
696
|
-
routePriority: -1,
|
|
697
|
-
versionPath: '/communityBasePath',
|
|
698
|
-
},
|
|
699
|
-
]);
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
test('readVersionsMetadata versioned site (community) with all versions disabled', async () => {
|
|
703
|
-
const {defaultOptions, defaultContext} = await loadSite();
|
|
704
|
-
|
|
705
|
-
expect(() =>
|
|
706
|
-
readVersionsMetadata({
|
|
707
|
-
options: {
|
|
708
|
-
...defaultOptions,
|
|
709
|
-
includeCurrentVersion: false,
|
|
710
|
-
disableVersioning: true,
|
|
711
|
-
},
|
|
712
|
-
context: defaultContext,
|
|
713
|
-
}),
|
|
714
|
-
).toThrowErrorMatchingInlineSnapshot(
|
|
715
|
-
`"It is not possible to use docs without any version. Please check the configuration of these options: includeCurrentVersion=false disableVersioning=true"`,
|
|
716
|
-
);
|
|
717
|
-
});
|
|
718
|
-
});
|