import createOrder from '@lib/load/docs/order'; describe('createOrder', () => { test('should populate docs index from multiple sidebars', () => { const result = createOrder({ docs: { Category1: ['doc1', 'doc2'], Category2: ['doc3', 'doc4'] }, otherDocs: { Category1: ['doc5'] } }); expect(result).toEqual({ doc1: { category: 'Category1', next: 'doc2', previous: undefined, sidebar: 'docs' }, doc2: { category: 'Category1', next: 'doc3', previous: 'doc1', sidebar: 'docs' }, doc3: { category: 'Category2', next: 'doc4', previous: 'doc2', sidebar: 'docs' }, doc4: { category: 'Category2', next: undefined, previous: 'doc3', sidebar: 'docs' }, doc5: { category: 'Category1', next: undefined, previous: undefined, sidebar: 'otherDocs' } }); }); test('should resolve docs from older versions', () => { const result = createOrder({ docs: { Category1: ['doc1'] }, 'version-1.2.3-docs': { Category1: ['version-1.2.3-doc2'], Category2: ['version-1.2.3-doc1'] } }); expect(result).toEqual({ doc1: { category: 'Category1', next: undefined, previous: undefined, sidebar: 'docs' }, 'version-1.2.3-doc1': { category: 'Category2', next: undefined, previous: 'version-1.2.3-doc2', sidebar: 'version-1.2.3-docs' }, 'version-1.2.3-doc2': { category: 'Category1', next: 'version-1.2.3-doc1', previous: undefined, sidebar: 'version-1.2.3-docs' } }); }); test('edge cases', () => { expect(createOrder({})).toEqual({}); expect(createOrder(null)).toEqual({}); expect(createOrder(undefined)).toEqual({}); }); });