aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts')
-rw-r--r--Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts119
1 files changed, 0 insertions, 119 deletions
diff --git a/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts b/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts
deleted file mode 100644
index 9effe000..00000000
--- a/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-import { HttpRequest } from '@angular/common/http';
-import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
-
-import { UserInfo, UserCredentials } from '../entities';
-import {
- UserService, CreateTokenResult,
- UserLoginState, TokenValidationRequest, TokenValidationResult
-} from './user.service';
-
-describe('UserService', () => {
- const tokenCreateUrl = '/api/User/CreateToken';
-
- const mockUserCredentials: UserCredentials = {
- username: 'user',
- password: 'user'
- };
-
- beforeEach(() => TestBed.configureTestingModule({
- imports: [HttpClientTestingModule]
- }));
-
- it('should be created', () => {
- const service: UserService = TestBed.get(UserService);
- expect(service).toBeTruthy();
- });
-
- it('should be nologin at first', () => {
- const service: UserService = TestBed.get(UserService);
- service.validateUserLoginState().subscribe(result => {
- expect(result.state).toBe('nologin');
- });
- });
-
- it('login should work well', () => {
- const service: UserService = TestBed.get(UserService);
-
- const mockUserInfo: UserInfo = {
- username: 'user',
- roles: ['user', 'other']
- };
-
- service.tryLogin(mockUserCredentials).subscribe(result => {
- expect(result).toEqual(mockUserInfo);
- });
-
- const httpController = TestBed.get(HttpTestingController) as HttpTestingController;
-
- httpController.expectOne((request: HttpRequest<UserCredentials>) =>
- request.url === tokenCreateUrl &&
- request.body.username === 'user' &&
- request.body.password === 'user').flush(<CreateTokenResult>{
- token: 'test-token',
- userInfo: mockUserInfo
- });
-
- httpController.verify();
- });
-
- describe('validateUserLoginState', () => {
- let service: UserService;
- let httpController: HttpTestingController;
-
- const mockUserInfo: UserInfo = {
- username: 'user',
- roles: ['user', 'other']
- };
-
- const mockToken = 'mock-token';
-
- const tokenValidateRequestMatcher = (req: HttpRequest<TokenValidationRequest>) => {
- return req.url === '/api/User/ValidateToken' && req.body.token === mockToken;
- };
-
- beforeEach(() => {
- service = TestBed.get(UserService);
- httpController = TestBed.get(HttpTestingController);
-
- service.tryLogin(mockUserCredentials).subscribe(); // subscribe to activate login
-
- httpController.expectOne(tokenCreateUrl).flush(<CreateTokenResult>{
- token: mockToken,
- userInfo: mockUserInfo
- });
- });
-
- it('success should work well', () => {
- service.validateUserLoginState().subscribe((result: UserLoginState) => {
- expect(result).toEqual(<UserLoginState>{
- state: 'success',
- userInfo: mockUserInfo
- });
- });
-
- httpController.expectOne(tokenValidateRequestMatcher).flush(<TokenValidationResult>{
- isValid: true,
- userInfo: mockUserInfo
- });
-
- httpController.verify();
- });
-
- it('invalid should work well', () => {
- service.validateUserLoginState().subscribe((result: UserLoginState) => {
- expect(result).toEqual(<UserLoginState>{
- state: 'invalidlogin'
- });
- });
-
- httpController.expectOne(tokenValidateRequestMatcher).flush(<TokenValidationResult>{
- isValid: false
- });
-
- httpController.verify();
- });
- });
-
- // TODO: test on error situations.
-});