Skip to content

Instantly share code, notes, and snippets.

@vladimir-ivanov
Last active January 22, 2017 22:54
Show Gist options
  • Save vladimir-ivanov/18af58cab2eace6dc0fc to your computer and use it in GitHub Desktop.
Save vladimir-ivanov/18af58cab2eace6dc0fc to your computer and use it in GitHub Desktop.
example of angular2 spec with MockBackend for the Http object - angular2 test
///<reference path="../../../typings/angularjs/angular-mocks.d.ts"/>
import {ObservableRequestService} from '../../../src/core/observable-request-service.ts';
import {
Http,
ConnectionBackend,
BaseRequestOptions,
MockBackend,
ResponseOptions,
Response
} from 'angular2/http';
import {Injector, provide, Observable, Subject} from 'angular2/angular2';
describe('ObservableRequestService', () => {
'use strict';
var service;
var injector;
var backend;
beforeEach(() => {
injector = Injector.resolveAndCreate([
BaseRequestOptions,
MockBackend,
provide(
Http,
{
useFactory: function (backend:ConnectionBackend, defaultOptions:BaseRequestOptions) {
return new Http(backend, defaultOptions);
},
deps: [MockBackend, BaseRequestOptions]
}),
provide(
ObservableRequestService,
{
useFactory: function (http: Http) {
return new ObservableRequestService(http);
},
deps: [Http]
}
)
]);
service = injector.get(ObservableRequestService);
backend = injector.get(MockBackend);
});
afterEach(() => backend.verifyNoPendingRequests());
describe('get()', () => {
describe('success', () => {
it('should return a result from the promise', () => {
var response;
backend.connections.subscribe(c => {
expect(c.request.url).toEqual('/urlHere');
c.mockRespond(new Response(new ResponseOptions({body: {message: 'thank you'}})));
});
service.get('/urlHere').subscribe(data => response = data);
expect(response).toEqual({ message: 'thank you' });
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment