diff options
| author | crupest <crupest@outlook.com> | 2019-03-11 00:07:59 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2019-03-11 00:07:59 +0800 | 
| commit | 31199282e1ccf72bb464117ae68668aed91e2530 (patch) | |
| tree | 0dbce8aa1953d06237e80761440ab21172c95db9 /Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts | |
| parent | e72a1cc3f98e45aee6eb29d3281118fa8373233f (diff) | |
| download | timeline-31199282e1ccf72bb464117ae68668aed91e2530.tar.gz timeline-31199282e1ccf72bb464117ae68668aed91e2530.tar.bz2 timeline-31199282e1ccf72bb464117ae68668aed91e2530.zip  | |
Write unit tests.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts')
| -rw-r--r-- | Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts | 40 | 
1 files changed, 35 insertions, 5 deletions
diff --git a/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts b/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts index ba015ae6..1efbb5c7 100644 --- a/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts +++ b/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts @@ -1,20 +1,39 @@  import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { ActivatedRoute } from '@angular/router'; + +import { MockActivatedRoute } from 'src/app/test-utilities/activated-route.mock'; +import { createMockInternalUserService } from '../internal-user-service/internal-user.service.mock';  import { UserLoginSuccessComponent } from './user-login-success.component'; -import { By } from '@angular/platform-browser'; +import { InternalUserService } from '../internal-user-service/internal-user.service'; +  describe('UserLoginSuccessComponent', () => {    let component: UserLoginSuccessComponent;    let fixture: ComponentFixture<UserLoginSuccessComponent>; +  let mockInternalUserService: jasmine.SpyObj<InternalUserService>; +  let mockActivatedRoute: MockActivatedRoute; +    const mockUserInfo = {      username: 'crupest',      roles: ['superman', 'coder']    };    beforeEach(async(() => { +    mockInternalUserService = createMockInternalUserService(); +    mockActivatedRoute = new MockActivatedRoute(); + +    // mock currentUserInfo property. because it only has a getter so cast it to any first. +    (<any>mockInternalUserService).currentUserInfo = mockUserInfo; +      TestBed.configureTestingModule({ -      declarations: [UserLoginSuccessComponent] +      declarations: [UserLoginSuccessComponent], +      providers: [ +        { provide: InternalUserService, useValue: mockInternalUserService }, +        { provide: ActivatedRoute, useValue: mockActivatedRoute } +      ]      })        .compileComponents();    })); @@ -22,18 +41,29 @@ describe('UserLoginSuccessComponent', () => {    beforeEach(() => {      fixture = TestBed.createComponent(UserLoginSuccessComponent);      component = fixture.componentInstance; -    component.userInfo = mockUserInfo; -    fixture.detectChanges();    });    it('should create', () => { +    fixture.detectChanges();      expect(component).toBeTruthy();    }); -  it('should work well', () => { +  it('user info should work well', () => { +    fixture.detectChanges(); + +    expect((fixture.debugElement.query(By.css('p.login-success-message')))).toBeFalsy(); +      expect((fixture.debugElement.query(By.css('span.username')).nativeElement as HTMLSpanElement).textContent)        .toBe(mockUserInfo.username);      expect((fixture.debugElement.query(By.css('span.roles')).nativeElement as HTMLSpanElement).textContent)        .toBe(mockUserInfo.roles.join(', '));    }); + +  it('login success message should display well', () => { +    mockActivatedRoute.pushSnapshotWithParamMap({ reason: 'login' }); + +    fixture.detectChanges(); + +    expect((fixture.debugElement.query(By.css('p.login-success-message')))).toBeTruthy(); +  });  });  | 
