
- updates tests - heavy prose revisions - uses HttpClient (with angular-in-memory-web-api) - test HeroService using `HttpClientTestingModule` - scrub away most By.CSS - fake async observable with `asyncData()` - extensive Twain work - different take on retryWhen - remove app barrels (& systemjs.extras) which troubled plunker/systemjs - add dummy export const to hero.ts (plunkr/systemjs fails w/o it) - shrink and re-organize TOC - add marble testing package and tests - demonstrate the "no beforeEach()" test coding style - add section on Http service testing - prepare for stackblitz - confirm works in plunker except excluded marble test - add tests for avoidFile class feature of CodeExampleComponent PR Close #20697
77 lines
2.0 KiB
TypeScript
77 lines
2.0 KiB
TypeScript
// #docplaster
|
|
// #docregion
|
|
import { TestBed, async } from '@angular/core/testing';
|
|
// #enddocregion
|
|
import { AppComponent } from './app-initial.component';
|
|
/*
|
|
// #docregion
|
|
import { AppComponent } from './app.component';
|
|
|
|
describe('AppComponent', () => {
|
|
// #enddocregion
|
|
*/
|
|
describe('AppComponent (initial CLI version)', () => {
|
|
// #docregion
|
|
beforeEach(async(() => {
|
|
TestBed.configureTestingModule({
|
|
declarations: [
|
|
AppComponent
|
|
],
|
|
}).compileComponents();
|
|
}));
|
|
it('should create the app', async(() => {
|
|
const fixture = TestBed.createComponent(AppComponent);
|
|
const app = fixture.debugElement.componentInstance;
|
|
expect(app).toBeTruthy();
|
|
}));
|
|
it(`should have as title 'app'`, async(() => {
|
|
const fixture = TestBed.createComponent(AppComponent);
|
|
const app = fixture.debugElement.componentInstance;
|
|
expect(app.title).toEqual('app');
|
|
}));
|
|
it('should render title in a h1 tag', async(() => {
|
|
const fixture = TestBed.createComponent(AppComponent);
|
|
fixture.detectChanges();
|
|
const compiled = fixture.nativeElement;
|
|
expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!');
|
|
}));
|
|
});
|
|
// #enddocregion
|
|
|
|
/// As it should be
|
|
import { DebugElement } from '@angular/core';
|
|
import { ComponentFixture } from '@angular/core/testing';
|
|
|
|
describe('AppComponent (initial CLI version - as it should be)', () => {
|
|
|
|
let app: AppComponent;
|
|
let de: DebugElement;
|
|
let fixture: ComponentFixture<AppComponent>;
|
|
|
|
beforeEach(() => {
|
|
TestBed.configureTestingModule({
|
|
declarations: [
|
|
AppComponent
|
|
],
|
|
});
|
|
|
|
fixture = TestBed.createComponent(AppComponent);
|
|
app = fixture.componentInstance;
|
|
de = fixture.debugElement;
|
|
});
|
|
|
|
it('should create the app', () => {
|
|
expect(app).toBeDefined();
|
|
});
|
|
|
|
it(`should have as title 'app'`, () => {
|
|
expect(app.title).toEqual('app');
|
|
});
|
|
|
|
it('should render title in an h1 tag', () => {
|
|
fixture.detectChanges();
|
|
expect(de.nativeElement.querySelector('h1').textContent)
|
|
.toContain('Welcome to app!');
|
|
});
|
|
});
|