blob: 4f7185961759e6bb74879a4702a68c8e76b99a80 [file] [log] [blame]
define(['state'], function (stateClass) {
describe('KorAP.State', function () {
it('should be initializable', function () {
let s = stateClass.create();
expect(s.get()).toBeFalsy();
s = stateClass.create(true);
expect(s.get()).toBeTruthy();
});
it('should be settable and gettable', function () {
let s = stateClass.create();
expect(s.get()).toBeFalsy();
s.set(true);
expect(s.get()).toBeTruthy();
});
it('should be associatable', function () {
let s = stateClass.create();
// Create
let obj1 = {
x : false,
setState : function (value) {
this.x = value;
}
};
// Create
let obj2 = {
x : true,
setState : function (value) {
this.x = value;
}
};
expect(s.associates()).toEqual(0);
expect(s.get()).toBeFalsy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeTruthy();
// Associate object with state
s.associate(obj1);
expect(s.associates()).toEqual(1);
s.associate(obj2);
expect(s.associates()).toEqual(2);
expect(s.get()).toBeFalsy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeFalsy();
s.set(true);
expect(s.get()).toBeTruthy();
expect(obj1.x).toBeTruthy();
expect(obj2.x).toBeTruthy();
});
it('should be clearable', function () {
let s = stateClass.create();
// Create
let obj1 = {
x : false,
setState : function (value) {
this.x = value;
}
};
// Create
let obj2 = {
x : true,
setState : function (value) {
this.x = value;
}
};
expect(s.associates()).toEqual(0);
expect(s.get()).toBeFalsy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeTruthy();
// Associate object with state
s.associate(obj1);
expect(s.associates()).toEqual(1);
s.associate(obj2);
expect(s.associates()).toEqual(2);
expect(s.get()).toBeFalsy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeFalsy();
s.clear();
s.set(true);
expect(s.get()).toBeTruthy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeFalsy();
s.set(false);
expect(s.get()).toBeFalsy();
expect(obj1.x).toBeFalsy();
expect(obj2.x).toBeFalsy();
});
});
});