Browse Source

Fix dom_components regressions

no-jquery
Artur Arseniev 9 years ago
parent
commit
2043ff3df3
  1. 11
      test/specs/dom_components/index.js
  2. 15
      test/specs/dom_components/view/ComponentImageView.js
  3. 22
      test/specs/dom_components/view/ComponentTextView.js
  4. 31
      test/specs/dom_components/view/ComponentV.js
  5. 13
      test/specs/dom_components/view/ComponentsView.js

11
test/specs/dom_components/index.js

@ -113,9 +113,12 @@ describe('DOM Components', () => {
}); });
ComponentModels.run(); ComponentModels.run();
ComponentView.run();
ComponentsView.run(); describe('Views', () => {
ComponentTextView.run(); ComponentView.run();
ComponentImageView.run(); ComponentsView.run();
ComponentTextView.run();
ComponentImageView.run();
});
}); });

15
test/specs/dom_components/view/ComponentImageView.js

@ -6,33 +6,22 @@ module.exports = {
describe('ComponentImageView', () => { describe('ComponentImageView', () => {
var $fixtures;
var $fixture;
var model; var model;
var view; var view;
before(() => {
$fixtures = $("#fixtures");
$fixture = $('<div class="components-fixture"></div>');
});
beforeEach(() => { beforeEach(() => {
model = new Component(); model = new Component();
view = new ComponentImageView({ view = new ComponentImageView({
model model
}); });
$fixture.empty().appendTo($fixtures); document.body.innerHTML = '<div id="fixtures"></div>';
$fixture.html(view.render().el); document.body.querySelector('#fixtures').appendChild(view.render().el);
}); });
afterEach(() => { afterEach(() => {
view.remove(); view.remove();
}); });
after(() => {
$fixture.remove();
});
it('Component empty', () => { it('Component empty', () => {
expect(view.el.getAttribute('onmousedown')).toEqual('return false'); expect(view.el.getAttribute('onmousedown')).toEqual('return false');
expect(view.el.getAttribute('class')).toEqual(view.classEmpty); expect(view.el.getAttribute('class')).toEqual(view.classEmpty);

22
test/specs/dom_components/view/ComponentTextView.js

@ -6,35 +6,26 @@ module.exports = {
describe('ComponentTextView', () => { describe('ComponentTextView', () => {
var $fixtures; var fixtures;
var $fixture;
var model; var model;
var view; var view;
before(() => {
$fixtures = $("#fixtures");
$fixture = $('<div class="components-fixture"></div>');
});
beforeEach(() => { beforeEach(() => {
model = new Component(); model = new Component();
view = new ComponentTextView({ view = new ComponentTextView({
model model
}); });
$fixture.empty().appendTo($fixtures); document.body.innerHTML = '<div id="fixtures"></div>';
$fixture.html(view.render().el); fixtures = document.body.querySelector('#fixtures');
fixtures.appendChild(view.render().el);
}); });
afterEach(() => { afterEach(() => {
view.remove(); view.remove();
}); });
after(() => {
$fixture.remove();
});
it('Component empty', () => { it('Component empty', () => {
expect($fixture.html()).toEqual('<div data-highlightable="1"></div>'); expect(fixtures.innerHTML).toEqual('<div data-highlightable="1"></div>');
}); });
it('Input content is stored in model', () => { it('Input content is stored in model', () => {
@ -47,7 +38,8 @@ module.exports = {
it('Init with content', () => { it('Init with content', () => {
model = new Component({ content: 'test' }); model = new Component({ content: 'test' });
view = new ComponentTextView({ model }); view = new ComponentTextView({ model });
expect(view.render().el.innerHTML).toEqual('test'); fixtures.appendChild(view.render().el);
expect(view.el.innerHTML).toEqual('test');
}); });
}); });

31
test/specs/dom_components/view/ComponentV.js

@ -7,19 +7,13 @@ module.exports = {
describe('ComponentView', () => { describe('ComponentView', () => {
var $fixtures; var fixtures;
var $fixture;
var model; var model;
var view; var view;
var hClass = 'hc-state'; var hClass = 'hc-state';
var dcomp; var dcomp;
var compOpts; var compOpts;
before(() => {
$fixtures = $("#fixtures");
$fixture = $('<div class="components-fixture"></div>');
});
beforeEach(() => { beforeEach(() => {
dcomp = new DomComponents(); dcomp = new DomComponents();
compOpts = { compOpts = {
@ -29,36 +23,33 @@ module.exports = {
view = new ComponentView({ view = new ComponentView({
model model
}); });
$fixture.empty().appendTo($fixtures); document.body.innerHTML = '<div id="fixtures"></div>';
$fixture.html(view.render().el); fixtures = document.body.querySelector('#fixtures');
fixtures.appendChild(view.render().el);
}); });
afterEach(() => { afterEach(() => {
view.remove(); view.remove();
}); });
after(() => {
$fixture.remove();
});
it('Component empty', () => { it('Component empty', () => {
expect($fixture.html()).toEqual('<div data-highlightable="1"></div>'); expect(fixtures.innerHTML).toEqual('<div data-highlightable="1"></div>');
}); });
it('Add helper class on update of state', () => { it('Add helper class on update of state', () => {
model.set('state', 'test'); model.set('state', 'test');
expect($fixture.html()).toEqual('<div data-highlightable="1" class="' + hClass + '"></div>'); expect(fixtures.innerHTML).toEqual('<div data-highlightable="1" class="' + hClass + '"></div>');
}); });
it('Clean form helper state', () => { it('Clean form helper state', () => {
model.set('state', 'test'); model.set('state', 'test');
model.set('state', ''); model.set('state', '');
expect($fixture.html()).toEqual('<div data-highlightable="1" class=""></div>'); expect(fixtures.innerHTML).toEqual('<div data-highlightable="1" class=""></div>');
}); });
it('Add helper class on status update', () => { it('Add helper class on status update', () => {
model.set('status', 'selected'); model.set('status', 'selected');
expect($fixture.html()).toEqual('<div data-highlightable="1" class="selected"></div>'); expect(fixtures.innerHTML).toEqual('<div data-highlightable="1" class="selected"></div>');
}); });
it('Get string of classes', () => { it('Get string of classes', () => {
@ -117,6 +108,8 @@ module.exports = {
it('Init with different tag', () => { it('Init with different tag', () => {
model = new Component({ tagName: 'span' }); model = new Component({ tagName: 'span' });
view = new ComponentView({ model }); view = new ComponentView({ model });
fixtures.innerHTML = '';
fixtures.appendChild(view.render().el);
expect(view.render().el.tagName).toEqual('SPAN'); expect(view.render().el.tagName).toEqual('SPAN');
}); });
@ -131,7 +124,9 @@ module.exports = {
model, model,
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}); });
expect(view.render().$el.html()).toEqual('<span data-highlightable="1"></span><div title="test" data-highlightable="1"></div>'); fixtures.innerHTML = '';
fixtures.appendChild(view.render().el);
expect(view.$el.html()).toEqual('<span data-highlightable="1"></span><div title="test" data-highlightable="1"></div>');
}); });
}); });

13
test/specs/dom_components/view/ComponentsView.js

@ -13,11 +13,6 @@ module.exports = {
var dcomp; var dcomp;
var compOpts; var compOpts;
before(() => {
$fixtures = $("#fixtures");
$fixture = $('<div class="components-fixture"></div>');
});
beforeEach(() => { beforeEach(() => {
dcomp = new DomComponents(); dcomp = new DomComponents();
compOpts = { compOpts = {
@ -28,18 +23,14 @@ module.exports = {
collection: model, collection: model,
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}); });
$fixture.empty().appendTo($fixtures); document.body.innerHTML = '<div id="fixtures"></div>';
$fixture.html(view.render().el); document.body.querySelector('#fixtures').appendChild(view.render().el);
}); });
afterEach(() => { afterEach(() => {
view.collection.reset(); view.collection.reset();
}); });
after(() => {
$fixture.remove();
});
it("Collection is empty", () => { it("Collection is empty", () => {
expect(view.$el.html()).toNotExist(); expect(view.$el.html()).toNotExist();
}); });

Loading…
Cancel
Save