aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-03-11 19:52:29 +0800
committerGitHub <noreply@github.com>2019-03-11 19:52:29 +0800
commit6f02dc7094d1304501e7ffd6c39ecf89369202c7 (patch)
treed031e2d14933574de04c892accb59560bdbea395 /Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.spec.ts
parent028af6f786ac2664d301614d57bbff053c3dc9c0 (diff)
parent5d1d884635713278a792f99bb32cbe6d7471b0df (diff)
downloadtimeline-6f02dc7094d1304501e7ffd6c39ecf89369202c7.tar.gz
timeline-6f02dc7094d1304501e7ffd6c39ecf89369202c7.tar.bz2
timeline-6f02dc7094d1304501e7ffd6c39ecf89369202c7.zip
Merge pull request #11 from crupest/7-user-route
Use named route in user dialog.
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.ts40
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();
+ });
});