import {inject, TestBed} from '@angular/core/testing'; import {BaseRequestOptions, Http} from '@angular/http'; import {MockBackend} from '@angular/http/testing'; import 'rxjs/Rx'; import {NetworkService} from './network.service'; import {UserService} from './user.service'; import {LoginCredential} from '../../../../common/entities/LoginCredential'; describe('UserService', () => { beforeEach(() => { TestBed.configureTestingModule({ providers: [ MockBackend, BaseRequestOptions, { provide: Http, useFactory: (backend, options) => { return new Http(backend, options); }, deps: [MockBackend, BaseRequestOptions] }, NetworkService, UserService] }); it('should call postJson at login', inject([UserService, NetworkService], (userService, networkService) => { spyOn(networkService, 'postJson'); const credential = new LoginCredential('name', 'pass'); userService.login(credential); expect(networkService.postJson).toHaveBeenCalled(); expect(networkService.postJson.calls.argsFor(0)).toEqual(['/user/login', {'loginCredential': credential}]); })); it('should call getJson at getSessionUser', inject([UserService, NetworkService], (userService, networkService) => { spyOn(networkService, 'getJson'); userService.getSessionUser(); expect(networkService.getJson).toHaveBeenCalled(); expect(networkService.getJson.calls.argsFor(0)).toEqual(['/user/login']); })); }); });