@docusaurus/plugin-content-docs 0.0.0-4281 → 0.0.0-4282

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.
Files changed (133) hide show
  1. package/package.json +8 -8
  2. package/lib/.tsbuildinfo +0 -1
  3. package/src/__tests__/__fixtures__/bad-id-site/docs/invalid-id.md +0 -5
  4. package/src/__tests__/__fixtures__/bad-slug-on-doc-home-site/docs/docWithSlug.md +0 -5
  5. package/src/__tests__/__fixtures__/empty-site/docusaurus.config.js +0 -16
  6. package/src/__tests__/__fixtures__/empty-site/sidebars.json +0 -1
  7. package/src/__tests__/__fixtures__/simple-site/docs/_partials/somePartial.md +0 -3
  8. package/src/__tests__/__fixtures__/simple-site/docs/_partials/subfolder/somePartial.md +0 -3
  9. package/src/__tests__/__fixtures__/simple-site/docs/_somePartial.md +0 -3
  10. package/src/__tests__/__fixtures__/simple-site/docs/foo/bar.md +0 -69
  11. package/src/__tests__/__fixtures__/simple-site/docs/foo/baz.md +0 -75
  12. package/src/__tests__/__fixtures__/simple-site/docs/headingAsTitle.md +0 -1
  13. package/src/__tests__/__fixtures__/simple-site/docs/hello.md +0 -55
  14. package/src/__tests__/__fixtures__/simple-site/docs/ipsum.md +0 -5
  15. package/src/__tests__/__fixtures__/simple-site/docs/lorem.md +0 -6
  16. package/src/__tests__/__fixtures__/simple-site/docs/rootAbsoluteSlug.md +0 -7
  17. package/src/__tests__/__fixtures__/simple-site/docs/rootRelativeSlug.md +0 -7
  18. package/src/__tests__/__fixtures__/simple-site/docs/rootResolvedSlug.md +0 -7
  19. package/src/__tests__/__fixtures__/simple-site/docs/rootTryToEscapeSlug.md +0 -7
  20. package/src/__tests__/__fixtures__/simple-site/docs/slugs/absoluteSlug.md +0 -5
  21. package/src/__tests__/__fixtures__/simple-site/docs/slugs/relativeSlug.md +0 -5
  22. package/src/__tests__/__fixtures__/simple-site/docs/slugs/resolvedSlug.md +0 -5
  23. package/src/__tests__/__fixtures__/simple-site/docs/slugs/tryToEscapeSlug.md +0 -5
  24. package/src/__tests__/__fixtures__/simple-site/docusaurus.config.js +0 -14
  25. package/src/__tests__/__fixtures__/simple-site/sidebars.json +0 -37
  26. package/src/__tests__/__fixtures__/simple-site/wrong-sidebars.json +0 -7
  27. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/0-getting-started.md +0 -3
  28. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/1-installation.md +0 -3
  29. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/00_api-overview.md +0 -3
  30. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/0 --- Client API.md +0 -1
  31. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/1 --- Server API.md +0 -1
  32. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/0. Plugin API.md +0 -1
  33. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/1. Theme API.md +0 -1
  34. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/_category_.yml +0 -1
  35. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/03_api-end.md +0 -3
  36. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/_category_.json +0 -3
  37. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/0-guide2.5.md +0 -8
  38. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/02-guide2.md +0 -7
  39. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/_category_.json +0 -3
  40. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/a-guide4.md +0 -7
  41. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/b-guide5.md +0 -7
  42. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/guide3.md +0 -8
  43. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/z-guide1.md +0 -8
  44. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docusaurus.config.js +0 -14
  45. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars.js +0 -23
  46. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars2.js +0 -16
  47. package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-1.md +0 -8
  48. package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-2.md +0 -8
  49. package/src/__tests__/__fixtures__/site-with-doc-label/docusaurus.config.js +0 -14
  50. package/src/__tests__/__fixtures__/site-with-doc-label/sidebars.json +0 -14
  51. package/src/__tests__/__fixtures__/versioned-site/community/team.md +0 -1
  52. package/src/__tests__/__fixtures__/versioned-site/community_sidebars.json +0 -3
  53. package/src/__tests__/__fixtures__/versioned-site/community_versioned_docs/version-1.0.0/team.md +0 -1
  54. package/src/__tests__/__fixtures__/versioned-site/community_versioned_sidebars/version-1.0.0-sidebars.json +0 -3
  55. package/src/__tests__/__fixtures__/versioned-site/community_versions.json +0 -1
  56. package/src/__tests__/__fixtures__/versioned-site/docs/foo/bar.md +0 -10
  57. package/src/__tests__/__fixtures__/versioned-site/docs/hello.md +0 -4
  58. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/absoluteSlug.md +0 -5
  59. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/relativeSlug.md +0 -5
  60. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/resolvedSlug.md +0 -5
  61. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/tryToEscapeSlug.md +0 -5
  62. package/src/__tests__/__fixtures__/versioned-site/docusaurus.config.js +0 -18
  63. package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -4
  64. package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs-community/current/team.md +0 -5
  65. package/src/__tests__/__fixtures__/versioned-site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -4
  66. package/src/__tests__/__fixtures__/versioned-site/sidebars.json +0 -10
  67. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/bar.md +0 -4
  68. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/baz.md +0 -1
  69. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/hello.md +0 -4
  70. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_partials/somePartial.md +0 -3
  71. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_partials/subfolder/somePartial.md +0 -3
  72. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_somePartial.md +0 -3
  73. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/foo/bar.md +0 -1
  74. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/hello.md +0 -4
  75. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootAbsoluteSlug.md +0 -5
  76. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootRelativeSlug.md +0 -5
  77. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootResolvedSlug.md +0 -5
  78. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootTryToEscapeSlug.md +0 -5
  79. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/absoluteSlug.md +0 -5
  80. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/relativeSlug.md +0 -5
  81. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/resolvedSlug.md +0 -5
  82. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/tryToEscapeSlug.md +0 -5
  83. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.0-sidebars.json +0 -11
  84. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.1-sidebars.json +0 -10
  85. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-withSlugs-sidebars.json +0 -5
  86. package/src/__tests__/__fixtures__/versioned-site/versions.json +0 -5
  87. package/src/__tests__/__snapshots__/cli.test.ts.snap +0 -65
  88. package/src/__tests__/__snapshots__/docs.test.ts.snap +0 -140
  89. package/src/__tests__/__snapshots__/index.test.ts.snap +0 -2550
  90. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -514
  91. package/src/__tests__/cli.test.ts +0 -337
  92. package/src/__tests__/docFrontMatter.test.ts +0 -359
  93. package/src/__tests__/docs.test.ts +0 -1039
  94. package/src/__tests__/index.test.ts +0 -1910
  95. package/src/__tests__/lastUpdate.test.ts +0 -69
  96. package/src/__tests__/numberPrefix.test.ts +0 -199
  97. package/src/__tests__/options.test.ts +0 -276
  98. package/src/__tests__/props.test.ts +0 -62
  99. package/src/__tests__/slug.test.ts +0 -216
  100. package/src/__tests__/translations.test.ts +0 -164
  101. package/src/__tests__/versions.test.ts +0 -744
  102. package/src/client/__tests__/docsClientUtils.test.ts +0 -371
  103. package/src/markdown/__tests__/__fixtures__/docs/doc-localized.md +0 -1
  104. package/src/markdown/__tests__/__fixtures__/docs/doc1.md +0 -13
  105. package/src/markdown/__tests__/__fixtures__/docs/doc2.md +0 -12
  106. package/src/markdown/__tests__/__fixtures__/docs/doc4.md +0 -19
  107. package/src/markdown/__tests__/__fixtures__/docs/doc5.md +0 -6
  108. package/src/markdown/__tests__/__fixtures__/docs/subdir/doc3.md +0 -3
  109. package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/doc2.md +0 -7
  110. package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/subdir/doc1.md +0 -3
  111. package/src/markdown/__tests__/__snapshots__/linkify.test.ts.snap +0 -82
  112. package/src/markdown/__tests__/linkify.test.ts +0 -190
  113. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-shorthand.js +0 -34
  114. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-wrong-items.json +0 -11
  115. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-wrong-label.json +0 -11
  116. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category.js +0 -44
  117. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-collapsed-first-level.json +0 -20
  118. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-collapsed.json +0 -21
  119. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-doc-id-not-string.json +0 -10
  120. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-first-level-not-category.js +0 -20
  121. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link-wrong-href.json +0 -11
  122. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link-wrong-label.json +0 -11
  123. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link.json +0 -11
  124. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-unknown-type.json +0 -14
  125. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-wrong-field.json +0 -20
  126. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars.json +0 -20
  127. package/src/sidebars/__tests__/__snapshots__/index.test.ts.snap +0 -248
  128. package/src/sidebars/__tests__/generator.test.ts +0 -461
  129. package/src/sidebars/__tests__/index.test.ts +0 -204
  130. package/src/sidebars/__tests__/processor.test.ts +0 -237
  131. package/src/sidebars/__tests__/utils.test.ts +0 -695
  132. package/src/sidebars/__tests__/validation.test.ts +0 -105
  133. package/tsconfig.json +0 -9
