aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-login
diff options
context:
space:
mode:
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-login')
-rw-r--r--Timeline/ClientApp/src/app/user/user-login/user-login.component.spec.ts19
-rw-r--r--Timeline/ClientApp/src/app/user/user-login/user-login.component.ts12
2 files changed, 16 insertions, 15 deletions
diff --git a/Timeline/ClientApp/src/app/user/user-login/user-login.component.spec.ts b/Timeline/ClientApp/src/app/user/user-login/user-login.component.spec.ts
index 9c9ee1dc..693d5b6e 100644
--- a/Timeline/ClientApp/src/app/user/user-login/user-login.component.spec.ts
+++ b/Timeline/ClientApp/src/app/user/user-login/user-login.component.spec.ts
@@ -7,7 +7,6 @@ import { ActivatedRoute } from '@angular/router';
import { of, throwError } from 'rxjs';
import { createMockInternalUserService } from '../internal-user-service/internal-user.service.mock';
-import { MockActivatedRoute } from '../../test-utilities/activated-route.mock';
import { UserLoginComponent } from './user-login.component';
import { InternalUserService } from '../internal-user-service/internal-user.service';
import { UserInfo } from '../entities';
@@ -16,17 +15,17 @@ describe('UserLoginComponent', () => {
let component: UserLoginComponent;
let fixture: ComponentFixture<UserLoginComponent>;
let mockInternalUserService: jasmine.SpyObj<InternalUserService>;
- let mockActivatedRoute: MockActivatedRoute;
beforeEach(async(() => {
mockInternalUserService = createMockInternalUserService();
- mockActivatedRoute = new MockActivatedRoute();
+
+ // mock property
+ (<any>mockInternalUserService).currentUserInfo = null;
TestBed.configureTestingModule({
declarations: [UserLoginComponent],
providers: [
- { provide: InternalUserService, useValue: mockInternalUserService },
- { provide: ActivatedRoute, useValue: mockActivatedRoute }
+ { provide: InternalUserService, useValue: mockInternalUserService }
],
imports: [ReactiveFormsModule],
schemas: [NO_ERRORS_SCHEMA]
@@ -77,22 +76,22 @@ describe('UserLoginComponent', () => {
component.onLoginButtonClick();
expect(mockInternalUserService.tryLogin).toHaveBeenCalledWith(mockValue);
- expect(mockInternalUserService.userRouteNavigate).toHaveBeenCalledWith(['success', { reason: 'login' }]);
+ expect(mockInternalUserService.userRouteNavigate).toHaveBeenCalledWith(['success', { fromlogin: 'true' }]);
});
describe('message display', () => {
it('nologin reason should display', () => {
- mockActivatedRoute.pushSnapshotWithParamMap({ reason: 'nologin' });
fixture.detectChanges();
- expect(component.message).toBe('nologin');
+ component.message = 'nologin';
+ fixture.detectChanges();
expect((fixture.debugElement.query(By.css('p.mat-body')).nativeElement as
HTMLParagraphElement).textContent).toBe('You haven\'t login.');
});
it('invalid login reason should display', () => {
- mockActivatedRoute.pushSnapshotWithParamMap({ reason: 'invalidlogin' });
fixture.detectChanges();
- expect(component.message).toBe('invalidlogin');
+ component.message = 'invalidlogin';
+ fixture.detectChanges();
expect((fixture.debugElement.query(By.css('p.mat-body')).nativeElement as
HTMLParagraphElement).textContent).toBe('Your login is no longer valid.');
});
diff --git a/Timeline/ClientApp/src/app/user/user-login/user-login.component.ts b/Timeline/ClientApp/src/app/user/user-login/user-login.component.ts
index 3505d50b..836202de 100644
--- a/Timeline/ClientApp/src/app/user/user-login/user-login.component.ts
+++ b/Timeline/ClientApp/src/app/user/user-login/user-login.component.ts
@@ -1,11 +1,10 @@
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
-import { ActivatedRoute } from '@angular/router';
import { InternalUserService } from '../internal-user-service/internal-user.service';
-export type LoginMessage = 'nologin' | 'invalidlogin' | string | null | undefined;
+export type LoginMessage = 'nologin' | 'invalidlogin' | string | null | undefined;
@Component({
selector: 'app-user-login',
@@ -14,7 +13,7 @@ export type LoginMessage = 'nologin' | 'invalidlogin' | string | null | undefine
})
export class UserLoginComponent implements OnInit {
- constructor(private route: ActivatedRoute, private userService: InternalUserService) { }
+ constructor(private userService: InternalUserService) { }
message: LoginMessage;
@@ -24,12 +23,15 @@ export class UserLoginComponent implements OnInit {
});
ngOnInit() {
- this.message = this.route.snapshot.paramMap.get('reason');
+ if (this.userService.currentUserInfo) {
+ throw new Error('Route error! Already login!');
+ }
+ this.message = 'nologin';
}
onLoginButtonClick() {
this.userService.tryLogin(this.form.value).subscribe(_ => {
- this.userService.userRouteNavigate(['success', { reason: 'login' }]);
+ this.userService.userRouteNavigate(['success', { fromlogin: 'true' }]);
}, (error: Error) => this.message = error.message);
}
}