mobility-toolbox-js 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/api/RealtimeAPI.d.ts +279 -0
  2. package/api/RealtimeAPI.d.ts.map +1 -0
  3. package/api/RealtimeAPI.js +466 -0
  4. package/api/RoutingAPI.d.ts +37 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/RoutingAPI.js +35 -0
  7. package/api/StopsAPI.d.ts +38 -0
  8. package/api/StopsAPI.d.ts.map +1 -0
  9. package/api/StopsAPI.js +36 -0
  10. package/api/index.d.ts +4 -0
  11. package/api/index.d.ts.map +1 -0
  12. package/api/index.js +3 -3
  13. package/api/typedefs.d.ts +179 -0
  14. package/api/typedefs.d.ts.map +1 -0
  15. package/api/{tralis/typedefs.js → typedefs.js} +4 -10
  16. package/common/api/HttpAPI.d.ts +31 -0
  17. package/common/api/HttpAPI.d.ts.map +1 -0
  18. package/common/api/HttpAPI.js +57 -0
  19. package/common/api/WebSocketAPI.d.ts +153 -0
  20. package/common/api/WebSocketAPI.d.ts.map +1 -0
  21. package/common/api/WebSocketAPI.js +341 -0
  22. package/common/controls/ControlCommon.d.ts +76 -0
  23. package/common/controls/ControlCommon.d.ts.map +1 -0
  24. package/common/controls/ControlCommon.js +150 -0
  25. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  26. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  27. package/common/controls/CopyrightControlCommon.js +34 -0
  28. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  29. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  30. package/common/controls/StopFinderControlCommon.js +144 -0
  31. package/common/index.d.ts +3 -0
  32. package/common/index.d.ts.map +1 -0
  33. package/common/index.js +2 -0
  34. package/common/layers/LayerCommon.d.ts +94 -0
  35. package/common/layers/LayerCommon.d.ts.map +1 -0
  36. package/common/layers/LayerCommon.js +244 -0
  37. package/common/mixins/RealtimeLayerMixin.d.ts +286 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  39. package/common/mixins/RealtimeLayerMixin.js +776 -0
  40. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  41. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  42. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  43. package/common/styles/index.d.ts +5 -0
  44. package/common/styles/index.d.ts.map +1 -0
  45. package/common/styles/index.js +4 -4
  46. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  47. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  48. package/common/styles/realtimeDefaultStyle.js +275 -0
  49. package/common/styles/{trackerDelayStyle.js → realtimeDelayStyle.d.ts} +4 -9
  50. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  51. package/common/styles/realtimeDelayStyle.js +13 -0
  52. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  53. package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
  54. package/common/styles/realtimeHeadingStyle.js +85 -0
  55. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  56. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  57. package/common/styles/realtimeSimpleStyle.js +23 -0
  58. package/common/typedefs.d.ts +111 -0
  59. package/common/typedefs.d.ts.map +1 -0
  60. package/common/typedefs.js +35 -6
  61. package/common/utils/compareDepartures.d.ts +11 -0
  62. package/common/utils/compareDepartures.d.ts.map +1 -0
  63. package/common/utils/compareDepartures.js +35 -0
  64. package/common/utils/createCanvas.d.ts +10 -0
  65. package/common/utils/createCanvas.d.ts.map +1 -0
  66. package/common/utils/createCanvas.js +27 -0
  67. package/common/utils/createRealtimeFilters.d.ts +13 -0
  68. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  69. package/common/utils/createRealtimeFilters.js +74 -0
  70. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  71. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  72. package/common/utils/debounceDeparturesMessages.js +24 -0
  73. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  74. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  75. package/common/utils/debounceWebsocketMessages.js +29 -0
  76. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  77. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  78. package/common/utils/getLayersAsFlatArray.js +15 -0
  79. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  80. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  81. package/common/utils/getMapboxMapCopyrights.js +21 -23
  82. package/common/utils/getMapboxRender.d.ts +7 -0
  83. package/common/utils/getMapboxRender.d.ts.map +1 -0
  84. package/common/utils/getMapboxRender.js +87 -0
  85. package/common/utils/getMaplibreRender.d.ts +7 -0
  86. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  87. package/common/utils/getMaplibreRender.js +38 -0
  88. package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
  89. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  90. package/common/utils/getRealtimeModeSuffix.js +7 -0
  91. package/common/utils/getUrlWithParams.d.ts +9 -0
  92. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  93. package/common/utils/getUrlWithParams.js +18 -0
  94. package/common/utils/getVehiclePosition.d.ts +16 -0
  95. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  96. package/common/utils/getVehiclePosition.js +60 -60
  97. package/common/utils/index.d.ts +17 -0
  98. package/common/utils/index.d.ts.map +1 -0
  99. package/common/utils/index.js +13 -2
  100. package/common/utils/realtimeConfig.d.ts +49 -0
  101. package/common/utils/realtimeConfig.d.ts.map +1 -0
  102. package/common/utils/realtimeConfig.js +173 -0
  103. package/common/utils/removeDuplicate.d.ts +10 -0
  104. package/common/utils/removeDuplicate.d.ts.map +1 -0
  105. package/common/utils/removeDuplicate.js +5 -12
  106. package/common/utils/renderTrajectories.d.ts +17 -0
  107. package/common/utils/renderTrajectories.d.ts.map +1 -0
  108. package/common/utils/renderTrajectories.js +110 -0
  109. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  110. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  111. package/common/utils/sortAndFilterDepartures.js +58 -0
  112. package/common/utils/sortByDelay.d.ts +3 -0
  113. package/common/utils/sortByDelay.d.ts.map +1 -0
  114. package/common/utils/sortByDelay.js +17 -20
  115. package/common/utils/timeUtils.d.ts +24 -0
  116. package/common/utils/timeUtils.d.ts.map +1 -0
  117. package/common/utils/timeUtils.js +13 -18
  118. package/iife.d.ts +3 -0
  119. package/iife.d.ts.map +1 -0
  120. package/iife.js +5 -0
  121. package/index.d.ts +10 -0
  122. package/index.d.ts.map +1 -0
  123. package/index.js +10 -2
  124. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  125. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  126. package/mapbox/controls/CopyrightControl.js +25 -35
  127. package/mapbox/controls/index.d.ts +2 -0
  128. package/mapbox/controls/index.d.ts.map +1 -0
  129. package/mapbox/controls/index.js +2 -0
  130. package/mapbox/index.d.ts +6 -0
  131. package/mapbox/index.d.ts.map +1 -0
  132. package/mapbox/index.js +5 -3
  133. package/mapbox/layers/Layer.d.ts +59 -0
  134. package/mapbox/layers/Layer.d.ts.map +1 -0
  135. package/mapbox/layers/Layer.js +78 -95
  136. package/mapbox/layers/RealtimeLayer.d.ts +181 -0
  137. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  138. package/mapbox/layers/RealtimeLayer.js +276 -0
  139. package/mapbox/layers/index.d.ts +3 -0
  140. package/mapbox/layers/index.d.ts.map +1 -0
  141. package/mapbox/layers/index.js +2 -0
  142. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  143. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  144. package/mapbox/utils/getMercatorResolution.js +18 -0
  145. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  146. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  147. package/mapbox/utils/getSourceCoordinates.js +27 -0
  148. package/mapbox/utils/index.d.ts +3 -0
  149. package/mapbox/utils/index.d.ts.map +1 -0
  150. package/mapbox/utils/index.js +2 -0
  151. package/mbt.js +60005 -0
  152. package/mbt.js.map +7 -0
  153. package/mbt.min.js +1084 -0
  154. package/mbt.min.js.map +7 -0
  155. package/ol/controls/CopyrightControl.d.ts +31 -0
  156. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  157. package/ol/controls/CopyrightControl.js +44 -56
  158. package/ol/controls/RoutingControl.d.ts +193 -0
  159. package/ol/controls/RoutingControl.d.ts.map +1 -0
  160. package/ol/controls/RoutingControl.js +546 -667
  161. package/ol/controls/StopFinderControl.d.ts +30 -0
  162. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  163. package/ol/controls/StopFinderControl.js +10 -16
  164. package/ol/controls/index.d.ts +4 -0
  165. package/ol/controls/index.d.ts.map +1 -0
  166. package/ol/controls/index.js +3 -0
  167. package/ol/index.d.ts +6 -0
  168. package/ol/index.d.ts.map +1 -0
  169. package/ol/index.js +4 -12
  170. package/ol/layers/Layer.d.ts +86 -0
  171. package/ol/layers/Layer.d.ts.map +1 -0
  172. package/ol/layers/Layer.js +147 -166
  173. package/ol/layers/MapGlLayer.d.ts +67 -0
  174. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  175. package/ol/layers/MapGlLayer.js +218 -0
  176. package/ol/layers/MapboxLayer.d.ts +50 -0
  177. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  178. package/ol/layers/MapboxLayer.js +79 -348
  179. package/ol/layers/MapboxStyleLayer.d.ts +129 -0
  180. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  181. package/ol/layers/MapboxStyleLayer.js +329 -368
  182. package/ol/layers/MaplibreLayer.d.ts +28 -0
  183. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  184. package/ol/layers/MaplibreLayer.js +13 -259
  185. package/ol/layers/RealtimeLayer.d.ts +202 -0
  186. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  187. package/ol/layers/RealtimeLayer.js +340 -0
  188. package/ol/layers/RoutingLayer.d.ts +34 -0
  189. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  190. package/ol/layers/RoutingLayer.js +62 -68
  191. package/ol/layers/VectorLayer.d.ts +25 -0
  192. package/ol/layers/VectorLayer.d.ts.map +1 -0
  193. package/ol/layers/VectorLayer.js +27 -32
  194. package/ol/layers/WMSLayer.d.ts +42 -0
  195. package/ol/layers/WMSLayer.d.ts.map +1 -0
  196. package/ol/layers/WMSLayer.js +74 -66
  197. package/ol/layers/index.d.ts +9 -0
  198. package/ol/layers/index.d.ts.map +1 -0
  199. package/ol/layers/index.js +8 -0
  200. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  201. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  202. package/ol/styles/fullTrajectoryDelayStyle.js +23 -25
  203. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  204. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  205. package/ol/styles/fullTrajectoryStyle.js +37 -44
  206. package/ol/styles/index.d.ts +3 -0
  207. package/ol/styles/index.d.ts.map +1 -0
  208. package/package.json +98 -177
  209. package/setupTests.d.ts +2 -0
  210. package/setupTests.d.ts.map +1 -0
  211. package/setupTests.js +26 -0
  212. package/types/common.d.ts +122 -0
  213. package/types/index.d.ts +11 -0
  214. package/types/realtime.d.ts +320 -0
  215. package/types/routing.d.ts +206 -0
  216. package/types/stops.d.ts +143 -0
  217. package/README.md +0 -23
  218. package/api/routing/RoutingAPI.js +0 -44
  219. package/api/routing/RoutingAPI.test.js +0 -41
  220. package/api/stops/StopsAPI.js +0 -41
  221. package/api/stops/StopsAPI.test.js +0 -34
  222. package/api/tralis/TralisAPI.js +0 -731
  223. package/api/tralis/TralisAPI.test.js +0 -75
  224. package/api/tralis/TralisAPIUtils.js +0 -73
  225. package/api/tralis/WebSocketConnector.js +0 -338
  226. package/api/tralis/WebSocketConnector.test.js +0 -356
  227. package/common/Tracker.js +0 -197
  228. package/common/api/api.js +0 -64
  229. package/common/api/api.test.js +0 -68
  230. package/common/controls/Control.js +0 -146
  231. package/common/controls/Control.test.js +0 -98
  232. package/common/layers/Layer.js +0 -404
  233. package/common/layers/Layer.test.js +0 -585
  234. package/common/mixins/CopyrightMixin.js +0 -48
  235. package/common/mixins/SearchMixin.js +0 -176
  236. package/common/mixins/TralisLayerMixin.js +0 -930
  237. package/common/styles/trackerDefaultStyle.js +0 -333
  238. package/common/styles/trackerSimpleStyle.js +0 -22
  239. package/common/trackerConfig.js +0 -190
  240. package/common/trackerConfig.test.js +0 -25
  241. package/common/utils/createTrackerFilters.js +0 -87
  242. package/common/utils/createTrackerFilters.test.js +0 -95
  243. package/common/utils/getMapboxMapCopyrights.test.js +0 -47
  244. package/common/utils/getMapboxStyleUrl.js +0 -32
  245. package/common/utils/removeDuplicate.test.js +0 -22
  246. package/common/utils/timeUtils.test.js +0 -16
  247. package/index.js.map +0 -1
  248. package/mapbox/layers/Layer.test.js +0 -202
  249. package/mapbox/layers/TralisLayer.js +0 -329
  250. package/mapbox/layers/TralisLayer.test.js +0 -40
  251. package/mapbox/utils.js +0 -46
  252. package/module.js +0 -23
  253. package/ol/README.md +0 -0
  254. package/ol/controls/CopyrightControl.test.js +0 -211
  255. package/ol/controls/RoutingControl.test.js +0 -216
  256. package/ol/controls/StopFinderControl.test.js +0 -59
  257. package/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  258. package/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  259. package/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  260. package/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  261. package/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  262. package/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  263. package/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  264. package/ol/layers/Layer.test.js +0 -197
  265. package/ol/layers/MapboxLayer.test.js +0 -186
  266. package/ol/layers/MapboxStyleLayer.test.js +0 -262
  267. package/ol/layers/RoutingLayer.test.js +0 -49
  268. package/ol/layers/TralisLayer.js +0 -359
  269. package/ol/layers/TralisLayer.test.js +0 -97
  270. package/ol/layers/VectorLayer.test.js +0 -98
  271. package/ol/layers/WMSLayer.test.js +0 -84
