Browse Source

Up ComponentView test

pull/5321/head
Artur Arseniev 3 years ago
parent
commit
0997eee636
  1. 49
      test/specs/dom_components/view/ComponentView.ts

49
test/specs/dom_components/view/ComponentV.js → test/specs/dom_components/view/ComponentView.ts

@ -1,31 +1,35 @@
import ComponentView from 'dom_components/view/ComponentView'; import Component from '../../../../src/dom_components/model/Component';
import Component from 'dom_components/model/Component'; import ComponentView from '../../../../src/dom_components/view/ComponentView';
import DomComponents from 'dom_components'; import Editor from '../../../../src/editor/model/Editor';
import Editor from 'editor/model/Editor';
describe('ComponentView', () => { describe('ComponentView', () => {
let fixtures; let fixtures: Element;
let model; let model: Component;
let view; let view: ComponentView;
let dcomp; let dcomp: Editor['Components'];
let compOpts; let compOpts: any;
let em; let em: Editor;
let el; let el: HTMLElement;
let compViewOpst: any;
beforeEach(() => { beforeEach(() => {
em = new Editor({}); em = new Editor({});
dcomp = new DomComponents(em); dcomp = em.Components;
compOpts = { compOpts = {
em, em,
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}; };
model = new Component({}, compOpts); model = new Component({}, compOpts);
compViewOpst = {
config: {},
};
view = new ComponentView({ view = new ComponentView({
...compViewOpst,
model, model,
}); });
em.get('StyleManager').render(); // Enable to listen em.setState em.Styles.render(); // Enable to listen em.setState
document.body.innerHTML = '<div id="fixtures"></div>'; document.body.innerHTML = '<div id="fixtures"></div>';
fixtures = document.body.querySelector('#fixtures'); fixtures = document.body.querySelector('#fixtures')!;
el = view.render().el; el = view.render().el;
fixtures.appendChild(el); fixtures.appendChild(el);
}); });
@ -43,7 +47,7 @@ describe('ComponentView', () => {
test('Clean form helper state', () => { test('Clean form helper state', () => {
em.setSelected(model); em.setSelected(model);
em.setState('test'); em.setState('test');
em.setState(); em.setState('');
expect(fixtures.innerHTML).toEqual( expect(fixtures.innerHTML).toEqual(
`<div data-gjs-highlightable="true" id="${el.id}" data-gjs-type="default" class="selected"></div>` `<div data-gjs-highlightable="true" id="${el.id}" data-gjs-type="default" class="selected"></div>`
); );
@ -85,25 +89,25 @@ describe('ComponentView', () => {
}); });
test('Add class', () => { test('Add class', () => {
model.get('classes').add({ name: 'test' }); model.classes.add({ name: 'test' });
expect(view.el.getAttribute('class')).toEqual('test'); expect(view.el.getAttribute('class')).toEqual('test');
}); });
test('Add classes', () => { test('Add classes', () => {
model.get('classes').add([{ name: 'test' }, { name: 'test2' }]); model.classes.add([{ name: 'test' }, { name: 'test2' }]);
expect(view.el.getAttribute('class')).toEqual('test test2'); expect(view.el.getAttribute('class')).toEqual('test test2');
}); });
test('Update on remove of some class', () => { test('Update on remove of some class', () => {
var cls1 = model.get('classes').add({ name: 'test' }); var cls1 = model.classes.add({ name: 'test' });
var cls12 = model.get('classes').add({ name: 'test2' }); var cls12 = model.classes.add({ name: 'test2' });
model.get('classes').remove(cls1); model.classes.remove(cls1);
expect(view.el.getAttribute('class')).toEqual('test2'); expect(view.el.getAttribute('class')).toEqual('test2');
}); });
test('Init with different tag', () => { test('Init with different tag', () => {
model = new Component({ tagName: 'span' }); model = new Component({ tagName: 'span' });
view = new ComponentView({ model }); view = new ComponentView({ ...compViewOpst, model });
fixtures.innerHTML = ''; fixtures.innerHTML = '';
fixtures.appendChild(view.render().el); fixtures.appendChild(view.render().el);
expect(view.render().el.tagName).toEqual('SPAN'); expect(view.render().el.tagName).toEqual('SPAN');
@ -112,12 +116,15 @@ describe('ComponentView', () => {
test('Init with nested components', () => { test('Init with nested components', () => {
model = new Component( model = new Component(
{ {
// @ts-ignore
components: [{ tagName: 'span' }, { attributes: { title: 'test' } }], components: [{ tagName: 'span' }, { attributes: { title: 'test' } }],
}, },
compOpts compOpts
); );
view = new ComponentView({ view = new ComponentView({
...compViewOpst,
model, model,
// @ts-ignore
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}); });
fixtures.innerHTML = ''; fixtures.innerHTML = '';
Loading…
Cancel
Save