Add service specs #9

Merged
manuel merged 3 commits from feature/collapsible-intermediate-input into develop 2018-09-07 19:19:56 +02:00
2 changed files with 61 additions and 2 deletions
Showing only changes of commit 56ae9f2acd - Show all commits

View file

@ -1,6 +1,7 @@
import { TestBed, inject } from '@angular/core/testing'; import {inject, TestBed} from '@angular/core/testing';
import { InputComponentManagerService } from './input-component-manager.service'; import {InputComponentManagerService} from './input-component-manager.service';
import {Step} from './step';
describe('InputComponentManagerService', () => { describe('InputComponentManagerService', () => {
beforeEach(() => { beforeEach(() => {
@ -12,4 +13,59 @@ describe('InputComponentManagerService', () => {
it('should be created', inject([InputComponentManagerService], (service: InputComponentManagerService) => { it('should be created', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
expect(service).toBeTruthy(); expect(service).toBeTruthy();
})); }));
it('should create a component if requesting the first one',
inject([InputComponentManagerService], (service: InputComponentManagerService) => {
const firstStep: Step = service.getFirst();
expect(firstStep).toBeTruthy();
expect(service.getFirst()).toBe(firstStep);
expect(service.getAllComponents().length).toEqual(1);
})
);
it('must not add a null Step', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
expect(() => service.register(null)).toThrowError();
expect(service.getAllComponents().length).toEqual(0);
}));
it('must not add an undefined Step', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
expect(() => service.register(undefined)).toThrowError();
expect(service.getAllComponents().length).toEqual(0);
}));
it('should register new Steps', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
service.register(new Step(99));
expect(service.getAllComponents().length).toEqual(1);
service.register(new Step(100));
expect(service.getAllComponents().length).toEqual(2);
}));
it('should return a new step if the next step doesn\'t exist',
inject([InputComponentManagerService], (service: InputComponentManagerService) => {
// arrange
const firstStep: Step = new Step(0);
service.register(firstStep);
// act
const nextStep: Step = service.getNext(firstStep);
// assert
expect(service.getAllComponents().length).toEqual(2);
expect(nextStep.index).toEqual(1);
})
);
it('should return the next step if requested', inject([InputComponentManagerService], (service: InputComponentManagerService) => {
// arrange
const firstStep: Step = new Step(0);
const nextStep: Step = new Step(1);
service.register(firstStep);
service.register(nextStep);
// act
const requestedStep: Step = service.getNext(firstStep);
// assert
expect(service.getAllComponents().length).toEqual(2);
expect(requestedStep).toEqual(nextStep);
}));
}); });

View file

@ -11,6 +11,9 @@ export class InputComponentManagerService {
} }
public register(component: Step): void { public register(component: Step): void {
if (!component) {
throw new Error('component to add must not be empty or undefined');
}
this.components.push(component); this.components.push(component);
} }