@@ -1,97 +0,0 @@
1
- import fetch from 'jest-fetch-mock';
2
- import Map from 'ol/Map';
3
- import View from 'ol/View';
4
- import WS from 'jest-websocket-mock';
5
- import TralisLayer from './TralisLayer';
6
-
7
- // create a WS instance, listening on port 1234 on localhost
8
- let layer;
9
- let onClick;
10
- let olMap;
11
- let server;
12
-
13
- describe('TralisLayer', () => {
14
- beforeEach(() => {
15
- server = new WS('ws://localhost:1234');
16
- global.fetch = fetch;
17
- fetch.resetMocks();
18
-
19
- onClick = jest.fn();
20
- layer = new TralisLayer({
21
- url: 'ws://localhost:1234',
22
- apiKey: 'apiKey',
23
- onClick,
24
- });
25
-
26
- olMap = new Map({
27
- view: new View({
28
- center: [831634, 5933959],
29
- zoom: 9,
30
- }),
31
- });
32
- });
33
-
34
- afterEach(() => {
35
- // ...or gracefully close the connection
36
- server.close();
37
-
38
- // The WS class also has a static "clean" method to gracefully close all open connections,
39
- // particularly useful to reset the environment between test runs.
40
- WS.clean();
41
- });
42
-
43
- test('should be instanced.', () => {
44
- expect(layer).toBeInstanceOf(TralisLayer);
45
- expect(layer.clickCallbacks[0]).toBe(onClick);
46
- });
47
-
48
- test('should called terminate on initalization.', () => {
49
- const spy = jest.spyOn(layer, 'terminate');
50
-
51
- fetch.mockResponseOnce(JSON.stringify(global.fetchTrajectoriesResponse));
52
-
53
- layer.init(olMap);
54
- expect(spy).toHaveBeenCalledTimes(1);
55
- });
56
-
57
- test('should clone', () => {
58
- const clone = layer.clone({ name: 'clone' });
59
- expect(clone).not.toBe(layer);
60
- expect(clone.name).toBe('clone');
61
- expect(clone).toBeInstanceOf(TralisLayer);
62
- });
63
-
64
- test('should use the sort function.', () => {
65
- const fn = () => true;
66
- const laye = new TralisLayer({
67
- url: 'ws://localhost:1234',
68
- apiKey: 'apiKey',
69
- sort: fn,
70
- });
71
- expect(laye).toBeInstanceOf(TralisLayer);
72
- expect(laye.sort).toBe(fn);
73
- });
74
-
75
- test('should use filter function.', () => {
76
- const fn = () => true;
77
- const laye = new TralisLayer({
78
- url: 'ws://localhost:1234',
79
- apiKey: 'apiKey',
80
- filter: fn, // reverse the array
81
- });
82
- expect(laye).toBeInstanceOf(TralisLayer);
83
- expect(laye.filter).toBe(fn);
84
- });
85
-
86
- test('should override filter function if operator, tripNumber, regexPublishedLineName is set.', () => {
87
- const fn = () => true;
88
- const laye = new TralisLayer({
89
- url: 'ws://localhost:1234',
90
- apiKey: 'apiKey',
91
- filter: fn, // reverse the array
92
- publishedLineName: '.*',
93
- });
94
- expect(laye).toBeInstanceOf(TralisLayer);
95
- expect(laye.filter).not.toBe(fn);
96
- });
97
- });
@@ -1,98 +0,0 @@
1
- import OLVectorLayer from 'ol/layer/Vector';
2
- import VectorSource from 'ol/source/Vector';
3
- import View from 'ol/View';
4
- import Feature from 'ol/Feature';
5
- import Point from 'ol/geom/Point';
6
- import Map from 'ol/Map';
7
- import VectorLayer from './VectorLayer';
8
-
9
- const feature1 = new Feature({
10
- attribute: 'bar',
11
- geometry: new Point([500, 500]),
12
- });
13
- const olLayer = new OLVectorLayer({
14
- source: new VectorSource({
15
- features: [
16
- feature1,
17
- new Feature({
18
- attribute: 'foo',
19
- geometry: new Point([50, 50]),
20
- }),
21
- ],
22
- }),
23
- });
24
-
25
- let layer;
26
- let map;
27
- let onClick;
28
-
29
- describe('VectorLayer', () => {
30
- beforeEach(() => {
31
- onClick = jest.fn();
32
- layer = new VectorLayer({
33
- name: 'Layer',
34
- olLayer,
35
- onClick,
36
- });
37
- map = new Map({
38
- view: new View({ resolution: 5 }),
39
- target: document.body,
40
- });
41
- });
42
-
43
- test('should be instanced.', () => {
44
- expect(layer).toBeInstanceOf(VectorLayer);
45
- expect(layer.clickCallbacks[0]).toBe(onClick);
46
- expect(layer.hitTolerance).toBe(5);
47
- });
48
-
49
- test('should add onClick callback.', () => {
50
- const onClick2 = jest.fn();
51
- layer.onClick(onClick2);
52
- expect(layer.clickCallbacks[1]).toBe(onClick2);
53
- });
54
-
55
- test('should onClick throw error.', () => {
56
- expect(() => {
57
- layer.onClick('not of type function');
58
- }).toThrow(Error);
59
- });
60
-
61
- test('should called terminate on initalization.', () => {
62
- const spy = jest.spyOn(layer, 'terminate');
63
- layer.init();
64
- expect(spy).toHaveBeenCalledTimes(1);
65
- });
66
-
67
- test('should call getFeatureInfoAtCoordinate on click then the callback', async () => {
68
- const coordinate = [500, 500];
69
- const px = [10, 10];
70
- const features = [feature1];
71
- const evt = { type: 'singleclick', map, coordinate };
72
- const spy = jest.spyOn(layer, 'getFeatureInfoAtCoordinate');
73
- const spy2 = jest.spyOn(map, 'getPixelFromCoordinate').mockReturnValue(px);
74
- const spy3 = jest
75
- .spyOn(map, 'getFeaturesAtPixel')
76
- .mockReturnValue(features);
77
- layer.init(map);
78
- expect(onClick).toHaveBeenCalledTimes(0);
79
- await map.dispatchEvent(evt);
80
- expect(spy).toHaveBeenCalledTimes(1);
81
- expect(spy).toHaveBeenCalledWith(coordinate);
82
- expect(spy2).toHaveBeenCalledTimes(1);
83
- expect(spy2).toHaveBeenCalledWith(coordinate);
84
- expect(spy3).toHaveBeenCalledTimes(1);
85
- expect(spy3.mock.calls[0][0]).toBe(px);
86
- expect(spy3.mock.calls[0][1].layerFilter(layer.olLayer)).toBe(true);
87
- expect(spy3.mock.calls[0][1].layerFilter({})).toBe(false);
88
- expect(onClick).toHaveBeenCalledTimes(1);
89
- expect(onClick).toHaveBeenCalledWith(features, layer, coordinate);
90
- });
91
-
92
- test('should clone', () => {
93
- const clone = layer.clone({ name: 'clone' });
94
- expect(clone).not.toBe(layer);
95
- expect(clone.name).toBe('clone');
96
- expect(clone).toBeInstanceOf(VectorLayer);
97
- });
98
- });
@@ -1,84 +0,0 @@
1
- import OLView from 'ol/View';
2
- import ImageLayer from 'ol/layer/Image';
3
- import ImageWMS from 'ol/source/ImageWMS';
4
- import fetch from 'jest-fetch-mock';
5
- import qs from 'query-string';
6
- import Map from 'ol/Map';
7
- import WMSLayer from './WMSLayer';
8
-
9
- describe('WMSLayer', () => {
10
- let map;
11
- let layer;
12
- beforeEach(() => {
13
- map = new Map({
14
- view: new OLView({ resolution: 5 }),
15
- target: document.body,
16
- });
17
-
18
- layer = new WMSLayer({
19
- olLayer: new ImageLayer({
20
- source: new ImageWMS({
21
- url: 'dummy',
22
- params: { LAYERS: 'layers' },
23
- }),
24
- }),
25
- });
26
- layer.init(map);
27
- fetch.mockResponseOnce(JSON.stringify({ features: [] }));
28
- global.fetch = fetch;
29
- });
30
-
31
- afterEach(() => {
32
- layer.terminate();
33
- });
34
-
35
- test('should initialize.', () => {
36
- expect(layer).toBeInstanceOf(WMSLayer);
37
- });
38
-
39
- test('should called terminate on initalization.', () => {
40
- const spy = jest.spyOn(layer, 'terminate');
41
- layer.init();
42
- expect(spy).toHaveBeenCalledTimes(1);
43
- });
44
-
45
- test('should return a promise resolving features.', async () => {
46
- const data = await layer.getFeatureInfoAtCoordinate([50, 50]);
47
- const params = qs.parse(fetch.mock.calls[0][0].split('?')[1]);
48
- expect(params.REQUEST).toBe('GetFeatureInfo');
49
- expect(params.I).toBe('50');
50
- expect(params.J).toBe('50');
51
- expect(data.features).toEqual([]);
52
- });
53
-
54
- test('should return a layer instance and a coordinate.', async () => {
55
- const data = await layer.getFeatureInfoAtCoordinate([50, 50]);
56
- expect(data.coordinate).toEqual([50, 50]);
57
- expect(data.layer).toBeInstanceOf(WMSLayer);
58
- });
59
-
60
- test('#onClick', () => {
61
- const f = () => {};
62
- const f2 = () => {};
63
- layer.onClick(f);
64
- expect(layer.clickCallbacks[0]).toBe(f);
65
- expect(layer.clickCallbacks.length).toBe(1);
66
- layer.onClick(f);
67
- expect(layer.clickCallbacks.length).toBe(1);
68
- layer.onClick(f2);
69
- expect(layer.clickCallbacks.length).toBe(2);
70
- });
71
-
72
- test('should onClick throw error.', () => {
73
- expect(() => {
74
- layer.onClick('not of type function');
75
- }).toThrow(Error);
76
- });
77
-
78
- test('should clone', () => {
79
- const clone = layer.clone({ name: 'clone' });
80
- expect(clone).not.toBe(layer);
81
- expect(clone.name).toBe('clone');
82
- expect(clone).toBeInstanceOf(WMSLayer);
83
- });
84
- });