Skip to content

Commit df60b97

Browse files
Step 2; call processInput in ngOnInit, introduce TestHostComponent
1 parent 2ec4dd4 commit df60b97

2 files changed

Lines changed: 22 additions & 12 deletions

File tree

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
11
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
22

33
import {ComponentUnderTestComponent} from './component-under-test.component';
4+
import {Component} from "@angular/core";
45

56
describe('ComponentUnderTestComponent', () => {
6-
let component: ComponentUnderTestComponent;
7-
let fixture: ComponentFixture<ComponentUnderTestComponent>;
7+
let testHostComponent: TestHostComponent;
8+
let testHostFixture: ComponentFixture<TestHostComponent>;
89

910
beforeEach(async(() => {
1011
TestBed.configureTestingModule({
11-
declarations: [ComponentUnderTestComponent]
12+
declarations: [ComponentUnderTestComponent, TestHostComponent]
1213
})
1314
.compileComponents();
1415
}));
1516

1617
beforeEach(() => {
17-
fixture = TestBed.createComponent(ComponentUnderTestComponent);
18-
component = fixture.componentInstance;
19-
fixture.detectChanges();
18+
testHostFixture = TestBed.createComponent(TestHostComponent);
19+
testHostComponent = testHostFixture.componentInstance;
20+
testHostFixture.detectChanges();
2021
});
2122

2223
it('should be created', () => {
23-
expect(component).toBeTruthy();
24+
expect(testHostComponent).toBeTruthy();
2425
});
2526

2627
it('should show TEST INPUT', () => {
27-
component.input = 'test input';
28-
component.processInput();
29-
fixture.detectChanges();
30-
expect(fixture.nativeElement.querySelector('div').innerText).toEqual('TEST INPUT');
28+
expect(testHostFixture.nativeElement.querySelector('div').innerText).toEqual('TEST INPUT');
3129
});
30+
31+
@Component({
32+
selector: `host-component`,
33+
template: `<component-under-test input="test input"></component-under-test>`
34+
})
35+
class TestHostComponent {
36+
}
3237
});

src/app/component-under-test/component-under-test.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import { Component } from '@angular/core';
22
import {Input} from '@angular/core';
3+
import {OnInit} from "@angular/core";
34

45
@Component({
56
selector: 'component-under-test',
67
template: '<div>{{ input }}</div>'
78
})
8-
export class ComponentUnderTestComponent{
9+
export class ComponentUnderTestComponent implements OnInit{
910

1011
@Input() input;
1112

13+
ngOnInit(){
14+
this.processInput();
15+
}
16+
1217
processInput(): void {
1318
this.input = this.input.toUpperCase();
1419
}

0 commit comments

Comments
 (0)