/
app.component.spec.ts
46 lines (39 loc) · 1.39 KB
/
app.component.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import {
TestComponentBuilder,
describe,
expect,
injectAsync,
it,
beforeEachProviders
} from 'angular2/testing';
import {Component, View, provide, DirectiveResolver} from 'angular2/core';
import {Location, Router, RouteRegistry, ROUTER_PRIMARY_COMPONENT} from 'angular2/router';
import {SpyLocation} from 'angular2/src/mock/location_mock';
import {RootRouter} from 'angular2/src/router/router';
import {DOM} from 'angular2/src/platform/dom/dom_adapter';
import {AppComponent} from './app';
export function main() {
describe('App Component', () => {
// Support for testing component that uses Router
beforeEachProviders(() => [
RouteRegistry,
DirectiveResolver,
provide(Location, {useClass: SpyLocation}),
provide(ROUTER_PRIMARY_COMPONENT, {useValue: AppComponent}),
provide(Router, {useClass: RootRouter})
]);
it('should work',
injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.overrideTemplate(TestComponent, '<div><app></app></div>')
.createAsync(TestComponent)
.then((rootTC) => {
rootTC.detectChanges();
let appDOMEl = rootTC.debugElement.children[0].nativeElement;
expect(DOM.querySelectorAll(appDOMEl, 'app')[0]).toBeDefined();
});
}));
});
}
@Component({selector: 'test-cmp'})
@View({directives: [AppComponent]})
class TestComponent {}