forked from invertase/docs.page
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.test.ts
41 lines (36 loc) · 1.2 KB
/
config.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { mergeConfig, ProjectConfig } from '../src/utils/projectConfig';
function isValidConfigTypes(config: ProjectConfig) {
expect(typeof config.name).toBe('string');
expect(typeof config.logo).toBe('string');
expect(typeof config.theme).toBe('string');
expect(Array.isArray(config.navigation)).toBe(true);
expect(Array.isArray(config.sidebar)).toBe(true);
expect(typeof config.headerDepth).toBe('number');
}
describe('conifg', () => {
it('should mergeConfig data with any invalid value', () => {
isValidConfigTypes(mergeConfig(null));
});
it('should mergeConfig data with any valid value', () => {
const merged = mergeConfig({
name: 'foo',
logo: 'bar',
theme: 'baz',
docsearch: {
apiKey: 'foo',
indexName: 'bar',
},
headerDepth: 1234,
});
isValidConfigTypes(merged);
expect(merged.name).toBe('foo');
expect(merged.logo).toBe('bar');
expect(merged.theme).toBe('baz');
expect(merged.theme).toBe('baz');
expect(merged.docsearch?.apiKey).toBe('foo');
expect(merged.docsearch?.indexName).toBe('bar');
expect(merged.headerDepth).toBe(1234);
});
// TODO test merge navigation
// TODO test merge sidebars
});