WIP-NG
[examples/angular-tour-of-heroes] / src / app / vorgang / vorgang.component.spec.ts
index 0d41cdf..9e912a8 100644 (file)
@@ -1,19 +1,29 @@
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { provideMockStore, MockStore } from '@ngrx/store/testing';
+import { MemoizedSelector, State } from '@ngrx/store';
 
 import { VorgangComponent } from './vorgang.component';
+import { VorgangService } from '../vorgang.service';
+import { Vorgang } from '../vorgang';
+import Result = jasmine.Result;
+
+class VorgangServiceStub {}
 
 describe('VorgangComponent', () => {
   let component: VorgangComponent;
   let fixture: ComponentFixture<VorgangComponent>;
   let mockStore: MockStore;
+  let mockUsernameSelector: MemoizedSelector<any, Vorgang>;
 
-  const initialState = { vorgang: { counter: 0 } };
+  const initialState = { vorgang: { vorgaenge: [] } };
 
-  beforeEach(async(() => {
+    beforeEach(async(() => {
     TestBed.configureTestingModule({
       declarations: [ VorgangComponent ],
-      providers: [ provideMockStore({ initialState }) ]
+      providers: [
+        provideMockStore({ initialState }),
+        { provide: VorgangService, useClass: VorgangServiceStub }
+      ]
     })
     .compileComponents();
 
@@ -23,6 +33,7 @@ describe('VorgangComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(VorgangComponent);
     component = fixture.componentInstance;
+    mockUsernameSelector = mockStore.overrideSelector('vorgang', Vorgang);
     fixture.detectChanges();
   });
 
@@ -30,10 +41,19 @@ describe('VorgangComponent', () => {
     expect(component).toBeTruthy();
   });
 
-  it('should render vorgang', () => {
-    const fixture = TestBed.createComponent(VorgangComponent);
+  it('should render empty vorgang-list in the beginning', () => {
+    fixture.detectChanges();
+    const compiled = fixture.debugElement.nativeElement;
+    expect(compiled.querySelector('.vorgang-result')).toBeTruthy();
+    expect(compiled.querySelector('.vorgang-result > li')).toBeNull();
+  });
+
+  it('should render new vorgang-list', () => {
+    const vorgang: Vorgang = require('../../mock/vorgang.json');
+    mockStore.set
     fixture.detectChanges();
     const compiled = fixture.debugElement.nativeElement;
-    expect(compiled.querySelector('#vorgang').textContent).toContain('0');
+    expect(compiled.querySelector('.vorgang-result')).toBeTruthy();
+    expect(compiled.querySelector('.vorgang-result > li')).toBeNull();
   });
 });