Code owners
Assign users and groups as approvers for specific file changes. Learn more.
unit-state.service.spec.ts 5.05 KiB
import { TestBed } from '@angular/core/testing';
import { ElementCode } from 'player/modules/verona/models/verona';
import { UnitStateService } from './unit-state.service';
describe('UnitStateService', () => {
let service: UnitStateService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(UnitStateService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
it('should get element by id', () => {
const element1: ElementCode = { id: 'element_1', status: 'DISPLAYED', value: 'TEST1' };
const element2: ElementCode = { id: 'element_2', status: 'DISPLAYED', value: 'TEST2' };
service.elementCodes = [element1, element2];
expect(service.getElementCodeById('element_1')).toEqual(element1);
});
it('should return undefined for a not registered element id', () => {
const element1: ElementCode = { id: 'element_1', status: 'DISPLAYED', value: 'TEST1' };
const element2: ElementCode = { id: 'element_2', status: 'DISPLAYED', value: 'TEST2' };
service.elementCodes = [element1, element2];
expect(service.getElementCodeById('element_3')).toBeUndefined();
});
it('should register an element', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element', 'TEST', element, 1);
expect(service.elementCodes).toEqual([{ id: 'element', status: 'NOT_REACHED', value: 'TEST' }]);
});
it('elementCode of an element should change', done => {
service.elementCodes = [{ id: 'element_1', status: 'NOT_REACHED', value: 'TEST1' }];
service.elementCodeChanged
.subscribe(code => {
expect(code.status).toEqual('DISPLAYED');
done();
});
service.changeElementCodeStatus({ id: 'element_1', status: 'DISPLAYED' });
});
it('elementCode of an element should change', done => {
service.elementCodes = [{ id: 'element_1', status: 'NOT_REACHED', value: 'TEST1' }];
service.elementCodeChanged
.subscribe(code => {
expect(code.status).toEqual('VALUE_CHANGED');
expect(code.value).toEqual('NEU');
done();
});
service.changeElementCodeValue({ id: 'element_1', value: 'NEU' });
});
it('presentedPagesProgress should be complete', () => {
service.elementCodes = [];
expect(service.presentedPagesProgress).toEqual('complete');
});
it('presentedPagesProgress should be none', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element', 'TEST', element, 1);
expect(service.presentedPagesProgress).toEqual('none');
});
it('presentedPagesProgress should be complete', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element', 'TEST', element, 1);
service.changeElementCodeStatus({ id: 'element', status: 'DISPLAYED' });
expect(service.presentedPagesProgress).toEqual('complete');
});
it('presentedPagesProgress should be none', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element_1', 'TEST1', element, 1);
service.registerElementCode('element_2', 'TEST2', element, 1);
service.changeElementCodeStatus({ id: 'element_1', status: 'DISPLAYED' });
expect(service.presentedPagesProgress).toEqual('none');
});
it('presentedPagesProgress should be some', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element_1', 'TEST1', element, 1);
service.registerElementCode('element_2', 'TEST2', element, 2);
service.changeElementCodeStatus({ id: 'element_1', status: 'DISPLAYED' });
expect(service.presentedPagesProgress).toEqual('some');
});
it('presentedPagesProgress should be complete', () => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element_1', 'TEST1', element, 1);
service.registerElementCode('element_2', 'TEST2', element, 2);
service.changeElementCodeStatus({ id: 'element_1', status: 'DISPLAYED' });
service.changeElementCodeStatus({ id: 'element_2', status: 'DISPLAYED' });
expect(service.presentedPagesProgress).toEqual('complete');
});
it('presented page with index 1 should be added', done => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element_1', 'TEST1', element, 1);
service.pagePresented
.subscribe(index => {
expect(index).toEqual(1);
done();
});
service.changeElementCodeStatus({ id: 'element_1', status: 'DISPLAYED' });
});
it('presented page with index 1 should be added', done => {
service.elementCodes = [];
const element = document.createElement('div');
service.registerElementCode('element_1', 'TEST1', element, 1);
service.pagePresented
.subscribe(index => {
expect(index).toEqual(1);
done();
});
service.changeElementCodeValue({ id: 'element_1', value: 'NEU' });
});
});