You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
JavaScript
67 lines
2.0 KiB
JavaScript
import { OpenCageGeocoderService } from "../../Source/Cesium.js";
|
|
import { Resource } from "../../Source/Cesium.js";
|
|
import { when } from "../../Source/Cesium.js";
|
|
|
|
describe("Core/OpenCageGeocoderService", function () {
|
|
var endpoint = "https://api.opencagedata.com/geocode/v1/";
|
|
var apiKey = "c2a490d593b14612aefa6ec2e6b77c47";
|
|
|
|
it("constructor throws without url", function () {
|
|
expect(function () {
|
|
return new OpenCageGeocoderService(undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it("constructor throws without API Key", function () {
|
|
expect(function () {
|
|
return new OpenCageGeocoderService(endpoint, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it("returns geocoder results", function () {
|
|
var service = new OpenCageGeocoderService(endpoint, apiKey);
|
|
|
|
var query = "-22.6792,+14.5272";
|
|
var data = {
|
|
results: [
|
|
{
|
|
bounds: {
|
|
northeast: {
|
|
lat: -22.6790826,
|
|
lng: 14.5269016,
|
|
},
|
|
southwest: {
|
|
lat: -22.6792826,
|
|
lng: 14.5267016,
|
|
},
|
|
},
|
|
formatted: "Beryl's Restaurant, Woermann St, Swakopmund, Namibia",
|
|
geometry: {
|
|
lat: -22.6795394,
|
|
lng: 14.5276006,
|
|
},
|
|
},
|
|
],
|
|
};
|
|
spyOn(Resource.prototype, "fetchJson").and.returnValue(when.resolve(data));
|
|
|
|
return service.geocode(query).then(function (results) {
|
|
expect(results.length).toEqual(1);
|
|
expect(results[0].displayName).toEqual(data.results[0].formatted);
|
|
expect(results[0].destination).toBeDefined();
|
|
});
|
|
});
|
|
|
|
it("returns no geocoder results if OpenCage has no results", function () {
|
|
var service = new OpenCageGeocoderService(endpoint, apiKey);
|
|
|
|
var query = "";
|
|
var data = { results: [] };
|
|
spyOn(Resource.prototype, "fetchJson").and.returnValue(when.resolve(data));
|
|
|
|
return service.geocode(query).then(function (results) {
|
|
expect(results.length).toEqual(0);
|
|
});
|
|
});
|
|
});
|