grapesjs_codeapps
Version:
Free and Open Source Web Builder Framework/SC Modification
71 lines (62 loc) • 1.84 kB
JavaScript
const Trait = require('trait_manager/model/Trait');
const TraitView = require('trait_manager/view/TraitView');
const Component = require('dom_components/model/Component');
module.exports = {
run() {
describe('TraitView', () => {
var obj;
var model;
var modelName = 'title';
var target;
beforeEach(() => {
target = new Component();
model = new Trait({
name: modelName,
target
});
obj = new TraitView({
model
});
});
afterEach(() => {
obj = null;
model = null;
target = null;
});
test('Object exists', () => {
expect(Trait).toBeTruthy();
});
test('Target has no attributes on init', () => {
expect(target.get('attributes')).toEqual({});
});
test('On update of the value updates the target attributes', () => {
model.set('value', 'test');
var eq = {};
eq[modelName] = 'test';
expect(target.get('attributes')).toEqual(eq);
});
test('Updates on different models do not alter other targets', () => {
var target1 = new Component();
var target2 = new Component();
var model1 = new Trait({
name: modelName,
target: target1
});
var model2 = new Trait({
name: modelName,
target: target2
});
var obj1 = new TraitView({ model: model1 });
var obj2 = new TraitView({ model: model2 });
model1.set('value', 'test1');
model2.set('value', 'test2');
var eq1 = {};
eq1[modelName] = 'test1';
var eq2 = {};
eq2[modelName] = 'test2';
expect(target1.get('attributes')).toEqual(eq1);
expect(target2.get('attributes')).toEqual(eq2);
});
});
}
};