mobility-toolbox-js 2.0.0-beta.36 → 2.0.0-beta.39

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 (93) hide show
  1. package/README.md +14 -8
  2. package/api/RealtimeAPI.test.d.ts +2 -0
  3. package/api/RealtimeAPI.test.d.ts.map +1 -0
  4. package/api/RealtimeAPI.test.js +67 -0
  5. package/api/RoutingAPI.d.ts +6 -2
  6. package/api/RoutingAPI.d.ts.map +1 -1
  7. package/api/RoutingAPI.test.d.ts +2 -0
  8. package/api/RoutingAPI.test.d.ts.map +1 -0
  9. package/api/RoutingAPI.test.js +29 -0
  10. package/api/StopsAPI.test.d.ts +2 -0
  11. package/api/StopsAPI.test.d.ts.map +1 -0
  12. package/api/StopsAPI.test.js +26 -0
  13. package/common/api/HttpAPI.d.ts +4 -4
  14. package/common/api/HttpAPI.d.ts.map +1 -1
  15. package/common/api/HttpAPI.test.d.ts +2 -0
  16. package/common/api/HttpAPI.test.d.ts.map +1 -0
  17. package/common/api/HttpAPI.test.js +54 -0
  18. package/common/api/WebSocketAPI.d.ts +6 -2
  19. package/common/api/WebSocketAPI.d.ts.map +1 -1
  20. package/common/api/WebSocketAPI.js +57 -31
  21. package/common/api/WebSocketAPI.test.d.ts +2 -0
  22. package/common/api/WebSocketAPI.test.d.ts.map +1 -0
  23. package/common/api/WebSocketAPI.test.js +380 -0
  24. package/common/controls/Control.test.d.ts +2 -0
  25. package/common/controls/Control.test.d.ts.map +1 -0
  26. package/common/controls/Control.test.js +89 -0
  27. package/common/layers/Layer.test.d.ts +2 -0
  28. package/common/layers/Layer.test.d.ts.map +1 -0
  29. package/common/layers/Layer.test.js +137 -0
  30. package/common/mixins/UserInteractionsLayerMixin.test.d.ts +2 -0
  31. package/common/mixins/UserInteractionsLayerMixin.test.d.ts.map +1 -0
  32. package/common/mixins/UserInteractionsLayerMixin.test.js +214 -0
  33. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -1
  34. package/common/styles/realtimeDefaultStyle.js +2 -4
  35. package/common/styles/realtimeSimpleStyle.js +1 -1
  36. package/common/utils/createTrackerFilters.test.d.ts +2 -0
  37. package/common/utils/createTrackerFilters.test.d.ts.map +1 -0
  38. package/common/utils/createTrackerFilters.test.js +79 -0
  39. package/common/utils/getMapboxMapCopyrights.test.d.ts +2 -0
  40. package/common/utils/getMapboxMapCopyrights.test.d.ts.map +1 -0
  41. package/common/utils/getMapboxMapCopyrights.test.js +40 -0
  42. package/common/utils/removeDuplicate.test.d.ts +2 -0
  43. package/common/utils/removeDuplicate.test.d.ts.map +1 -0
  44. package/common/utils/removeDuplicate.test.js +19 -0
  45. package/common/utils/timeUtils.test.d.ts +2 -0
  46. package/common/utils/timeUtils.test.d.ts.map +1 -0
  47. package/common/utils/timeUtils.test.js +10 -0
  48. package/common/utils/trackerConfig.test.d.ts +2 -0
  49. package/common/utils/trackerConfig.test.d.ts.map +1 -0
  50. package/common/utils/trackerConfig.test.js +23 -0
  51. package/mapbox/layers/Layer.test.d.ts +2 -0
  52. package/mapbox/layers/Layer.test.d.ts.map +1 -0
  53. package/mapbox/layers/Layer.test.js +204 -0
  54. package/mapbox/layers/RealtimeLayer.test.d.ts +2 -0
  55. package/mapbox/layers/RealtimeLayer.test.d.ts.map +1 -0
  56. package/mapbox/layers/RealtimeLayer.test.js +10 -0
  57. package/mbt.js +4723 -4172
  58. package/mbt.js.map +3 -3
  59. package/mbt.min.js +193 -118
  60. package/mbt.min.js.map +3 -3
  61. package/ol/controls/CopyrightControl.test.d.ts +2 -0
  62. package/ol/controls/CopyrightControl.test.d.ts.map +1 -0
  63. package/ol/controls/CopyrightControl.test.js +177 -0
  64. package/ol/controls/RoutingControl.test.d.ts +2 -0
  65. package/ol/controls/RoutingControl.test.d.ts.map +1 -0
  66. package/ol/controls/RoutingControl.test.js +150 -0
  67. package/ol/controls/StopFinderControl.test.d.ts +2 -0
  68. package/ol/controls/StopFinderControl.test.d.ts.map +1 -0
  69. package/ol/controls/StopFinderControl.test.js +49 -0
  70. package/ol/layers/Layer.test.d.ts +2 -0
  71. package/ol/layers/Layer.test.d.ts.map +1 -0
  72. package/ol/layers/Layer.test.js +196 -0
  73. package/ol/layers/MapboxLayer.d.ts.map +1 -1
  74. package/ol/layers/MapboxLayer.js +4 -0
  75. package/ol/layers/MapboxLayer.test.d.ts +2 -0
  76. package/ol/layers/MapboxLayer.test.d.ts.map +1 -0
  77. package/ol/layers/MapboxLayer.test.js +164 -0
  78. package/ol/layers/MapboxStyleLayer.test.d.ts +2 -0
  79. package/ol/layers/MapboxStyleLayer.test.d.ts.map +1 -0
  80. package/ol/layers/MapboxStyleLayer.test.js +232 -0
  81. package/ol/layers/RealtimeLayer.test.d.ts +2 -0
  82. package/ol/layers/RealtimeLayer.test.d.ts.map +1 -0
  83. package/ol/layers/RealtimeLayer.test.js +71 -0
  84. package/ol/layers/RoutingLayer.test.d.ts +2 -0
  85. package/ol/layers/RoutingLayer.test.d.ts.map +1 -0
  86. package/ol/layers/RoutingLayer.test.js +39 -0
  87. package/ol/layers/VectorLayer.test.d.ts +2 -0
  88. package/ol/layers/VectorLayer.test.d.ts.map +1 -0
  89. package/ol/layers/VectorLayer.test.js +87 -0
  90. package/ol/layers/WMSLayer.test.d.ts +2 -0
  91. package/ol/layers/WMSLayer.test.d.ts.map +1 -0
  92. package/ol/layers/WMSLayer.test.js +66 -0
  93. package/package.json +12 -15
