import { TestBed } from '@angular/core/testing'; import { UserService } from '@app/_services/user.service'; import {HttpClient} from '@angular/common/http'; import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing'; describe('UserService', () => { let httpClient: HttpClient; let httpTestingController: HttpTestingController; let service: UserService; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule] }); httpClient = TestBed.inject(HttpClient); httpTestingController = TestBed.inject(HttpTestingController); service = TestBed.inject(UserService); }); it('should be created', () => { expect(service).toBeTruthy(); }); it('should return user for available id', () => { expect(service.getAccountById(1)).toEqual({ id: 1, name: 'John Doe', phone: '+25412345678', address: '0xc86ff893ac40d3950b4d5f94a9b837258b0a9865', type: 'user', created: '08/16/2020', balance: '12987', failedPinAttempts: 1, status: 'approved', bio: 'Bodaboda', gender: 'male' }); }); it('should not return user for unavailable id', () => { expect(service.getAccountById(9999999999)).toBeUndefined(); }); it('should return action for available id', () => { expect(service.getActionById('1')).toEqual({ id: 1, user: 'Tom', role: 'enroller', action: 'Disburse RSV 100', approval: false }); }); it('should not return action for unavailable id', () => { expect(service.getActionById('9999999999')).toBeUndefined(); }); it('should switch action approval from false to true', () => { service.approveAction('1'); expect(service.getActionById('1')).toEqual({ id: 1, user: 'Tom', role: 'enroller', action: 'Disburse RSV 100', approval: true }); }); it('should switch action approval from true to false', () => { service.revokeAction('2'); expect(service.getActionById('2')).toEqual({ id: 2, user: 'Christine', role: 'admin', action: 'Change user phone number', approval: false }); }); });