43 lines
1.6 KiB
JavaScript
Executable File
43 lines
1.6 KiB
JavaScript
Executable File
/* global google, jasmine */
|
|
describe('GeoCoder', function () {
|
|
var scope, geoCoder;
|
|
|
|
beforeEach(module('ngMap'));
|
|
beforeEach(inject(function ($rootScope, GeoCoder) {
|
|
scope = $rootScope, geoCoder = GeoCoder;
|
|
google.maps.Geocoder = jasmine.createSpy();
|
|
}));
|
|
|
|
describe('geocode function', function () {
|
|
|
|
it('Should return a promise', function () {
|
|
var GoodResponse = function (params, callback) { callback('GOOD', 'OK'); };
|
|
google.maps.Geocoder.prototype.geocode = jasmine.createSpy().andCallFake(GoodResponse);
|
|
var promise = geoCoder.geocode('Canada');
|
|
expect(typeof promise.then).toBe('function');
|
|
});
|
|
|
|
it('Should call geocoder.geocode to retrieve good results', function () {
|
|
var GoodResponse = function (params, callback) { callback('GOOD', 'OK'); };
|
|
google.maps.Geocoder.prototype.geocode = jasmine.createSpy().andCallFake(GoodResponse);
|
|
var okMock = jasmine.createSpy();
|
|
geoCoder.geocode('Canada').then(okMock);
|
|
scope.$apply();
|
|
expect(okMock).toHaveBeenCalledWith('GOOD');
|
|
});
|
|
|
|
it('Should call geocoder.geocode to retrieve bad results', function () {
|
|
var BadResponse = function (params, callback) { callback('BAD', 'ERROR'); };
|
|
google.maps.Geocoder.prototype.geocode = jasmine.createSpy().andCallFake(BadResponse);
|
|
var okMock = jasmine.createSpy();
|
|
var errorMock = jasmine.createSpy();
|
|
geoCoder.geocode('Canada').then(okMock, errorMock);
|
|
scope.$apply();
|
|
expect(okMock).not.toHaveBeenCalled();
|
|
expect(errorMock).toHaveBeenCalledWith('Geocoder failed due to: ERROR');
|
|
});
|
|
|
|
});
|
|
|
|
});
|