Fixed automatically generated unit-tests
authorKai Moritz <kai@juplo.de>
Fri, 8 May 2020 07:34:23 +0000 (09:34 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 8 May 2020 10:41:44 +0000 (12:41 +0200)
* Invested only minimal efforts
* Only fixed current errors
* (Nearly) no additional tests were added

src/app/app.component.spec.ts
src/app/heroes/heroes.component.spec.ts

index ded94c9..38559f2 100644 (file)
@@ -1,11 +1,20 @@
 import { TestBed, async } from '@angular/core/testing';
 import { AppComponent } from './app.component';
+import { Component } from '@angular/core';
+
+@Component({selector: 'router-outlet', template: ''})
+class RouterOutletStubComponent { }
+
+@Component({selector: 'app-messages', template: ''})
+class MessagesStubComponent {}
 
 describe('AppComponent', () => {
   beforeEach(async(() => {
     TestBed.configureTestingModule({
       declarations: [
-        AppComponent
+        AppComponent,
+        RouterOutletStubComponent,
+        MessagesStubComponent
       ],
     }).compileComponents();
   }));
@@ -16,16 +25,23 @@ describe('AppComponent', () => {
     expect(app).toBeTruthy();
   });
 
-  it(`should have as title 'angular-tour-of-heroes'`, () => {
+  it(`should have as title 'Tour of Heroes'`, () => {
     const fixture = TestBed.createComponent(AppComponent);
     const app = fixture.debugElement.componentInstance;
-    expect(app.title).toEqual('angular-tour-of-heroes');
+    expect(app.title).toEqual('Tour of Heroes');
+  });
+
+  it(`should render the title 'Tour of Heroes'`, () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    fixture.detectChanges();
+    const compiled = fixture.debugElement.nativeElement;
+    expect(compiled.querySelector('h1').textContent).toContain('Tour of Heroes');
   });
 
-  it('should render title', () => {
+  it(`should render the link 'Heroes'`, () => {
     const fixture = TestBed.createComponent(AppComponent);
     fixture.detectChanges();
     const compiled = fixture.debugElement.nativeElement;
-    expect(compiled.querySelector('.content span').textContent).toContain('angular-tour-of-heroes app is running!');
+    expect(compiled.querySelector('nav > a').textContent).toContain('Heroes');
   });
 });
index 66518e4..49cddf7 100644 (file)
@@ -2,13 +2,31 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { HeroesComponent } from './heroes.component';
 
+import { Observable, of } from 'rxjs';
+import { Hero } from '../hero';
+import { HEROES } from '../mock-heroes';
+import { HeroService } from '../hero.service';
+import { MessageService } from '../message.service';
+
+class MockHeroService {
+  getHeroes() : Observable<Hero[]> {
+    return of(HEROES);
+  }
+}
+
+class MockMessageService {}
+
 describe('HeroesComponent', () => {
   let component: HeroesComponent;
   let fixture: ComponentFixture<HeroesComponent>;
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
-      declarations: [ HeroesComponent ]
+      declarations: [ HeroesComponent ],
+      providers: [
+        { provide: HeroService, useClass: MockHeroService },
+        { provide: MessageService, useClass: MockMessageService }
+      ]
     })
     .compileComponents();
   }));