aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-login-success
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-03-11 00:07:59 +0800
committercrupest <crupest@outlook.com>2019-03-11 00:07:59 +0800
commit31199282e1ccf72bb464117ae68668aed91e2530 (patch)
tree0dbce8aa1953d06237e80761440ab21172c95db9 /Timeline/ClientApp/src/app/user/user-login-success
parente72a1cc3f98e45aee6eb29d3281118fa8373233f (diff)
downloadtimeline-31199282e1ccf72bb464117ae68668aed91e2530.tar.gz
timeline-31199282e1ccf72bb464117ae68668aed91e2530.tar.bz2
timeline-31199282e1ccf72bb464117ae68668aed91e2530.zip
Write unit tests.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-login-success')
-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();
+ });
});