| import { Plugin, Preset } from '@superset-ui/core/src'; |
| |
| describe('Preset', () => { |
| it('exists', () => { |
| expect(Preset).toBeDefined(); |
| }); |
| |
| describe('new Preset()', () => { |
| it('creates new preset', () => { |
| const preset = new Preset(); |
| expect(preset).toBeInstanceOf(Preset); |
| }); |
| }); |
| |
| describe('.register()', () => { |
| it('register all listed presets then plugins', () => { |
| const values: number[] = []; |
| class Plugin1 extends Plugin { |
| register() { |
| values.push(1); |
| |
| return this; |
| } |
| } |
| class Plugin2 extends Plugin { |
| register() { |
| values.push(2); |
| |
| return this; |
| } |
| } |
| class Plugin3 extends Plugin { |
| register() { |
| values.push(3); |
| |
| return this; |
| } |
| } |
| class Plugin4 extends Plugin { |
| register() { |
| const { key } = this.config; |
| values.push(key as number); |
| |
| return this; |
| } |
| } |
| |
| const preset1 = new Preset({ |
| plugins: [new Plugin1()], |
| }); |
| const preset2 = new Preset({ |
| plugins: [new Plugin2()], |
| }); |
| const preset3 = new Preset({ |
| presets: [preset1, preset2], |
| plugins: [new Plugin3(), new Plugin4().configure({ key: 9 })], |
| }); |
| preset3.register(); |
| expect(values).toEqual([1, 2, 3, 9]); |
| }); |
| |
| it('returns itself', () => { |
| const preset = new Preset(); |
| expect(preset.register()).toBe(preset); |
| }); |
| }); |
| }); |