From 69ebf8aebcbb67ffd9fcfbcb54a2044a06315557 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 16 Mar 2021 23:36:15 +0100 Subject: [PATCH] Fix components tests --- src/dom_components/model/Component.js | 8 ++++--- src/dom_components/model/Components.js | 7 ++++--- test/specs/dom_components/index.js | 22 +++++++++++++------- test/specs/dom_components/model/Component.js | 13 ++++++++---- test/specs/dom_components/model/Symbols.js | 4 ++++ 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index b1ae2e201..d1a38a256 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -216,7 +216,8 @@ const Component = Backbone.Model.extend(Styleable).extend( }, __postAdd(opts = {}) { - const um = this.em.get('UndoManager'); + const { em } = this; + const um = em && em.get('UndoManager'); const comps = this.components(); if (um && !this.__hasUm) { um.add(this); @@ -227,7 +228,8 @@ const Component = Backbone.Model.extend(Styleable).extend( }, __postRemove() { - const um = this.em.get('UndoManager'); + const { em } = this; + const um = em && em.get('UndoManager'); if (um) { um.remove(this); um.remove(this.components()); @@ -1387,7 +1389,7 @@ const Component = Backbone.Model.extend(Styleable).extend( if (obj[keySymbols]) { obj[keySymbols] = this.__getSymbToUp().map(i => i.getId()); } - if (obj[keySymbol]) { + if (obj[keySymbol] && !isString(obj[keySymbol])) { obj[keySymbol] = obj[keySymbol].getId(); } } diff --git a/src/dom_components/model/Components.js b/src/dom_components/model/Components.js index 14d14e461..e31c73ac8 100644 --- a/src/dom_components/model/Components.js +++ b/src/dom_components/model/Components.js @@ -34,9 +34,10 @@ export default Backbone.Collection.extend({ this.listenTo(this, 'add', this.onAdd); this.listenTo(this, 'remove', this.removeChildren); this.listenTo(this, 'reset', this.resetChildren); - this.config = opt.config; - this.em = opt.em; - this.domc = opt.domc || this.em.get('DomComponents'); + const { em, config } = opt; + this.config = config; + this.em = em; + this.domc = opt.domc || (em && em.get('DomComponents')); }, resetChildren(models, opts = {}) { diff --git a/test/specs/dom_components/index.js b/test/specs/dom_components/index.js index 39d72fa8c..a988733b3 100644 --- a/test/specs/dom_components/index.js +++ b/test/specs/dom_components/index.js @@ -19,7 +19,13 @@ describe('DOM Components', () => { loadCompsOnRender: 0 }, get() { - return; + return {}; + }, + on() { + return this; + }, + listenTo() { + return this; }, getHtml() { return 'testHtml'; @@ -47,11 +53,13 @@ describe('DOM Components', () => { em = new Editor({ avoidInlineStyle: 1 }); + em.get('PageManager').onLoad(); config = { em, storeWrapper: 1 }; - obj = new DomComponents().init(config); + obj = em.get('DomComponents'); + // obj = new DomComponents().init(config); }); afterEach(() => { @@ -80,8 +88,10 @@ describe('DOM Components', () => { test('Store data', () => { setSmConfig(); - setEm(); - //obj.getWrapper().get('components').add({}); + (em.getHtml = () => { + return 'testHtml'; + }), + (obj = em.get('DomComponents').init(config)); var expected = { html: 'testHtml', components: JSON.stringify(obj.getWrapper()) @@ -143,10 +153,6 @@ describe('DOM Components', () => { expect(obj.getComponents().length).toEqual(2); }); - test('Render wrapper', () => { - expect(obj.render()).toBeTruthy(); - }); - test('Import propertly components and styles with the same ids', () => { obj = em.get('DomComponents'); const cc = em.get('CssComposer'); diff --git a/test/specs/dom_components/model/Component.js b/test/specs/dom_components/model/Component.js index 8a55aff90..2ee1f4625 100644 --- a/test/specs/dom_components/model/Component.js +++ b/test/specs/dom_components/model/Component.js @@ -15,11 +15,14 @@ const $ = Backbone.$; let obj; let dcomp; let compOpts; -let em = new Editor({}); +let em; describe('Component', () => { beforeEach(() => { - dcomp = new DomComponents(); + em = new Editor(); + dcomp = em.get('DomComponents'); + em.get('PageManager').onLoad(); + // dcomp = new DomComponents(); compOpts = { em, componentTypes: dcomp.componentTypes, @@ -589,7 +592,8 @@ describe('Video Component', () => { describe('Components', () => { beforeEach(() => { em = new Editor({}); - dcomp = new DomComponents(); + dcomp = em.get('DomComponents'); + em.get('PageManager').onLoad(); compOpts = { em, componentTypes: dcomp.componentTypes @@ -616,7 +620,8 @@ describe('Components', () => { test('Avoid conflicting components with the same ID', () => { const em = new Editor({}); - dcomp = new DomComponents(); + dcomp = em.get('DomComponents'); + em.get('PageManager').onLoad(); dcomp.init({ em }); const id = 'myid'; const idB = 'myid2'; diff --git a/test/specs/dom_components/model/Symbols.js b/test/specs/dom_components/model/Symbols.js index 9a2e5e383..4fa226c5d 100644 --- a/test/specs/dom_components/model/Symbols.js +++ b/test/specs/dom_components/model/Symbols.js @@ -49,6 +49,10 @@ describe('Symbols', () => { beforeAll(() => { editor = new Editor({ symbols: 1 }); + editor + .getModel() + .get('PageManager') + .onLoad(); wrapper = editor.getWrapper(); });