diff options
Diffstat (limited to 'Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts')
-rw-r--r-- | Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts index 4a2c78f8..8aadd873 100644 --- a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts +++ b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts @@ -1,14 +1,13 @@ import { TestBed } from '@angular/core/testing'; import { HttpRequest } from '@angular/common/http'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; +import { Router } from '@angular/router'; import { UserInfo, UserCredentials } from '../entities'; -import { - InternalUserService, CreateTokenResult, - UserLoginState, TokenValidationRequest, TokenValidationResult -} from './internal-user.service'; +import { CreateTokenRequest, CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse } from './http-entities'; +import { InternalUserService, UserLoginState } from './internal-user.service'; -describe('UserService', () => { +describe('InternalUserService', () => { const tokenCreateUrl = '/api/User/CreateToken'; const mockUserCredentials: UserCredentials = { @@ -17,7 +16,8 @@ describe('UserService', () => { }; beforeEach(() => TestBed.configureTestingModule({ - imports: [HttpClientTestingModule] + imports: [HttpClientTestingModule], + providers: [{ provide: Router, useValue: null }] })); it('should be created', () => { @@ -27,8 +27,9 @@ describe('UserService', () => { it('should be nologin at first', () => { const service: InternalUserService = TestBed.get(InternalUserService); + expect(service.currentUserInfo).toBe(null); service.refreshAndGetUserState().subscribe(result => { - expect(result.state).toBe('nologin'); + expect(result).toBe('nologin'); }); }); @@ -46,14 +47,16 @@ describe('UserService', () => { const httpController = TestBed.get(HttpTestingController) as HttpTestingController; - httpController.expectOne((request: HttpRequest<UserCredentials>) => + httpController.expectOne((request: HttpRequest<CreateTokenRequest>) => request.url === tokenCreateUrl && request.body.username === 'user' && - request.body.password === 'user').flush(<CreateTokenResult>{ + request.body.password === 'user').flush(<CreateTokenResponse>{ token: 'test-token', userInfo: mockUserInfo }); + expect(service.currentUserInfo).toEqual(mockUserInfo); + httpController.verify(); }); @@ -68,7 +71,7 @@ describe('UserService', () => { const mockToken = 'mock-token'; - const tokenValidateRequestMatcher = (req: HttpRequest<TokenValidationRequest>) => { + const tokenValidateRequestMatcher = (req: HttpRequest<ValidateTokenRequest>) => { return req.url === '/api/User/ValidateToken' && req.body.token === mockToken; }; @@ -78,7 +81,7 @@ describe('UserService', () => { service.tryLogin(mockUserCredentials).subscribe(); // subscribe to activate login - httpController.expectOne(tokenCreateUrl).flush(<CreateTokenResult>{ + httpController.expectOne(tokenCreateUrl).flush(<CreateTokenResponse>{ token: mockToken, userInfo: mockUserInfo }); @@ -86,13 +89,10 @@ describe('UserService', () => { it('success should work well', () => { service.refreshAndGetUserState().subscribe((result: UserLoginState) => { - expect(result).toEqual(<UserLoginState>{ - state: 'success', - userInfo: mockUserInfo - }); + expect(result).toEqual(<UserLoginState>'success'); }); - httpController.expectOne(tokenValidateRequestMatcher).flush(<TokenValidationResult>{ + httpController.expectOne(tokenValidateRequestMatcher).flush(<ValidateTokenResponse>{ isValid: true, userInfo: mockUserInfo }); @@ -102,14 +102,10 @@ describe('UserService', () => { it('invalid should work well', () => { service.refreshAndGetUserState().subscribe((result: UserLoginState) => { - expect(result).toEqual(<UserLoginState>{ - state: 'invalidlogin' - }); + expect(result).toEqual(<UserLoginState>'invalidlogin'); }); - httpController.expectOne(tokenValidateRequestMatcher).flush(<TokenValidationResult>{ - isValid: false - }); + httpController.expectOne(tokenValidateRequestMatcher).flush(<ValidateTokenResponse>{ isValid: false }); httpController.verify(); }); |