From bb2b7d258d111615a63be1f49644377522d70c02 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 15 Jan 2023 13:30:24 +0400 Subject: [PATCH] Fix tests --- src/selector_manager/index.ts | 8 ++-- .../selector_manager/{index.js => index.ts} | 39 +++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) rename test/specs/selector_manager/{index.js => index.ts} (88%) diff --git a/src/selector_manager/index.ts b/src/selector_manager/index.ts index bf5d29593..626c94c2e 100644 --- a/src/selector_manager/index.ts +++ b/src/selector_manager/index.ts @@ -107,7 +107,7 @@ const events = { custom: evCustom, }; -type SelectorStringObject = string | { name?: string; label?: string }; +type SelectorStringObject = string | { name?: string; label?: string; type?: number }; export default class SelectorManager extends ItemManagerModule { Selector = Selector; @@ -298,15 +298,17 @@ export default class SelectorManager extends ItemManagerModule(name: T, type?: number): T extends string[] ? Selector[] : Selector { // Keep support for arrays but avoid it in docs if (isArray(name)) { const result: Selector[] = []; const selectors = name.map(item => this.getSelector(item)).filter(Boolean) as Selector[]; selectors.forEach(item => result.indexOf(item) < 0 && result.push(item)); + // @ts-ignore return result; } else { - return this.getSelector(name, type) || null; + // @ts-ignore + return this.getSelector(name, type)!; } } diff --git a/test/specs/selector_manager/index.js b/test/specs/selector_manager/index.ts similarity index 88% rename from test/specs/selector_manager/index.js rename to test/specs/selector_manager/index.ts index fca199aeb..8784e1f5c 100644 --- a/test/specs/selector_manager/index.js +++ b/test/specs/selector_manager/index.ts @@ -1,19 +1,18 @@ -import SelectorManager from 'selector_manager'; -import Selector from 'selector_manager/model/Selector'; -import Editor from 'editor/model/Editor'; +import SelectorManager from '../../../src/selector_manager'; +import Selector from '../../../src/selector_manager/model/Selector'; +import EditorModel from '../../../src/editor/model/Editor'; describe('SelectorManager', () => { describe('Main', () => { - var obj; - let em; + let obj: SelectorManager; + let em: EditorModel; beforeEach(() => { - em = new Editor({}); - obj = new SelectorManager().init({ em }); + em = new EditorModel({}); + obj = new SelectorManager(em); }); afterEach(() => { - obj = null; em.destroy(); }); @@ -26,10 +25,8 @@ describe('SelectorManager', () => { }); test('Able to add default selectors', () => { - var cm = new SelectorManager().init({ - em, - selectors: ['test1', 'test2', 'test3'], - }); + em = new EditorModel({ selectorManager: { selectors: ['test1', 'test2', 'test3'] } }); + const cm = new SelectorManager(em); expect(cm.getAll().length).toEqual(3); }); @@ -39,14 +36,14 @@ describe('SelectorManager', () => { }); test('Default new selector is a class type', () => { - const added = obj.add('test'); + const added = obj.add('test') as Selector; expect(obj.get('test').get('type')).toEqual(obj.Selector.TYPE_CLASS); expect(added.getFullName()).toBe('.test'); }); test('Add a selector as an id', () => { const name = 'test'; - var sel = obj.add(`#${name}`); + var sel = obj.add(`#${name}`) as Selector; expect(sel.get('name')).toEqual(name); expect(sel.get('label')).toEqual(name); expect(obj.get(`#${name}`).get('type')).toEqual(obj.Selector.TYPE_ID); @@ -55,14 +52,14 @@ describe('SelectorManager', () => { test('Check name property', () => { var name = 'test'; - var sel = obj.add(name); + var sel = obj.add(name) as Selector; expect(sel.get('name')).toEqual(name); expect(sel.get('label')).toEqual(name); }); test('Check name property by adding as class', () => { var name = 'test'; - var sel = obj.add(`.${name}`); + var sel = obj.add(`.${name}`) as Selector; expect(sel.get('name')).toEqual(name); expect(sel.get('label')).toEqual(name); }); @@ -82,7 +79,7 @@ describe('SelectorManager', () => { test('Add multiple selectors', () => { const cls = ['.test1', 'test1', '.test2', '.test2', '#test3', 'test3', 'test3', '#test3']; - const result = obj.add(cls); + const result = obj.add(cls as any) as Selector[]; expect(Array.isArray(result)).toEqual(true); const concat = obj .getAll() @@ -111,14 +108,14 @@ describe('SelectorManager', () => { }); test('Get empty class', () => { - expect(obj.get('test')).toEqual(null); + expect(obj.get('test')).toEqual(undefined); }); test('Get id selector', () => { const name = 'my-id'; const type = Selector.TYPE_ID; const added = obj.add({ name, type }); - expect(obj.get(name)).toEqual(null); + expect(obj.get(name)).toEqual(undefined); expect(obj.get(name, type)).toBe(added); }); @@ -152,7 +149,7 @@ describe('SelectorManager', () => { }); test('Remove selector as instance', () => { - const addedCls = obj.add('.my-class'); + const addedCls = obj.add('.my-class') as Selector; expect(obj.getAll().length).toBe(1); expect(obj.remove(addedCls)).toBe(addedCls); expect(obj.getAll().length).toBe(0); @@ -222,7 +219,7 @@ describe('SelectorManager', () => { const itemTest = 'sel'; const eventUp = jest.fn(); const eventAll = jest.fn(); - const added = obj.add(itemTest); + const added = obj.add(itemTest) as Selector; const newProps = { label: 'Heading 2' }; em.on(obj.events.update, eventUp); em.on(obj.events.all, eventAll);