diff --git a/test/specs/css_composer/e2e/CssComposer.js b/test/specs/css_composer/e2e/CssComposer.ts similarity index 64% rename from test/specs/css_composer/e2e/CssComposer.js rename to test/specs/css_composer/e2e/CssComposer.ts index 9360ddf6c..199c7b3d7 100644 --- a/test/specs/css_composer/e2e/CssComposer.js +++ b/test/specs/css_composer/e2e/CssComposer.ts @@ -1,32 +1,32 @@ -import Backbone from 'backbone'; -const $ = Backbone.$; +import grapesjs, { Editor } from '../../../../src'; +import { CssRuleJSON } from '../../../../src/css_composer/model/CssRule'; +import { createEl } from '../../../../src/utils/dom'; describe('E2E tests', () => { - var fixtures; - var fixture; - var gjs; - var cssc; - var clsm; - var domc; - var rulesSet; - var rulesSet2; + let fixtures: Element; + let fixture: Element; + let cssc: Editor['Css']; + let clsm: Editor['Selectors']; + let domc: Editor['Components']; + let rulesSet: CssRuleJSON[]; + let rulesSet2: CssRuleJSON[]; beforeAll(() => { - fixtures = $('#fixtures'); - fixture = $('
'); + document.body.innerHTML = ''; + fixtures = document.body.firstElementChild!; }); beforeEach(done => { - gjs = grapesjs.init({ + const gjs = grapesjs.init({ stylePrefix: '', - storageManager: { autoload: 0, type: 'none' }, - assetManager: { storageType: 'none' }, + storageManager: { autoload: false, type: 'none' }, container: 'csscomposer-fixture', }); cssc = gjs.CssComposer; clsm = gjs.SelectorManager; domc = gjs.DomComponents; - fixture.empty().appendTo(fixtures); + fixture = createEl('div', { class: 'csscomposer-fixture' }); + fixtures.appendChild(fixture); rulesSet = [ { selectors: [{ name: 'test1' }, { name: 'test2' }] }, { selectors: [{ name: 'test2' }, { name: 'test3' }] }, @@ -43,43 +43,37 @@ describe('E2E tests', () => { done(); }); - afterEach(() => { - gjs = null; - cssc = null; - clsm = null; - }); - afterAll(() => { fixture.remove(); }); test('Rules are correctly imported from default property', () => { - var gj = grapesjs.init({ + const gj = grapesjs.init({ stylePrefix: '', - storageManager: { autoload: 0, type: 'none' }, - cssComposer: { rules: rulesSet }, + storageManager: { autoload: false, type: 'none' }, + cssComposer: { rules: rulesSet as any }, container: 'csscomposer-fixture', }); - var cssc = gj.editor.get('CssComposer'); + const cssc = gj.editor.get('CssComposer'); expect(cssc.getAll().length).toEqual(rulesSet.length); - var cls = gj.editor.get('SelectorManager').getAll(); + const cls = gj.editor.get('SelectorManager').getAll(); expect(cls.length).toEqual(3); }); test('New rule adds correctly the class inside selector manager', () => { - var rules = cssc.getAll(); + const rules = cssc.getAll(); rules.add({ selectors: [{ name: 'test1', private: true }] }); - var rule = clsm.getAll().at(0); + const rule = clsm.getAll().at(0); expect(rule.get('name')).toEqual('test1'); expect(rule.get('private')).toEqual(true); }); test('New rules are correctly imported inside selector manager', () => { - var rules = cssc.getAll(); + const rules = cssc.getAll(); rulesSet.forEach(item => { rules.add(item); }); - var cls = clsm.getAll(); + const cls = clsm.getAll(); expect(cls.length).toEqual(3); expect(cls.at(0).get('name')).toEqual('test1'); expect(cls.at(1).get('name')).toEqual('test2'); @@ -87,8 +81,8 @@ describe('E2E tests', () => { }); test('Add rules from the new component added as a string with style tag', () => { - var comps = domc.getComponents(); - var rules = cssc.getAll(); + const comps = domc.getComponents(); + const rules = cssc.getAll(); comps.add('