From e114380894e6c4b8cd8dc4e0865da1cae0658a00 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 18 Jul 2023 14:32:20 +0400 Subject: [PATCH] Up test TS --- src/dom_components/index.ts | 4 +- test/specs/commands/index.ts | 7 +- test/specs/css_composer/index.ts | 4 +- test/specs/dom_components/index.ts | 17 +-- test/specs/dom_components/model/Component.ts | 104 ++++++++---------- .../dom_components/view/ComponentTextView.ts | 23 ++-- test/specs/editor/{index.js => index.ts} | 14 +-- test/specs/grapesjs/index.ts | 59 +++++----- test/specs/selector_manager/index.ts | 4 +- .../selector_manager/model/SelectorModels.ts | 2 +- test/specs/style_manager/index.ts | 4 +- test/specs/style_manager/model/Models.ts | 30 ++--- test/specs/utils/Mixins.ts | 13 ++- tsconfig.json | 3 +- 14 files changed, 144 insertions(+), 144 deletions(-) rename test/specs/editor/{index.js => index.ts} (91%) diff --git a/src/dom_components/index.ts b/src/dom_components/index.ts index 50b07bd87..295dec987 100644 --- a/src/dom_components/index.ts +++ b/src/dom_components/index.ts @@ -121,7 +121,7 @@ export type ComponentEvent = | 'component:resize'; export interface ComponentModelDefinition extends IComponent { - defaults?: ComponentDefinition; + defaults?: ComponentDefinition | (() => ComponentDefinition); [key: string]: any; } @@ -410,7 +410,7 @@ export default class ComponentManager extends ItemManagerModule { describe('Main', () => { let em: EditorModel; let obj: Commands; - let commSimple; - let commRunOnly; - let commFunc; + let commSimple: Command; + let commRunOnly: Command; + let commFunc: CommandFunction; let commName = 'commandTest'; let commResultRun = 'Run executed'; let commResultStop = 'Stop executed'; diff --git a/test/specs/css_composer/index.ts b/test/specs/css_composer/index.ts index 9a67602e1..0062befd4 100644 --- a/test/specs/css_composer/index.ts +++ b/test/specs/css_composer/index.ts @@ -6,7 +6,7 @@ describe('Css Composer', () => { describe('Main', () => { let obj: CssComposer; let em: Editor; - let config; + let config: any; let storagMock = utils.storageMock(); let editorModel = { getCss() { @@ -28,7 +28,7 @@ describe('Css Composer', () => { config.em = editorModel; }; - const getCSS = obj => + const getCSS = (obj: CssComposer) => obj .getAll() .map(r => r.toCSS()) diff --git a/test/specs/dom_components/index.ts b/test/specs/dom_components/index.ts index e1d2a8c2f..f11c82995 100644 --- a/test/specs/dom_components/index.ts +++ b/test/specs/dom_components/index.ts @@ -3,12 +3,13 @@ import Components from '../../../src/dom_components/model/Components'; import EditorModel from '../../../src/editor/model/Editor'; import Editor from '../../../src/editor'; import utils from './../../test_utils.js'; +import { Component } from '../../../src'; describe('DOM Components', () => { describe('Main', () => { var em: EditorModel; var obj: DomComponents; - var config; + var config: any; var storagMock = utils.storageMock(); var editorModel = { config: { @@ -122,21 +123,21 @@ describe('DOM Components', () => { }); test('Import propertly components and styles with the same ids', () => { - obj = em.get('DomComponents'); - const cc = em.get('CssComposer'); + obj = em.Components; + const cc = em.Css; const id = 'idtest'; const component = obj.addComponent(`
Text
`); + `) as Component; expect(em.getHtml({ component })).toEqual(`
Text
`); expect(obj.getComponents().length).toEqual(1); const firstComp = obj.getComponents().first(); firstComp.addStyle({ margin: '10px' }); firstComp.addStyle('width', '100px'); expect(cc.getAll().length).toEqual(1); - expect(cc.getIdRule(id).getStyle()).toEqual({ + expect(cc.getIdRule(id)!.getStyle()).toEqual({ color: 'red', 'background-color': 'red', padding: '50px 100px', @@ -249,7 +250,7 @@ describe('DOM Components', () => {
Text
`); + `) as Component; obj.getComponents().first().addStyle({ margin: '10px' }); const rule = cc.getAll().at(0); const css = `#${id}{background-color:red;margin:10px;color:red;padding:50px 100px;}`; @@ -293,14 +294,14 @@ describe('DOM Components', () => { }); test('Custom style properly added', () => { - const cmp = obj.addComponent({ type: cmpId }); + const cmp = obj.addComponent({ type: cmpId }) as Component; expect(cmp.is(cmpId)).toBe(true); const rule = em.Css.getRule(`.${cmpId}`); expect(rule?.getStyle()).toEqual({ color: 'red' }); }); test('Clean custom style when the related component is removed', () => { - const cmp = obj.addComponent({ type: cmpId }); + const cmp = obj.addComponent({ type: cmpId }) as Component; expect(obj.getComponents().length).toBe(1); expect(em.Css.getAll().length).toBe(1); cmp.remove(); diff --git a/test/specs/dom_components/model/Component.ts b/test/specs/dom_components/model/Component.ts index 46f9be56a..de9cbf0d9 100644 --- a/test/specs/dom_components/model/Component.ts +++ b/test/specs/dom_components/model/Component.ts @@ -11,15 +11,15 @@ import Selector from '../../../../src/selector_manager/model/Selector'; import Editor from '../../../../src/editor/model/Editor'; const $ = Backbone.$; -let obj; -let dcomp; -let compOpts; -let em; +let obj: Component; +let dcomp: Editor['Components']; +let compOpts: any; +let em: Editor; describe('Component', () => { beforeEach(() => { em = new Editor({ avoidDefaults: true }); - dcomp = em.get('DomComponents'); + dcomp = em.Components; em.get('PageManager').onLoad(); compOpts = { em, @@ -29,12 +29,8 @@ describe('Component', () => { obj = new Component({}, compOpts); }); - afterEach(() => { - obj = null; - }); - test('Has no children', () => { - expect(obj.get('components').length).toEqual(0); + expect(obj.components().length).toEqual(0); }); test('Clones correctly', () => { @@ -42,18 +38,18 @@ describe('Component', () => { var cloned = obj.clone(); var eAttr = cloned.attributes; eAttr.components = {}; - sAttr.components = {}; + sAttr.components = {} as any; eAttr.traits = {}; - sAttr.traits = {}; + sAttr.traits = {} as any; expect(sAttr.length).toEqual(eAttr.length); }); test('Clones correctly with traits', () => { - obj.get('traits').at(0).set('value', 'testTitle'); + obj.traits.at(0).set('value', 'testTitle'); var cloned = obj.clone(); cloned.set('stylable', 0); - cloned.get('traits').at(0).set('value', 'testTitle2'); - expect(obj.get('traits').at(0).get('value')).toEqual('testTitle'); + cloned.traits.at(0).set('value', 'testTitle2'); + expect(obj.traits.at(0).get('value')).toEqual('testTitle'); expect(obj.get('stylable')).toEqual(true); }); @@ -68,7 +64,7 @@ describe('Component', () => { label: 'Context', value: 'primary', }, - ]); + ] as any); expect(obj.get('attributes')).toEqual({ title: 'The title' }); }); @@ -121,20 +117,20 @@ describe('Component', () => { compOpts ); ['class1', 'class2'].forEach(item => { - obj.get('classes').add({ name: item }); + obj.classes.add({ name: item }); }); expect(obj.toHTML()).toEqual('
'); }); test('Component toHTML with children', () => { obj = new Component({ tagName: 'article' }, compOpts); - obj.get('components').add({ tagName: 'span' }); + obj.components().add({ tagName: 'span' }); expect(obj.toHTML()).toEqual('
'); }); test('Component toHTML with more children', () => { obj = new Component({ tagName: 'article' }, compOpts); - obj.get('components').add([{ tagName: 'span' }, { tagName: 'div' }]); + obj.components().add([{ tagName: 'span' }, { tagName: 'div' }]); expect(obj.toHTML()).toEqual('
'); }); @@ -145,7 +141,7 @@ describe('Component', () => { test('Component toHTML with quotes in attribute', () => { obj = new Component({}, compOpts); - let attrs = obj.get('attributes'); + let attrs = obj.get('attributes')!; attrs['data-test'] = '"value"'; obj.set('attributes', attrs); expect(obj.toHTML()).toEqual('
'); @@ -189,20 +185,20 @@ describe('Component', () => { }); test('Component parse empty div', () => { - var el = document.createElement('div'); - obj = Component.isComponent(el); - expect(obj).toEqual({ tagName: 'div' }); + const el = document.createElement('div'); + const res = Component.isComponent(el); + expect(res).toEqual({ tagName: 'div' }); }); test('Component parse span', () => { - var el = document.createElement('span'); - obj = Component.isComponent(el); - expect(obj).toEqual({ tagName: 'span' }); + const el = document.createElement('span'); + const res = Component.isComponent(el); + expect(res).toEqual({ tagName: 'span' }); }); test('setClass single class string', () => { obj.setClass('class1'); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(1); expect(result[0] instanceof Selector).toEqual(true); expect(result[0].get('name')).toEqual('class1'); @@ -210,60 +206,60 @@ describe('Component', () => { test('setClass multiple class string', () => { obj.setClass('class1 class2'); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(2); }); test('setClass single class array', () => { obj.setClass(['class1']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(1); }); test('setClass multiple class array', () => { obj.setClass(['class1', 'class2']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(2); }); test('addClass multiple array', () => { obj.addClass(['class1', 'class2']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(2); }); test('addClass avoid same name classes', () => { obj.addClass(['class1', 'class2']); obj.addClass(['class1', 'class3']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(3); }); test('removeClass by string', () => { obj.addClass(['class1', 'class2']); obj.removeClass('class2'); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(1); }); test('removeClass by string with multiple classes', () => { obj.addClass(['class1', 'class2']); obj.removeClass('class2 class1'); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(0); }); test('removeClass by array', () => { obj.addClass(['class1', 'class2']); obj.removeClass(['class1', 'class2']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(0); }); test('removeClass do nothing with undefined classes', () => { obj.addClass(['class1', 'class2']); obj.removeClass(['class3']); - const result = obj.get('classes').models; + const result = obj.classes.models; expect(result.length).toEqual(2); }); @@ -287,7 +283,7 @@ describe('Component', () => { style: 'color:white;background:#fff;', 'data-test': 'value', }); - expect(obj.get('classes').length).toEqual(2); + expect(obj.classes.length).toEqual(2); expect(obj.getStyle()).toEqual({ color: 'white', background: '#fff', @@ -351,7 +347,7 @@ describe('Component', () => {
Comp 2
Comp 3
- `); + `) as Component; const comp1 = added.components().at(0); comp1.remove(); added.append(comp1); @@ -369,11 +365,11 @@ describe('Component', () => { color: red; } - `); + `) as Component[]; const comp1 = added[0]; const comp2 = added[1]; const comp1Id = comp1.getId(); - const comp2Sel = comp2._getStyleSelector(); + const comp2Sel = comp2._getStyleSelector()!; expect(comp2Sel.get('name')).toEqual(idName); const idNameNew = `${idName}2`; comp2.setId(idNameNew); @@ -405,14 +401,14 @@ describe('Component', () => {
TEST
`); - const notInhereted = model => { + const notInhereted = (model: Component) => { expect(model.get('stop')).toEqual('1'); expect(model.get('removable')).toEqual(true); expect(model.get('draggable')).toEqual(true); expect(model.get('propagate')).toEqual(['stop']); model.components().each(model => inhereted(model)); }; - const inhereted = model => { + const inhereted = (model: Component) => { if (model.get('stop')) { notInhereted(model); } else { @@ -454,10 +450,6 @@ describe('Image Component', () => { obj = new ComponentImage(); }); - afterEach(() => { - obj = null; - }); - test('Has src property', () => { expect(obj.has('src')).toEqual(true); }); @@ -504,10 +496,6 @@ describe('Text Component', () => { obj = new ComponentText({}, compOpts); }); - afterEach(() => { - obj = null; - }); - test('Has content property', () => { expect(obj.has('content')).toEqual(true); }); @@ -533,10 +521,6 @@ describe('Text Node Component', () => { obj = new ComponentTextNode({}, compOpts); }); - afterEach(() => { - obj = null; - }); - test('Has content property', () => { expect(obj.has('content')).toEqual(true); }); @@ -600,14 +584,14 @@ describe('Map Component', () => { test('Component parse map iframe', () => { var src = 'https://maps.google.com/maps?&q=London,UK&z=11&t=q&output=embed'; var el = $(''); - obj = ComponentMap.isComponent(el.get(0) as HTMLIFrameElement); - expect(obj).toEqual({ type: 'map', src }); + const res = ComponentMap.isComponent(el.get(0) as HTMLIFrameElement); + expect(res).toEqual({ type: 'map', src }); }); test('Component parse not map iframe', () => { var el = $(''); - obj = ComponentMap.isComponent(el.get(0) as HTMLIFrameElement); - expect(obj).toEqual(undefined); + const res = ComponentMap.isComponent(el.get(0) as HTMLIFrameElement); + expect(res).toEqual(undefined); }); }); @@ -685,7 +669,7 @@ describe('Components', () => { } `; - const added = dcomp.addComponent(block); + const added = dcomp.addComponent(block) as Component; const addComps = added.components(); // Let's check if everthing is working as expected expect(Object.keys(dcomp.componentsById).length).toBe(3); // + 1 wrapper @@ -698,7 +682,7 @@ describe('Components', () => { expect(rules.at(1).selectorsToString()).toBe(`#${id}:hover`); expect(rules.at(2).selectorsToString()).toBe(`#${idB}`); // Now let's add the same block - const added2 = dcomp.addComponent(block); + const added2 = dcomp.addComponent(block) as Component; const addComps2 = added2.components(); const id2 = added2.getId(); const newId = `${id}-2`; diff --git a/test/specs/dom_components/view/ComponentTextView.ts b/test/specs/dom_components/view/ComponentTextView.ts index 36e09ff7d..77ab1e794 100644 --- a/test/specs/dom_components/view/ComponentTextView.ts +++ b/test/specs/dom_components/view/ComponentTextView.ts @@ -1,14 +1,15 @@ import ComponentTextView from '../../../../src/dom_components/view/ComponentTextView'; import Component from '../../../../src/dom_components/model/Component'; import Editor from '../../../../src/editor/model/Editor'; +import { CustomRTE } from '../../../../src/rich_text_editor/config/config'; describe('ComponentTextView', () => { - let fixtures; + let fixtures: HTMLElement; let model; - let view; - let el; + let view: ComponentTextView; + let el: HTMLElement; let dcomp; - let compOpts; + let compOpts: any; let em: Editor; beforeEach(() => { @@ -26,7 +27,7 @@ describe('ComponentTextView', () => { config: { ...em.config, em }, }); document.body.innerHTML = '
'; - fixtures = document.body.querySelector('#fixtures'); + fixtures = document.body.querySelector('#fixtures')!; el = view.render().el; fixtures.appendChild(el); }); @@ -56,12 +57,16 @@ describe('ComponentTextView', () => { }); describe('.getContent', () => { - let fakeRte, fakeRteContent, fakeChildContainer; + let fakeRte: CustomRTE; + let fakeRteContent = ''; + let fakeChildContainer: InnerHTML; beforeEach(() => { fakeRteContent = 'fakeRteContent'; fakeRte = { + enable() {}, + disable() {}, getContent: jest.fn(() => fakeRteContent), }; @@ -74,7 +79,7 @@ describe('ComponentTextView', () => { }); it('should get content from active RTE if available', async () => { - view.activeRte = {}; + view.activeRte = {} as any; expect(await view.getContent()).toEqual(fakeRteContent); expect(fakeRte.getContent).toHaveBeenCalled(); }); @@ -82,8 +87,8 @@ describe('ComponentTextView', () => { it("should get child container's `innerHTML` if active RTE is not available or if it has no `getContent` function", async () => { expect(await view.getContent()).toEqual(fakeChildContainer.innerHTML); - fakeRte.getContent = null; - view.activeRte = {}; + delete fakeRte.getContent; + view.activeRte = {} as any; expect(await view.getContent()).toEqual(fakeChildContainer.innerHTML); expect(view.getChildrenContainer).toHaveBeenCalledTimes(2); diff --git a/test/specs/editor/index.js b/test/specs/editor/index.ts similarity index 91% rename from test/specs/editor/index.js rename to test/specs/editor/index.ts index 53b8c4e78..96f890af2 100644 --- a/test/specs/editor/index.js +++ b/test/specs/editor/index.ts @@ -1,10 +1,10 @@ -import Editor from 'editor'; +import Editor from '../../../src/editor'; const { keys } = Object; const initComps = 1; describe('Editor', () => { - let editor; + let editor: Editor; beforeEach(() => { editor = new Editor(); @@ -47,14 +47,14 @@ describe('Editor', () => { test('Components are correctly tracked on add', () => { const all = editor.Components.allById(); - const wrapper = editor.getWrapper(); + const wrapper = editor.getWrapper()!; wrapper.append('
Component
'); // Div component + textnode expect(keys(all).length).toBe(2 + initComps); }); test('Components are correctly tracked on add and remove', () => { const all = editor.Components.allById(); - const wrapper = editor.getWrapper(); + const wrapper = editor.getWrapper()!; const added = wrapper.append(`
Component 1
@@ -75,9 +75,9 @@ describe('Editor', () => { const all = editor.Components.allById(); const um = editor.UndoManager; const umStack = um.getStack(); - const wrapper = editor.getWrapper(); + const wrapper = editor.getWrapper()!; expect(umStack.length).toBe(0); - const comp = wrapper.append('
Component 1
')[0]; + wrapper.append('
Component 1
')[0]; expect(umStack.length).toBe(1); wrapper.empty(); expect(umStack.length).toBe(2); @@ -90,7 +90,7 @@ describe('Editor', () => { const all = editor.Components.allById(); const um = editor.UndoManager; const umStack = um.getStack(); - const wrapper = editor.getWrapper(); + const wrapper = editor.getWrapper()!; expect(umStack.length).toBe(0); wrapper.append(`
Component 1
diff --git a/test/specs/grapesjs/index.ts b/test/specs/grapesjs/index.ts index 8eb3f39e0..0e6dc3b86 100644 --- a/test/specs/grapesjs/index.ts +++ b/test/specs/grapesjs/index.ts @@ -1,22 +1,23 @@ -import grapesjs, { usePlugin } from '../../../src'; +import grapesjs, { Component, Editor, usePlugin } from '../../../src'; +import ComponentWrapper from '../../../src/dom_components/model/ComponentWrapper'; import type { Plugin } from '../../../src/plugin_manager'; type TestPlugin = Plugin<{ cVal: string }>; describe('GrapesJS', () => { describe('Main', () => { - let fixtures; - let fixture; - let editorName; - let htmlString; - let config; - let cssString; - let documentEl; - - let storage; + let fixtures: HTMLElement; + let fixture: HTMLElement; + let editorName = ''; + let htmlString = ''; + let config: any; + let cssString = ''; + let documentEl = ''; + + let storage: any; let storageId = 'testStorage'; let storageMock = { - async store(data) { + async store(data: any) { storage = data; }, load() { @@ -43,8 +44,8 @@ describe('GrapesJS', () => { }, }; document.body.innerHTML = `
`; - fixtures = document.body.querySelector('#fixtures'); - fixture = document.body.querySelector(`#${editorName}`); + fixtures = document.body.querySelector('#fixtures')!; + fixture = document.body.querySelector(`#${editorName}`)!; }); afterEach(() => { @@ -310,7 +311,7 @@ describe('GrapesJS', () => { const editor = grapesjs.init(config); editor.setComponents(htmlString); editor.store(() => { - editor.load(data => { + editor.load((data: any) => { expect(data.html).toEqual(htmlString); done(); }); @@ -368,7 +369,7 @@ describe('GrapesJS', () => { }); test('Execute inline plugins with custom options', () => { - const inlinePlugin = (edt, opts) => { + const inlinePlugin: Plugin = (edt, opts) => { var opts = opts || {}; edt.getModel().set('customValue', opts.cVal || ''); }; @@ -380,7 +381,7 @@ describe('GrapesJS', () => { }); test('Execute inline plugins without any options', () => { - const inlinePlugin = edt => { + const inlinePlugin: Plugin = edt => { edt.getModel().set('customValue', 'TEST'); }; config.plugins = [inlinePlugin]; @@ -390,10 +391,11 @@ describe('GrapesJS', () => { }); test('Use plugins defined on window, with custom options', () => { - (window as any).globalPlugin = (edt, opts) => { + const plg: Plugin = (edt, opts) => { var opts = opts || {}; edt.getModel().set('customValue', opts.cVal || ''); }; + (window as any).globalPlugin = plg; config.plugins = ['globalPlugin']; config.pluginsOpts = {}; config.pluginsOpts['globalPlugin'] = { cVal: 'TEST' }; @@ -414,7 +416,7 @@ describe('GrapesJS', () => { config.plugins = [pluginName]; editor = grapesjs.init(config); - expect(editor.Commands.get('export-template').test).toEqual(1); + expect(editor.Commands.get('export-template')!.test).toEqual(1); }); describe('usePlugin', () => { @@ -449,9 +451,10 @@ describe('GrapesJS', () => { let varToTest = ''; const optionValue = 'TEST-global'; const pluginName = 'globalPlugin'; - (window as any)[pluginName] = (edt, opts) => { + const plg: Plugin = (edt, opts) => { varToTest = opts.cVal; }; + (window as any)[pluginName] = plg; grapesjs.init({ ...config, plugins: [usePlugin(pluginName, { cVal: optionValue })], @@ -462,7 +465,11 @@ describe('GrapesJS', () => { }); describe('Component selection', () => { - let editor, wrapper, el1, el2, el3; + let editor: Editor; + let wrapper: ComponentWrapper; + let el1: Component; + let el2: Component; + let el3: Component; beforeEach(() => { config.storageManager = { type: 0 }; @@ -472,7 +479,7 @@ describe('GrapesJS', () => {
`; editor = grapesjs.init(config); - wrapper = editor.DomComponents.getWrapper(); + wrapper = editor.DomComponents.getWrapper()!; el1 = wrapper.find('#el1')[0]; el2 = wrapper.find('#el2')[0]; el3 = wrapper.find('#el3')[0]; @@ -487,7 +494,7 @@ describe('GrapesJS', () => { expect(editor.getSelected()).toBe(el1); expect(editor.getSelectedAll().length).toBe(1); // Select via element - editor.select(el2.getEl()); + editor.select(el2.getEl() as any); expect(editor.getSelected()).toBe(el2); expect(editor.getSelectedAll().length).toBe(1); // Deselect via empty array @@ -498,7 +505,7 @@ describe('GrapesJS', () => { test('Select multiple components', () => { // Select at first el1 and el3 - editor.select([el1, el3.getEl()]); + editor.select([el1, el3.getEl() as any]); expect(editor.getSelected()).toBe(el3); expect(editor.getSelectedAll().length).toBe(2); // Add el2 @@ -536,9 +543,9 @@ describe('GrapesJS', () => { const selected = jest.spyOn(toSpy, 'selected'); const deselected = jest.spyOn(toSpy, 'deselected'); const toggled = jest.spyOn(toSpy, 'toggled'); - editor.on('component:selected', selected); - editor.on('component:deselected', deselected); - editor.on('component:toggled', toggled); + editor.on('component:selected', selected as any); + editor.on('component:deselected', deselected as any); + editor.on('component:toggled', toggled as any); editor.select(el1); // selected=1 editor.selectAdd(el1); // selected=1 diff --git a/test/specs/selector_manager/index.ts b/test/specs/selector_manager/index.ts index 8784e1f5c..5b562e450 100644 --- a/test/specs/selector_manager/index.ts +++ b/test/specs/selector_manager/index.ts @@ -37,7 +37,7 @@ describe('SelectorManager', () => { test('Default new selector is a class type', () => { const added = obj.add('test') as Selector; - expect(obj.get('test').get('type')).toEqual(obj.Selector.TYPE_CLASS); + expect(obj.get('test')!.get('type')).toEqual(obj.Selector.TYPE_CLASS); expect(added.getFullName()).toBe('.test'); }); @@ -46,7 +46,7 @@ describe('SelectorManager', () => { 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); + expect(obj.get(`#${name}`)!.get('type')).toEqual(obj.Selector.TYPE_ID); expect(sel.getFullName()).toBe('#test'); }); diff --git a/test/specs/selector_manager/model/SelectorModels.ts b/test/specs/selector_manager/model/SelectorModels.ts index 829b59bcd..5a319fdf0 100644 --- a/test/specs/selector_manager/model/SelectorModels.ts +++ b/test/specs/selector_manager/model/SelectorModels.ts @@ -33,7 +33,7 @@ describe('Selector', () => { }); describe('Selectors', () => { - var obj; + let obj: Selectors; beforeEach(() => { obj = new Selectors(); diff --git a/test/specs/style_manager/index.ts b/test/specs/style_manager/index.ts index 658bbc7c6..170ce7a3f 100644 --- a/test/specs/style_manager/index.ts +++ b/test/specs/style_manager/index.ts @@ -79,7 +79,7 @@ describe('StyleManager', () => { test('Add property', () => { obj.addSector('test', { name: 'test' }); expect(obj.addProperty('test', { property: 'test' })).toBeTruthy(); - expect(obj.getProperties('test').length).toEqual(1); + expect(obj.getProperties('test')!.length).toEqual(1); }); test('Check added property', () => { @@ -95,7 +95,7 @@ describe('StyleManager', () => { obj.addSector('test', { name: 'test' }); // @ts-ignore obj.addProperty('test', [{}, {}]); - expect(obj.getProperties('test').length).toEqual(2); + expect(obj.getProperties('test')!.length).toEqual(2); }); test('Get property from inexistent sector', () => { diff --git a/test/specs/style_manager/model/Models.ts b/test/specs/style_manager/model/Models.ts index 318ea60ef..a672c2ec5 100644 --- a/test/specs/style_manager/model/Models.ts +++ b/test/specs/style_manager/model/Models.ts @@ -4,10 +4,10 @@ import PropertyNumber from '../../../../src/style_manager/model/PropertyNumber'; import Editor from '../../../../src/editor/model/Editor'; describe('Sector', () => { - let em; - let sm; - let obj; - let confToExt; + let em: Editor; + let sm: Editor['Styles']; + let obj: Sector; + let confToExt: any; beforeEach(() => { confToExt = { @@ -28,13 +28,12 @@ describe('Sector', () => { sectors: [{ id: 'sector-1', name: 's' }], }, }); - sm = em.get('StyleManager'); + sm = em.Styles; sm.onLoad(); obj = sm.getSector('sector-1'); }); afterEach(() => { - obj = null; em.destroy(); }); @@ -43,7 +42,7 @@ describe('Sector', () => { }); test('Has no properties', () => { - expect(obj.get('properties').length).toEqual(0); + expect(obj.get('properties')!.length).toEqual(0); }); test('Init with properties', () => { @@ -51,7 +50,7 @@ describe('Sector', () => { name: 'test', properties: [{ property: '1' }, { property: '2' }], }); - expect(obj.get('properties').length).toEqual(2); + expect(obj.getProperties().length).toEqual(2); }); test('Build properties', () => { @@ -67,8 +66,8 @@ describe('Sector', () => { test('Extend properties', () => { obj = sm.addSector('test', confToExt); - expect(obj.get('properties').length).toEqual(3); - var prop0 = obj.get('properties').at(0); + expect(obj.getProperties().length).toEqual(3); + var prop0 = obj.getProperties()[0]; expect(prop0.get('type')).toEqual('radio'); expect(prop0.get('default')).toEqual('block'); }); @@ -76,8 +75,8 @@ describe('Sector', () => { test('Do not extend properties', () => { confToExt.extendBuilded = 0; obj = sm.addSector('test', confToExt); - expect(obj.get('properties').length).toEqual(3); - var prop0 = obj.get('properties').at(0); + expect(obj.getProperties().length).toEqual(3); + var prop0 = obj.getProperties()[0]; expect(prop0.get('type')).toEqual('radio'); expect(prop0.get('defaults')).toEqual(''); }); @@ -88,6 +87,7 @@ describe('Sector', () => { properties: [ { property: 'margin', + // @ts-ignore properties: [ { name: 'Top', @@ -100,10 +100,10 @@ describe('Sector', () => { }, ], }); - var sectProps = obj.get('properties'); + var sectProps = obj.getProperties(); expect(sectProps.length).toEqual(2); - var prop0 = obj.get('properties').at(0); - var propProps = prop0.get('properties'); + var prop0 = obj.getProperties()[0]; + var propProps = prop0.get('properties' as any); expect(propProps.length).toEqual(2); var propTop = propProps.at(0); diff --git a/test/specs/utils/Mixins.ts b/test/specs/utils/Mixins.ts index 6e9963225..7f243e087 100644 --- a/test/specs/utils/Mixins.ts +++ b/test/specs/utils/Mixins.ts @@ -1,10 +1,10 @@ -import { buildBase64UrlFromSvg } from 'utils/mixins'; +import { buildBase64UrlFromSvg } from '../../../src/utils/mixins'; describe('.buildBase64UrlFromSvg', () => { it('returns original when a none svg is provided', () => { const input = 'something else'; - expect(buildBase64UrlFromSvg(input)).toEqual(input) - }) + expect(buildBase64UrlFromSvg(input)).toEqual(input); + }); it('returns base64 image when an svg is provided', () => { const input = ` { `; - const output = 'data:image/svg+xml;base64,PHN2ZwogICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgIHdpZHRoPSIyNCIKICAgICAgaGVpZ2h0PSIyNCIKICAgICAgdmlld0JveD0iMCAwIDI0IDI0IgogICAgICBmaWxsPSJub25lIgogICAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICAgICAgc3Ryb2tlLXdpZHRoPSIyIgogICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICA+CiAgICAgIDxwb2x5Z29uIHBvaW50cz0iMSA2IDEgMjIgOCAxOCAxNiAyMiAyMyAxOCAyMyAyIDE2IDYgOCAyIDEgNiIgLz4KICAgICAgPGxpbmUgeDE9IjgiIHkxPSIyIiB4Mj0iOCIgeTI9IjE4IiAvPgogICAgICA8bGluZSB4MT0iMTYiIHkxPSI2IiB4Mj0iMTYiIHkyPSIyMiIgLz4KICAgIDwvc3ZnPg==' - expect(buildBase64UrlFromSvg(input)).toEqual(output) - }) + const output = + 'data:image/svg+xml;base64,PHN2ZwogICAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgIHdpZHRoPSIyNCIKICAgICAgaGVpZ2h0PSIyNCIKICAgICAgdmlld0JveD0iMCAwIDI0IDI0IgogICAgICBmaWxsPSJub25lIgogICAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIKICAgICAgc3Ryb2tlLXdpZHRoPSIyIgogICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICA+CiAgICAgIDxwb2x5Z29uIHBvaW50cz0iMSA2IDEgMjIgOCAxOCAxNiAyMiAyMyAxOCAyMyAyIDE2IDYgOCAyIDEgNiIgLz4KICAgICAgPGxpbmUgeDE9IjgiIHkxPSIyIiB4Mj0iOCIgeTI9IjE4IiAvPgogICAgICA8bGluZSB4MT0iMTYiIHkxPSI2IiB4Mj0iMTYiIHkyPSIyMiIgLz4KICAgIDwvc3ZnPg=='; + expect(buildBase64UrlFromSvg(input)).toEqual(output); + }); }); diff --git a/tsconfig.json b/tsconfig.json index 3e74baacd..0a3733f8b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,6 +21,7 @@ "noEmit": false }, "include": [ - "src" + "src", + "test" ] } \ No newline at end of file