yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
    );
  });
});