apollodec/Apollo/bower_components/ngmap/spec/services/geo_coder_spec.js
venbatechnologies@gmail.com d06b1c0cba status file
2017-12-07 11:31:25 +05:30

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');
});
});
});