Я сталкиваюсь с проблемой при вызове фиктивного сервиса внутри функции beforeEach.
Чтобы получить токен доступа из логина, мне нужно запустить этот фиктивный сервис для всех функций в файле спецификации, чтобы мы могли заставить его запускаться упорядоченно.
beforeEach(inject([LoginService, MockBackend], (Service: LoginService, mockBackend: MockBackend) => {
loginService = Service;
backend = mockBackend;
it('#login should call endpoint and return it\'s result', (done) => {
backend.connections.subscribe((connection: MockConnection) => {
const options = new ResponseOptions({
body: JSON.stringify({ success: true })
});
connection.mockRespond(new Response(options));
// Check the request headers
expect(connection.request.headers.get('Content-Type')).toEqual('application/json');
});
loginService.login('new', 'secret')
.subscribe((response) => {
sessionStorage.setItem('token', JSON.stringify(response.token));
done();
fixture = TestBed.createComponent(DashboardComponent);
router.initialNavigation();
component = fixture.componentInstance;
fixture.detectChanges();
},
(error) => {
expect(error).toThrowError();
});
});
}));