Free and Open source Web Builder Framework. Next generation tool for building templates without coding
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

68 lines
1.7 KiB

import Trait from '../../../../src/trait_manager/model/Trait';
import TraitView from '../../../../src/trait_manager/view/TraitView';
import Component from '../../../../src/dom_components/model/Component';
import EditorModel from '../../../../src/editor/model/Editor';
import Editor from '../../../../src/editor';
describe('TraitView', () => {
var obj: TraitView;
var trait: Trait;
var modelName = 'title';
var target: Component;
var em: EditorModel;
beforeEach(() => {
em = new Editor().getModel();
target = new Component();
trait = new Trait(
{
name: modelName,
target,
},
em
);
obj = new TraitView({
model: trait,
});
});
afterEach(() => {});
test('Target has no attributes on init', () => {
expect(target.get('attributes')).toEqual({});
});
test('On update of the value updates the target attributes', () => {
trait.set('value', 'test');
var 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 trait1 = new Trait(
{
name: modelName,
target: target1,
},
em
);
var trait2 = new Trait(
{
name: modelName,
target: target2,
},
em
);
var obj1 = new TraitView({ model: trait1 });
var obj2 = new TraitView({ model: trait2 });
trait1.set('value', 'test1');
trait2.set('value', 'test2');
var eq1 = { [modelName]: 'test1' };
var eq2 = { [modelName]: 'test2' };
expect(target1.get('attributes')).toEqual(eq1);
expect(target2.get('attributes')).toEqual(eq2);
});
});