@@ -1,204 +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
- loadNormalizedSidebars,
11
- DefaultSidebars,
12
- DisabledSidebars,
13
- } from '../index';
14
- import type {NormalizeSidebarsParams, VersionMetadata} from '../../types';
15
-
16
- describe('loadNormalizedSidebars', () => {
17
- const fixtureDir = path.join(__dirname, '__fixtures__', 'sidebars');
18
- const options: NormalizeSidebarsParams = {
19
- sidebarCollapsed: true,
20
- sidebarCollapsible: true,
21
- version: {
22
- versionName: 'version',
23
- versionPath: 'versionPath',
24
- } as VersionMetadata,
25
- };
26
- test('sidebars with known sidebar item type', async () => {
27
- const sidebarPath = path.join(fixtureDir, 'sidebars.json');
28
- const result = loadNormalizedSidebars(sidebarPath, options);
29
- expect(result).toMatchSnapshot();
30
- });
31
-
32
- test('sidebars with deep level of category', async () => {
33
- const sidebarPath = path.join(fixtureDir, 'sidebars-category.js');
34
- const result = loadNormalizedSidebars(sidebarPath, options);
35
- expect(result).toMatchSnapshot();
36
- });
37
-
38
- test('sidebars shorthand and longform lead to exact same sidebar', async () => {
39
- const sidebarPath1 = path.join(fixtureDir, 'sidebars-category.js');
40
- const sidebarPath2 = path.join(
41
- fixtureDir,
42
- 'sidebars-category-shorthand.js',
43
- );
44
- const sidebar1 = loadNormalizedSidebars(sidebarPath1, options);
45
- const sidebar2 = loadNormalizedSidebars(sidebarPath2, options);
46
- expect(sidebar1).toEqual(sidebar2);
47
- });
48
-
49
- test('sidebars with category but category.items is not an array', async () => {
50
- const sidebarPath = path.join(
51
- fixtureDir,
52
- 'sidebars-category-wrong-items.json',
53
- );
54
- expect(() => loadNormalizedSidebars(sidebarPath, options))
55
- .toThrowErrorMatchingInlineSnapshot(`
56
- "{
57
- \\"type\\": \\"category\\",
58
- \\"label\\": \\"Category Label\\",
59
- \\"items\\" [1]: \\"doc1\\"
60
- }
61
- 
62
- [1] \\"items\\" must be an array"
63
- `);
64
- });
65
-
66
- test('sidebars with category but category label is not a string', async () => {
67
- const sidebarPath = path.join(
68
- fixtureDir,
69
- 'sidebars-category-wrong-label.json',
70
- );
71
- expect(() => loadNormalizedSidebars(sidebarPath, options))
72
- .toThrowErrorMatchingInlineSnapshot(`
73
- "{
74
- \\"type\\": \\"category\\",
75
- \\"items\\": [
76
- \\"doc1\\"
77
- ],
78
- \\"label\\" [1]: true
79
- }
80
- 
81
- [1] \\"label\\" must be a string"
82
- `);
83
- });
84
-
85
- test('sidebars item doc but id is not a string', async () => {
86
- const sidebarPath = path.join(
87
- fixtureDir,
88
- 'sidebars-doc-id-not-string.json',
89
- );
90
- expect(() => loadNormalizedSidebars(sidebarPath, options))
91
- .toThrowErrorMatchingInlineSnapshot(`
92
- "{
93
- \\"type\\": \\"doc\\",
94
- \\"id\\" [1]: [
95
- \\"doc1\\"
96
- ]
97
- }
98
- 
99
- [1] \\"id\\" must be a string"
100
- `);
101
- });
102
-
103
- test('sidebars with first level not a category', async () => {
104
- const sidebarPath = path.join(
105
- fixtureDir,
106
- 'sidebars-first-level-not-category.js',
107
- );
108
- const result = loadNormalizedSidebars(sidebarPath, options);
109
- expect(result).toMatchSnapshot();
110
- });
111
-
112
- test('sidebars link', async () => {
113
- const sidebarPath = path.join(fixtureDir, 'sidebars-link.json');
114
- const result = loadNormalizedSidebars(sidebarPath, options);
115
- expect(result).toMatchSnapshot();
116
- });
117
-
118
- test('sidebars link wrong label', async () => {
119
- const sidebarPath = path.join(fixtureDir, 'sidebars-link-wrong-label.json');
120
- expect(() => loadNormalizedSidebars(sidebarPath, options))
121
- .toThrowErrorMatchingInlineSnapshot(`
122
- "{
123
- \\"type\\": \\"link\\",
124
- \\"href\\": \\"https://github.com\\",
125
- \\"label\\" [1]: false
126
- }
127
- 
128
- [1] \\"label\\" must be a string"
129
- `);
130
- });
131
-
132
- test('sidebars link wrong href', async () => {
133
- const sidebarPath = path.join(fixtureDir, 'sidebars-link-wrong-href.json');
134
- expect(() => loadNormalizedSidebars(sidebarPath, options))
135
- .toThrowErrorMatchingInlineSnapshot(`
136
- "{
137
- \\"type\\": \\"link\\",
138
- \\"label\\": \\"GitHub\\",
139
- \\"href\\" [1]: [
140
- \\"example.com\\"
141
- ]
142
- }
143
- 
144
- [1] \\"href\\" contains an invalid value"
145
- `);
146
- });
147
-
148
- test('sidebars with unknown sidebar item type', async () => {
149
- const sidebarPath = path.join(fixtureDir, 'sidebars-unknown-type.json');
150
- expect(() => loadNormalizedSidebars(sidebarPath, options))
151
- .toThrowErrorMatchingInlineSnapshot(`
152
- "{
153
- \\"type\\": \\"superman\\",
154
- \\"undefined\\" [1]: -- missing --
155
- }
156
- 
157
- [1] Unknown sidebar item type \\"superman\\"."
158
- `);
159
- });
160
-
161
- test('sidebars with known sidebar item type but wrong field', async () => {
162
- const sidebarPath = path.join(fixtureDir, 'sidebars-wrong-field.json');
163
- expect(() => loadNormalizedSidebars(sidebarPath, options))
164
- .toThrowErrorMatchingInlineSnapshot(`
165
- "{
166
- \\"type\\": \\"category\\",
167
- \\"label\\": \\"category\\",
168
- \\"href\\": \\"https://github.com\\",
169
- \\"items\\" [1]: -- missing --
170
- }
171
- 
172
- [1] \\"items\\" is required"
173
- `);
174
- });
175
-
176
- test('unexisting path', () => {
177
- expect(loadNormalizedSidebars('badpath', options)).toEqual(
178
- DisabledSidebars,
179
- );
180
- });
181
-
182
- test('undefined path', () => {
183
- expect(loadNormalizedSidebars(undefined, options)).toEqual(DefaultSidebars);
184
- });
185
-
186
- test('literal false path', () => {
187
- expect(loadNormalizedSidebars(false, options)).toEqual(DisabledSidebars);
188
- });
189
-
190
- test('sidebars with category.collapsed property', async () => {
191
- const sidebarPath = path.join(fixtureDir, 'sidebars-collapsed.json');
192
- const result = loadNormalizedSidebars(sidebarPath, options);
193
- expect(result).toMatchSnapshot();
194
- });
195
-
196
- test('sidebars with category.collapsed property at first level', async () => {
197
- const sidebarPath = path.join(
198
- fixtureDir,
199
- 'sidebars-collapsed-first-level.json',
200
- );
201
- const result = loadNormalizedSidebars(sidebarPath, options);
202
- expect(result).toMatchSnapshot();
203
- });
204
- });
@@ -1,237 +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 {processSidebars, SidebarProcessorParams} from '../processor';
9
- import type {
10
- SidebarItem,
11
- SidebarItemsGenerator,
12
- Sidebars,
13
- NormalizedSidebars,
14
- } from '../types';
15
- import {DefaultSidebarItemsGenerator} from '../generator';
16
- import {createSlugger} from '@docusaurus/utils';
17
- import {VersionMetadata} from '../../types';
18
- import {DefaultNumberPrefixParser} from '../../numberPrefix';
19
-
20
- describe('processSidebars', () => {
21
- function createStaticSidebarItemGenerator(
22
- sidebarSlice: SidebarItem[],
23
- ): SidebarItemsGenerator {
24
- return jest.fn(async () => sidebarSlice);
25
- }
26
-
27
- const StaticGeneratedSidebarSlice: SidebarItem[] = [
28
- {type: 'doc', id: 'doc-generated-id-1'},
29
- {type: 'doc', id: 'doc-generated-id-2'},
30
- ];
31
-
32
- const StaticSidebarItemsGenerator: SidebarItemsGenerator =
33
- createStaticSidebarItemGenerator(StaticGeneratedSidebarSlice);
34
-
35
- // @ts-expect-error: good enough for this test
36
- const version: VersionMetadata = {
37
- versionName: '1.0.0',
38
- versionPath: '/docs/1.0.0',
39
- };
40
-
41
- const params: SidebarProcessorParams = {
42
- sidebarItemsGenerator: StaticSidebarItemsGenerator,
43
- docs: [],
44
- version,
45
- numberPrefixParser: DefaultNumberPrefixParser,
46
- categoryLabelSlugger: createSlugger(),
47
- sidebarOptions: {
48
- sidebarCollapsed: true,
49
- sidebarCollapsible: true,
50
- },
51
- };
52
-
53
- async function testProcessSidebars(
54
- unprocessedSidebars: NormalizedSidebars,
55
- paramsOverrides: Partial<SidebarProcessorParams> = {},
56
- ) {
57
- return processSidebars(unprocessedSidebars, {
58
- ...params,
59
- ...paramsOverrides,
60
- });
61
- }
62
-
63
- test('let sidebars without autogenerated items untouched', async () => {
64
- const unprocessedSidebars: NormalizedSidebars = {
65
- someSidebar: [
66
- {type: 'doc', id: 'doc1'},
67
- {
68
- type: 'category',
69
- collapsed: false,
70
- collapsible: true,
71
- items: [{type: 'doc', id: 'doc2'}],
72
- label: 'Category',
73
- },
74
- {type: 'link', href: 'https://facebook.com', label: 'FB'},
75
- ],
76
- secondSidebar: [
77
- {type: 'doc', id: 'doc3'},
78
- {type: 'link', href: 'https://instagram.com', label: 'IG'},
79
- {
80
- type: 'category',
81
- collapsed: false,
82
- collapsible: true,
83
- items: [{type: 'doc', id: 'doc4'}],
84
- label: 'Category',
85
- },
86
- ],
87
- };
88
-
89
- const processedSidebar = await testProcessSidebars(unprocessedSidebars);
90
- expect(processedSidebar).toEqual(unprocessedSidebars);
91
- });
92
-
93
- test('replace autogenerated items by generated sidebars slices', async () => {
94
- const unprocessedSidebars: NormalizedSidebars = {
95
- someSidebar: [
96
- {type: 'doc', id: 'doc1'},
97
- {
98
- type: 'category',
99
- label: 'Category',
100
- link: {
101
- type: 'generated-index',
102
- slug: 'category-generated-index-slug',
103
- permalink: 'category-generated-index-permalink',
104
- },
105
- collapsed: false,
106
- collapsible: true,
107
- items: [
108
- {type: 'doc', id: 'doc2'},
109
- {type: 'autogenerated', dirName: 'dir1'},
110
- ],
111
- },
112
- {type: 'link', href: 'https://facebook.com', label: 'FB'},
113
- ],
114
- secondSidebar: [
115
- {type: 'doc', id: 'doc3'},
116
- {type: 'autogenerated', dirName: 'dir2'},
117
- {type: 'link', href: 'https://instagram.com', label: 'IG'},
118
- {type: 'autogenerated', dirName: 'dir3'},
119
- {
120
- type: 'category',
121
- label: 'Category',
122
- collapsed: false,
123
- collapsible: true,
124
- items: [{type: 'doc', id: 'doc4'}],
125
- },
126
- ],
127
- };
128
-
129
- const processedSidebar = await testProcessSidebars(unprocessedSidebars);
130
-
131
- expect(StaticSidebarItemsGenerator).toHaveBeenCalledTimes(3);
132
- expect(StaticSidebarItemsGenerator).toHaveBeenCalledWith({
133
- defaultSidebarItemsGenerator: DefaultSidebarItemsGenerator,
134
- item: {type: 'autogenerated', dirName: 'dir1'},
135
- docs: params.docs,
136
- version: {
137
- versionName: version.versionName,
138
- },
139
- numberPrefixParser: DefaultNumberPrefixParser,
140
- options: params.sidebarOptions,
141
- });
142
- expect(StaticSidebarItemsGenerator).toHaveBeenCalledWith({
143
- defaultSidebarItemsGenerator: DefaultSidebarItemsGenerator,
144
- item: {type: 'autogenerated', dirName: 'dir2'},
145
- docs: params.docs,
146
- version: {
147
- versionName: version.versionName,
148
- },
149
- numberPrefixParser: DefaultNumberPrefixParser,
150
- options: params.sidebarOptions,
151
- });
152
- expect(StaticSidebarItemsGenerator).toHaveBeenCalledWith({
153
- defaultSidebarItemsGenerator: DefaultSidebarItemsGenerator,
154
- item: {type: 'autogenerated', dirName: 'dir3'},
155
- docs: params.docs,
156
- version: {
157
- versionName: version.versionName,
158
- },
159
- numberPrefixParser: DefaultNumberPrefixParser,
160
- options: params.sidebarOptions,
161
- });
162
-
163
- expect(processedSidebar).toEqual({
164
- someSidebar: [
165
- {type: 'doc', id: 'doc1'},
166
- {
167
- type: 'category',
168
- label: 'Category',
169
- link: {
170
- type: 'generated-index',
171
- slug: 'category-generated-index-slug',
172
- permalink: 'category-generated-index-permalink',
173
- },
174
- collapsed: false,
175
- collapsible: true,
176
- items: [{type: 'doc', id: 'doc2'}, ...StaticGeneratedSidebarSlice],
177
- },
178
- {type: 'link', href: 'https://facebook.com', label: 'FB'},
179
- ],
180
- secondSidebar: [
181
- {type: 'doc', id: 'doc3'},
182
- ...StaticGeneratedSidebarSlice,
183
- {type: 'link', href: 'https://instagram.com', label: 'IG'},
184
- ...StaticGeneratedSidebarSlice,
185
- {
186
- type: 'category',
187
- label: 'Category',
188
- collapsed: false,
189
- collapsible: true,
190
- items: [{type: 'doc', id: 'doc4'}],
191
- },
192
- ],
193
- } as Sidebars);
194
- });
195
-
196
- test('ensure generated items are normalized', async () => {
197
- const sidebarSliceContainingCategoryGeneratedIndex: SidebarItem[] = [
198
- {
199
- type: 'category',
200
- label: 'Generated category',
201
- link: {
202
- type: 'generated-index',
203
- slug: 'generated-cat-index-slug',
204
- // @ts-expect-error: TODO undefined should be allowed here, typing error needing refactor
205
- permalink: undefined,
206
- },
207
- },
208
- ];
209
-
210
- const unprocessedSidebars: NormalizedSidebars = {
211
- someSidebar: [{type: 'autogenerated', dirName: 'dir2'}],
212
- };
213
-
214
- const processedSidebar = await testProcessSidebars(unprocessedSidebars, {
215
- sidebarItemsGenerator: createStaticSidebarItemGenerator(
216
- sidebarSliceContainingCategoryGeneratedIndex,
217
- ),
218
- });
219
-
220
- expect(processedSidebar).toEqual({
221
- someSidebar: [
222
- {
223
- type: 'category',
224
- label: 'Generated category',
225
- link: {
226
- type: 'generated-index',
227
- slug: 'generated-cat-index-slug',
228
- permalink: '/docs/1.0.0/generated-cat-index-slug',
229
- },
230
- items: [],
231
- collapsible: true,
232
- collapsed: true,
233
- },
234
- ],
235
- } as Sidebars);
236
- });
237
- });