@@ -0,0 +1,214 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import VectorLayer from 'ol/layer/Vector';
11
+ import VectorSource from 'ol/source/Vector';
12
+ import BaseLayer from '../layers/Layer';
13
+ import mixin from './UserInteractionsLayerMixin';
14
+ const olLayer = new VectorLayer({ source: new VectorSource() });
15
+ const Layer = mixin(BaseLayer);
16
+ describe('Layer', () => {
17
+ test('should initialize.', () => {
18
+ const layer = new Layer();
19
+ expect(layer).toBeInstanceOf(Layer);
20
+ });
21
+ test('should define default properties.', () => {
22
+ const layer = new Layer();
23
+ expect(layer).toBeInstanceOf(Layer);
24
+ expect(layer.userInteractions).toEqual(true);
25
+ expect(layer.userClickInteractions).toEqual(true);
26
+ expect(layer.userHoverInteractions).toEqual(true);
27
+ expect(layer.defaultUserInteractions).toBe(true);
28
+ expect(layer.userClickCallbacks).toEqual([]);
29
+ expect(layer.userHoverCallbacks).toEqual([]);
30
+ expect(layer.userClickEventsKeys).toEqual([]);
31
+ expect(layer.userHoverEventsKeys).toEqual([]);
32
+ });
33
+ test('should set userInteractionsXXX to false.', () => {
34
+ const options = {
35
+ userInteractions: false,
36
+ userClickInteractions: false,
37
+ userHoverInteractions: false,
38
+ defaultUserInteractions: false,
39
+ };
40
+ const layer = new Layer(options);
41
+ expect(layer).toBeInstanceOf(Layer);
42
+ expect(layer.userInteractions).toBe(false);
43
+ expect(layer.userClickInteractions).toBe(false);
44
+ expect(layer.userHoverInteractions).toBe(false);
45
+ expect(layer.defaultUserInteractions).toBe(false);
46
+ });
47
+ test('should set onClick using constructor', () => {
48
+ const fn = () => { };
49
+ const layer = new Layer({
50
+ onClick: fn,
51
+ onHover: fn,
52
+ });
53
+ expect(layer.userClickCallbacks[0]).toBe(fn);
54
+ expect(layer.userHoverCallbacks[0]).toBe(fn);
55
+ expect(layer.userClickEventsKeys.length).toBe(0);
56
+ expect(layer.userHoverEventsKeys.length).toBe(0);
57
+ });
58
+ describe('#attachToMap()', () => {
59
+ test('should not add events if no callbacks', () => {
60
+ const layer = new Layer({
61
+ olLayer,
62
+ });
63
+ expect(layer.map).toBe(undefined);
64
+ const obj = {};
65
+ layer.attachToMap(obj);
66
+ expect(layer.userClickEventsKeys.length).toBe(0);
67
+ expect(layer.userHoverEventsKeys.length).toBe(0);
68
+ });
69
+ test('should add events', () => {
70
+ const fn = () => { };
71
+ const layer = new Layer({
72
+ olLayer,
73
+ onClick: fn,
74
+ onHover: fn,
75
+ });
76
+ expect(layer.map).toBe(undefined);
77
+ const obj = {};
78
+ layer.attachToMap(obj);
79
+ expect(layer.userClickEventsKeys.length).toBe(1);
80
+ expect(layer.userHoverEventsKeys.length).toBe(1);
81
+ });
82
+ });
83
+ describe('#onClick()', () => {
84
+ test('adds function to callback array', () => {
85
+ const layer = new Layer();
86
+ const fn = jest.fn();
87
+ const fn2 = jest.fn();
88
+ layer.onClick(fn);
89
+ expect(layer.userClickCallbacks).toEqual([fn]);
90
+ layer.onClick(fn2);
91
+ expect(layer.userClickCallbacks).toEqual([fn, fn2]);
92
+ expect(layer.userClickEventsKeys.length).toBe(0);
93
+ layer.attachToMap({});
94
+ expect(layer.userClickEventsKeys.length).toBe(2);
95
+ });
96
+ });
97
+ describe('#onHover()', () => {
98
+ test('adds function to callback array', () => {
99
+ const layer = new Layer();
100
+ const fn = jest.fn();
101
+ const fn2 = jest.fn();
102
+ layer.onHover(fn);
103
+ expect(layer.userHoverCallbacks).toEqual([fn]);
104
+ layer.onHover(fn2);
105
+ expect(layer.userHoverCallbacks).toEqual([fn, fn2]);
106
+ expect(layer.userHoverEventsKeys.length).toBe(0);
107
+ layer.attachToMap({});
108
+ expect(layer.userHoverEventsKeys.length).toBe(2);
109
+ });
110
+ });
111
+ describe('#onUserClickCallback()', () => {
112
+ const evt = { type: 'signleclick', coordinate: [0, 0] };
113
+ const getFeatureInfo = (layer, features = []) => ({
114
+ features,
115
+ layer,
116
+ coordinate: evt.coordinate,
117
+ event: evt,
118
+ });
119
+ test('calls click callback functions', (done) => __awaiter(void 0, void 0, void 0, function* () {
120
+ const layer = new Layer();
121
+ const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
122
+ const fn = jest.fn();
123
+ const fn2 = jest.fn();
124
+ const spy = jest
125
+ .spyOn(layer, 'getFeatureInfoAtCoordinate')
126
+ .mockResolvedValue(goodFeatureInfo);
127
+ layer.onClick(fn);
128
+ layer.onClick(fn2);
129
+ layer.attachToMap({});
130
+ layer.onUserClickCallback(evt).then((featureInfo) => {
131
+ expect(spy).toHaveBeenCalledTimes(1);
132
+ expect(spy).toHaveBeenCalledWith(evt.coordinate);
133
+ expect(featureInfo).toBe(goodFeatureInfo);
134
+ expect(fn).toHaveBeenCalledTimes(1);
135
+ expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
136
+ expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
137
+ expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
138
+ expect(fn2).toHaveBeenCalledTimes(1);
139
+ expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
140
+ expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
141
+ expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
142
+ done();
143
+ });
144
+ }));
145
+ describe('returns empty feature info', () => {
146
+ test('if an error is thrown in click callback', (done) => {
147
+ const layer = new Layer();
148
+ layer.onClick(() => {
149
+ throw new Error('foo');
150
+ });
151
+ const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
152
+ jest
153
+ .spyOn(layer, 'getFeatureInfoAtCoordinate')
154
+ .mockResolvedValue(goodFeatureInfo);
155
+ layer.attachToMap({});
156
+ layer.onUserClickCallback(evt).then((featureInfo) => {
157
+ expect(featureInfo).toEqual(getFeatureInfo(layer));
158
+ done();
159
+ });
160
+ });
161
+ });
162
+ });
163
+ describe('#onUserMoveCallback()', () => {
164
+ const evt = { type: 'pointermove', coordinate: [0, 0] };
165
+ const getFeatureInfo = (layer, features = []) => ({
166
+ features,
167
+ layer,
168
+ coordinate: evt.coordinate,
169
+ event: evt,
170
+ });
171
+ test('calls hover callback functions', (done) => {
172
+ const layer = new Layer();
173
+ const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
174
+ const fn = jest.fn();
175
+ const fn2 = jest.fn();
176
+ const spy = jest
177
+ .spyOn(layer, 'getFeatureInfoAtCoordinate')
178
+ .mockResolvedValue(goodFeatureInfo);
179
+ layer.onHover(fn);
180
+ layer.onHover(fn2);
181
+ layer.attachToMap({});
182
+ layer.onUserMoveCallback(evt).then((featureInfo) => {
183
+ expect(spy).toHaveBeenCalledTimes(1);
184
+ expect(spy).toHaveBeenCalledWith(evt.coordinate);
185
+ expect(featureInfo).toBe(goodFeatureInfo);
186
+ expect(fn).toHaveBeenCalledTimes(1);
187
+ expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
188
+ expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
189
+ expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
190
+ expect(fn2).toHaveBeenCalledTimes(1);
191
+ expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
192
+ expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
193
+ expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
194
+ done();
195
+ });
196
+ });
197
+ describe('returns empty feature info', () => {
198
+ test('if an error is thrown in hover callback', (done) => {
199
+ const layer = new Layer();
200
+ layer.onHover(() => {
201
+ throw new Error('foo');
202
+ });
203
+ jest
204
+ .spyOn(layer, 'getFeatureInfoAtCoordinate')
205
+ .mockResolvedValue(getFeatureInfo(layer, [{ name: 'test' }]));
206
+ layer.attachToMap({});
207
+ layer.onUserMoveCallback(evt).then((featureInfo) => {
208
+ expect(featureInfo).toEqual(getFeatureInfo(layer));
209
+ done();
210
+ });
211
+ });
212
+ });
213
+ });
214
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"realtimeDefaultStyle.d.ts","sourceRoot":"","sources":["../../../src/common/styles/realtimeDefaultStyle.js"],"names":[],"mappings":"AAUO,4EAeN;AAUM,2JA2BN;AAUM,0HAoCN;AAUM,6IAuCN;;AAKD;;;;;;;GAOG;AACH,0FAgMC"}
1
+ {"version":3,"file":"realtimeDefaultStyle.d.ts","sourceRoot":"","sources":["../../../src/common/styles/realtimeDefaultStyle.js"],"names":[],"mappings":"AAUO,4EAeN;AAUM,2JA2BN;AAUM,0HAoCN;AAUM,6IAuCN;;AAKD;;;;;;;GAOG;AACH,0FA8LC"}
@@ -130,12 +130,10 @@ const cache = {};
130
130
  const realtimeDefaultStyle = (trajectory, viewState, options) => {
131
131
  const { hoverVehicleId, selectedVehicleId, useDelayStyle, delayOutlineColor = '#000', delayDisplay = 300000, getRadius, getBgColor, getDelayColor, getDelayText, getTextColor, getTextSize, } = options;
132
132
  const { zoom, pixelRatio } = viewState;
133
- let { type, cancelled } = trajectory.properties;
133
+ let { type } = trajectory.properties;
134
134
  const { train_id: id, line, delay, state, operator_provides_realtime_journey: operatorProvidesRealtime, } = trajectory.properties;
135
135
  let { name, text_color: textColor, color } = line || {};
136
- // In the future, the cancelled property will be removed we still managed it
137
- // until the backend change is on prod.
138
- cancelled = cancelled === true || state === 'JOURNEY_CANCELLED';
136
+ const cancelled = state === 'JOURNEY_CANCELLED';
139
137
  if (!type) {
140
138
  type = 'Rail';
141
139
  }
@@ -5,7 +5,7 @@
5
5
  let canvas;
6
6
  const realtimeSimpleStyle = () => {
7
7
  if (!canvas) {
8
- document.createElement('canvas');
8
+ canvas = document.createElement('canvas');
9
9
  canvas.width = 15;
10
10
  canvas.height = 15;
11
11
  const ctx = canvas.getContext('2d');
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createTrackerFilters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTrackerFilters.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createTrackerFilters.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import createTrackerFilters from './createTrackerFilters';
2
+ const u1 = {
3
+ properties: {
4
+ routeIdentifier: '001.000827.004:7',
5
+ operator: 'FoO',
6
+ line: {
7
+ name: 'U1',
8
+ },
9
+ },
10
+ };
11
+ const ireta = {
12
+ properties: {
13
+ routeIdentifier: '0022.000827.004:7',
14
+ operator: 'BAR',
15
+ line: {
16
+ name: 'IRETA',
17
+ },
18
+ },
19
+ };
20
+ const arb = {
21
+ properties: {
22
+ routeIdentifier: '00333.000827.004:7',
23
+ operator: 'qux',
24
+ line: {
25
+ name: 'ARB',
26
+ },
27
+ },
28
+ };
29
+ const trajectories = [u1, ireta, arb];
30
+ describe('#createTrackerFilter()', () => {
31
+ test('returns null', () => {
32
+ const filterFunc = createTrackerFilters();
33
+ expect(filterFunc).toBe(null);
34
+ });
35
+ describe('using line', () => {
36
+ test('as string', () => {
37
+ const filterFunc = createTrackerFilters('u1,foo');
38
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
39
+ });
40
+ test('as array of string', () => {
41
+ const filterFunc = createTrackerFilters(['u1', 'foo', 'IRETA']);
42
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
43
+ });
44
+ });
45
+ describe('using route identifier', () => {
46
+ test('as string', () => {
47
+ const filterFunc = createTrackerFilters(null, '1,foo');
48
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
49
+ });
50
+ test('as array of string', () => {
51
+ const filterFunc = createTrackerFilters(null, ['22', 'foo', '1']);
52
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
53
+ });
54
+ });
55
+ describe('using operator', () => {
56
+ test('as string', () => {
57
+ const filterFunc = createTrackerFilters(null, null, 'foo');
58
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
59
+ });
60
+ test('as array of string', () => {
61
+ const filterFunc = createTrackerFilters(null, null, ['bar', 'foo', '1']);
62
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
63
+ });
64
+ });
65
+ describe('using regexLine', () => {
66
+ test('as string', () => {
67
+ const filterFunc = createTrackerFilters(null, null, null, '^(S|R$|RE|PE|D|IRE|RB|TER)');
68
+ expect(trajectories.filter(filterFunc)).toEqual([ireta]);
69
+ });
70
+ test('as array of string', () => {
71
+ const filterFunc = createTrackerFilters(null, null, null, [
72
+ '^IR',
73
+ '^ARB$',
74
+ 'foo',
75
+ ]);
76
+ expect(trajectories.filter(filterFunc)).toEqual([ireta, arb]);
77
+ });
78
+ });
79
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getMapboxMapCopyrights.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMapboxMapCopyrights.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMapboxMapCopyrights.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import getMapboxMapCopyrights from './getMapboxMapCopyrights';
2
+ describe('getMapboxMapCopyrights()', () => {
3
+ test('returns an empty array if map is not defined', () => {
4
+ expect(getMapboxMapCopyrights().length).toBe(0);
5
+ });
6
+ test('returns an empty array if map.style is not defined', () => {
7
+ expect(getMapboxMapCopyrights({}).length).toBe(0);
8
+ });
9
+ test('returns non depluicated copyrights in an array', () => {
10
+ expect(getMapboxMapCopyrights({
11
+ style: {
12
+ sourceCaches: {
13
+ used: {
14
+ used: true,
15
+ getSource() {
16
+ return {
17
+ attribution: '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> <a href="https://www.openstreetmap.org/about/" target="_blank">&copy; OpenStreetMap contributors</a>',
18
+ };
19
+ },
20
+ },
21
+ 'not used': {
22
+ used: false,
23
+ },
24
+ 'also used': {
25
+ used: true,
26
+ getSource() {
27
+ return {
28
+ attribution: '<a href="https://www.openmaptiles.org/" target="_blank">&copy; OpenMapTiles</a> <a href="https://www.imagico.de/" target="_blank">&copy; imagico</a>',
29
+ };
30
+ },
31
+ },
32
+ },
33
+ },
34
+ })).toEqual([
35
+ '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a>',
36
+ '<a href="https://www.openstreetmap.org/about/" target="_blank">© OpenStreetMap contributors</a>',
37
+ '<a href="https://www.imagico.de/" target="_blank">© imagico</a>',
38
+ ]);
39
+ });
40
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=removeDuplicate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDuplicate.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import removeDuplicate from './removeDuplicate';
2
+ describe('removeDuplicate()', () => {
3
+ test('removes duplicates', () => {
4
+ expect(removeDuplicate([
5
+ 'a',
6
+ ' ',
7
+ ' ',
8
+ 'b',
9
+ 'a',
10
+ undefined,
11
+ null,
12
+ 'A',
13
+ 0,
14
+ 'c',
15
+ 'b',
16
+ 'B',
17
+ ])).toEqual(['a', 'b', 'c']);
18
+ });
19
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timeUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeUtils.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/timeUtils.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { getUTCDateString, getUTCTimeString } from './timeUtils';
2
+ describe('timeUtils', () => {
3
+ test('getUTCDateString should be correct.', () => {
4
+ expect(getUTCDateString(new Date(2020, 5, 30))).toBe('20200630');
5
+ expect(getUTCDateString(new Date('January 1, 2021 00:15:30 GMT+2:00'))).toBe('20201231');
6
+ });
7
+ test('getUTCTimeString should be correct.', () => {
8
+ expect(getUTCTimeString(new Date(2020, 5, 30, 11, 5, 1, 123))).toBe('11:5:1.123');
9
+ });
10
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trackerConfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerConfig.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/trackerConfig.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { getTypeIndex } from './trackerConfig';
2
+ describe('trackerConfig', () => {
3
+ describe('#getTypeIndex()', () => {
4
+ test("retrurn the type is it's not a string", () => {
5
+ const obj = { foo: 'foo' };
6
+ expect(getTypeIndex(obj)).toBe(obj);
7
+ expect(getTypeIndex(0)).toBe(0);
8
+ expect(getTypeIndex(null)).toBe(null);
9
+ expect(getTypeIndex(undefined)).toBe(undefined);
10
+ });
11
+ test('find good index for new tracker values', () => {
12
+ expect(getTypeIndex('tram')).toBe(0);
13
+ expect(getTypeIndex('subway')).toBe(1);
14
+ expect(getTypeIndex('bus')).toBe(3);
15
+ expect(getTypeIndex('ferry')).toBe(4);
16
+ expect(getTypeIndex('cablecar')).toBe(5);
17
+ expect(getTypeIndex('gondola')).toBe(6);
18
+ expect(getTypeIndex('funicular')).toBe(7);
19
+ expect(getTypeIndex('coach')).toBe(8);
20
+ expect(getTypeIndex('rail')).toBe(9);
21
+ });
22
+ });
23
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Layer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layer.test.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/Layer.test.js"],"names":[],"mappings":""}