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.
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import { GeocodeType } from "../../Source/Cesium.js";
|
|
import { Ion } from "../../Source/Cesium.js";
|
|
import { IonGeocoderService } from "../../Source/Cesium.js";
|
|
import createScene from "../createScene.js";
|
|
import { when } from "../../Source/Cesium.js";
|
|
|
|
describe("Core/IonGeocoderService", function () {
|
|
var scene;
|
|
beforeEach(function () {
|
|
scene = createScene();
|
|
});
|
|
|
|
afterEach(function () {
|
|
scene.destroyForSpecs();
|
|
});
|
|
|
|
it("Creates with default parameters", function () {
|
|
var service = new IonGeocoderService({ scene: scene });
|
|
|
|
expect(service._accessToken).toEqual(Ion.defaultAccessToken);
|
|
expect(service._server.url).toEqual(Ion.defaultServer.url);
|
|
});
|
|
|
|
it("Creates with specified parameters", function () {
|
|
var accessToken = "123456";
|
|
var server = "http://not.ion.invalid/";
|
|
|
|
var service = new IonGeocoderService({
|
|
accessToken: accessToken,
|
|
server: server,
|
|
scene: scene,
|
|
});
|
|
|
|
expect(service._accessToken).toEqual(accessToken);
|
|
expect(service._server.url).toEqual(server);
|
|
});
|
|
|
|
it("calls inner geocoder and returns result", function () {
|
|
var service = new IonGeocoderService({ scene: scene });
|
|
|
|
var expectedResult = when.resolve();
|
|
spyOn(service._pelias, "geocode").and.returnValue(expectedResult);
|
|
|
|
var query = "some query";
|
|
var result = service.geocode(query, GeocodeType.SEARCH);
|
|
expect(result).toBe(expectedResult);
|
|
expect(service._pelias.geocode).toHaveBeenCalledWith(
|
|
query,
|
|
GeocodeType.SEARCH
|
|
);
|
|
});
|
|
});
|