first commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
var mapboxGeocoder = require('../../../../src/geo/geocoder/mapbox-geocoder');
|
||||
var TOKEN = 'fake_token';
|
||||
describe('mapbox-geocoder', function () {
|
||||
describe('.geocode', function () {
|
||||
it('should build the right fetch url (add address and access_token)', function (done) {
|
||||
spyOn(window, 'fetch').and.returnValue(Promise.resolve({ json: function () { return require('./mapbox-geocoder-response-0'); } }));
|
||||
mapboxGeocoder.geocode('fake_address', TOKEN).then(function (result) {
|
||||
var expectedFetchUrl = 'https://api.mapbox.com/geocoding/v5/mapbox.places-permanent/fake_address.json?access_token=fake_token';
|
||||
expect(window.fetch).toHaveBeenCalledWith(expectedFetchUrl);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should geocode a city location', function (done) {
|
||||
spyOn(window, 'fetch').and.returnValue(Promise.resolve({ json: function () { return require('./mapbox-geocoder-response-0'); } }));
|
||||
mapboxGeocoder.geocode('Vigo', TOKEN)
|
||||
.then(function (results) {
|
||||
expect(results).toBeDefined();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a well formated response [example 0]', function (done) {
|
||||
spyOn(window, 'fetch').and.returnValue(Promise.resolve({ json: function () { return require('./mapbox-geocoder-response-0'); } }));
|
||||
mapboxGeocoder.geocode('Vigo', TOKEN)
|
||||
.then(function (result) {
|
||||
result = result[0];
|
||||
expect(result.center).toBeDefined();
|
||||
expect(result.center[0]).toEqual(34.0544);
|
||||
expect(result.center[1]).toEqual(-118.2439);
|
||||
// Bbox
|
||||
expect(result.boundingbox.south).toEqual(-118.529221009603);
|
||||
expect(result.boundingbox.west).toEqual(33.901599990108);
|
||||
expect(result.boundingbox.north).toEqual(-118.121099990025);
|
||||
expect(result.boundingbox.east).toEqual(34.1612200099034);
|
||||
// Type
|
||||
expect(result.type).toEqual('venue');
|
||||
done();
|
||||
}).catch(console.error);
|
||||
});
|
||||
|
||||
it('should return a well formated response when the response has no bbox [example 1]', function (done) {
|
||||
spyOn(window, 'fetch').and.returnValue(Promise.resolve({ json: function () { return require('./mapbox-geocoder-response-1'); } }));
|
||||
mapboxGeocoder.geocode('Plaza de Barcelos', TOKEN)
|
||||
.then(function (result) {
|
||||
result = result[0];
|
||||
expect(result.center).toBeDefined();
|
||||
expect(result.center[0]).toEqual(47.920347);
|
||||
expect(result.center[1]).toEqual(9.754478);
|
||||
// Bbox
|
||||
expect(result.bbox).toBeUndefined();
|
||||
// Type
|
||||
expect(result.type).toEqual('venue');
|
||||
done();
|
||||
}).catch(console.error);
|
||||
});
|
||||
|
||||
it('should return an empty array when the response is empty', function (done) {
|
||||
spyOn(window, 'fetch').and.returnValue(Promise.resolve({ json: function () { return { features: [] }; } }));
|
||||
mapboxGeocoder.geocode('Vigo', TOKEN)
|
||||
.then(function (result) {
|
||||
expect(result).toEqual([]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user