-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathconfig.test.ts
51 lines (42 loc) · 1.43 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
42
43
44
45
46
47
48
49
50
51
import { extendPluginConfig } from './index';
import { PluginConfig } from './index';
describe('extendPluginConfig', () => {
it('should merge multiple configurations', () => {
const config1: Partial<PluginConfig> = {
collectionPlugins: [{ name: 'plugin1' } as any],
itemPlugins: [{ name: 'itemPlugin1' } as any],
'ui:widget': { widget1: () => null }
};
const config2: Partial<PluginConfig> = {
collectionPlugins: [{ name: 'plugin2' } as any],
'ui:widget': { widget2: () => null }
};
const result = extendPluginConfig(config1, config2);
expect(result).toEqual({
collectionPlugins: [{ name: 'plugin1' }, { name: 'plugin2' }],
itemPlugins: [{ name: 'itemPlugin1' }],
'ui:widget': {
widget1: expect.any(Function),
widget2: expect.any(Function)
}
});
});
it('should handle empty configurations', () => {
const result = extendPluginConfig();
expect(result).toEqual({
collectionPlugins: [],
itemPlugins: [],
'ui:widget': {}
});
});
it('should override properties with later configurations', () => {
const config1: Partial<PluginConfig> = {
'ui:widget': { widget1: () => 'old' }
};
const config2: Partial<PluginConfig> = {
'ui:widget': { widget1: () => 'new' }
};
const result = extendPluginConfig(config1, config2);
expect(result['ui:widget'].widget1({} as any)).toBe('new');
});
});