feat(v2): enable subcategories (#1021)

* feat(v2): enable subcategories

* nits

* eslint issue https://github.com/prettier/prettier/issues/3734
This commit is contained in:
Endilie Yacop Sucipto 2018-10-08 17:50:28 +08:00 committed by GitHub
parent 954456088c
commit f62029c30e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 150 additions and 43 deletions

View file

@ -1,7 +1,58 @@
import createOrder from '@lib/load/docs/order';
describe('createOrder', () => {
test('should populate docs index from multiple sidebars', () => {
test('multiple sidebars with subcategory', () => {
const result = createOrder({
docs: {
Category1: {
'Subcategory 1': ['doc1'],
'Subcategory 2': ['doc2'],
},
Category2: ['doc3', 'doc4'],
},
otherDocs: {
Category1: ['doc5'],
},
});
expect(result).toEqual({
doc1: {
category: 'Category1',
subCategory: 'Subcategory 1',
next: 'doc2',
previous: undefined,
sidebar: 'docs',
},
doc2: {
category: 'Category1',
subCategory: 'Subcategory 2',
next: 'doc3',
previous: 'doc1',
sidebar: 'docs',
},
doc3: {
category: 'Category2',
subCategory: undefined,
next: 'doc4',
previous: 'doc2',
sidebar: 'docs',
},
doc4: {
category: 'Category2',
subCategory: undefined,
next: undefined,
previous: 'doc3',
sidebar: 'docs',
},
doc5: {
category: 'Category1',
subCategory: undefined,
next: undefined,
previous: undefined,
sidebar: 'otherDocs',
},
});
});
test('multiple sidebars without subcategory', () => {
const result = createOrder({
docs: {
Category1: ['doc1', 'doc2'],
@ -14,30 +65,35 @@ describe('createOrder', () => {
expect(result).toEqual({
doc1: {
category: 'Category1',
subCategory: undefined,
next: 'doc2',
previous: undefined,
sidebar: 'docs',
},
doc2: {
category: 'Category1',
subCategory: undefined,
next: 'doc3',
previous: 'doc1',
sidebar: 'docs',
},
doc3: {
category: 'Category2',
subCategory: undefined,
next: 'doc4',
previous: 'doc2',
sidebar: 'docs',
},
doc4: {
category: 'Category2',
subCategory: undefined,
next: undefined,
previous: 'doc3',
sidebar: 'docs',
},
doc5: {
category: 'Category1',
subCategory: undefined,
next: undefined,
previous: undefined,
sidebar: 'otherDocs',
@ -45,7 +101,7 @@ describe('createOrder', () => {
});
});
test('should resolve docs from older versions', () => {
test('versioned sidebars', () => {
const result = createOrder({
docs: {
Category1: ['doc1'],
@ -58,18 +114,21 @@ describe('createOrder', () => {
expect(result).toEqual({
doc1: {
category: 'Category1',
subCategory: undefined,
next: undefined,
previous: undefined,
sidebar: 'docs',
},
'version-1.2.3-doc1': {
category: 'Category2',
subCategory: undefined,
next: undefined,
previous: 'version-1.2.3-doc2',
sidebar: 'version-1.2.3-docs',
},
'version-1.2.3-doc2': {
category: 'Category1',
subCategory: undefined,
next: 'version-1.2.3-doc1',
previous: undefined,
sidebar: 'version-1.2.3-docs',