diff --git a/src/app/error-message/error-message.component.spec.ts b/src/app/error-message/error-message.component.spec.ts index d90c1d5..7b43709 100644 --- a/src/app/error-message/error-message.component.spec.ts +++ b/src/app/error-message/error-message.component.spec.ts @@ -1,25 +1,52 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import {async, ComponentFixture, TestBed} from '@angular/core/testing'; -import { ErrorMessageComponent } from './error-message.component'; +import {ErrorMessageComponent} from './error-message.component'; +import {Component, ViewChild} from '@angular/core'; +import {Step} from '../step'; + +@Component({ + template: '' +}) +class TestHostComponent { + public step: Step = new Step(42); + @ViewChild(ErrorMessageComponent) + public sutComponent: ErrorMessageComponent; +} describe('ErrorMessageComponent', () => { - let component: ErrorMessageComponent; - let fixture: ComponentFixture; + let testHostComponent: TestHostComponent; + let testHostFixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ ErrorMessageComponent ] + declarations: [ + ErrorMessageComponent, + TestHostComponent + ] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(ErrorMessageComponent); - component = fixture.componentInstance; - fixture.detectChanges(); + testHostFixture = TestBed.createComponent(TestHostComponent); + testHostComponent = testHostFixture.componentInstance; + testHostFixture.detectChanges(); }); it('should create', () => { - expect(component).toBeTruthy(); + expect(testHostComponent.sutComponent).toBeTruthy(); + }); + + it('should display an error message', () => { + // arrange + testHostComponent.step.error = true; + testHostComponent.step.message = 'This is an error message'; + + // act + testHostFixture.detectChanges(); + + // assert + expect(testHostComponent.sutComponent.step.error).toBeTruthy(); + expect(testHostComponent.sutComponent.step.message).toEqual('This is an error message'); }); });