react-spatial 1.2.2 → 1.2.3-beta.3
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.
- package/LayerService.js +128 -184
- package/LayerService.js.map +7 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
- package/components/BaseLayerSwitcher/index.js +1 -3
- package/components/BaseLayerSwitcher/index.js.map +7 -1
- package/components/BasicMap/BasicMap.js +147 -285
- package/components/BasicMap/BasicMap.js.map +7 -1
- package/components/BasicMap/index.js +1 -3
- package/components/BasicMap/index.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
- package/components/CanvasSaveButton/index.js +1 -3
- package/components/CanvasSaveButton/index.js.map +7 -1
- package/components/Copyright/Copyright.js +29 -70
- package/components/Copyright/Copyright.js.map +7 -1
- package/components/Copyright/index.js +1 -3
- package/components/Copyright/index.js.map +7 -1
- package/components/FeatureExportButton/FeatureExportButton.js +40 -106
- package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
- package/components/FeatureExportButton/index.js +1 -3
- package/components/FeatureExportButton/index.js.map +7 -1
- package/components/FilterButton/FilterButton.js +41 -106
- package/components/FilterButton/FilterButton.js.map +7 -1
- package/components/FilterButton/index.js +1 -3
- package/components/FilterButton/index.js.map +7 -1
- package/components/FitExtent/FitExtent.js +17 -50
- package/components/FitExtent/FitExtent.js.map +7 -1
- package/components/FitExtent/index.js +1 -3
- package/components/FitExtent/index.js.map +7 -1
- package/components/FollowButton/FollowButton.js +41 -111
- package/components/FollowButton/FollowButton.js.map +7 -1
- package/components/FollowButton/index.js +1 -3
- package/components/FollowButton/index.js.map +7 -1
- package/components/Geolocation/Geolocation.js +104 -213
- package/components/Geolocation/Geolocation.js.map +7 -1
- package/components/Geolocation/index.js +1 -3
- package/components/Geolocation/index.js.map +7 -1
- package/components/LayerTree/LayerTree.js +204 -410
- package/components/LayerTree/LayerTree.js.map +7 -1
- package/components/LayerTree/index.js +1 -3
- package/components/LayerTree/index.js.map +7 -1
- package/components/MousePosition/MousePosition.js +61 -130
- package/components/MousePosition/MousePosition.js.map +7 -1
- package/components/MousePosition/index.js +1 -3
- package/components/MousePosition/index.js.map +7 -1
- package/components/NorthArrow/NorthArrow.js +22 -62
- package/components/NorthArrow/NorthArrow.js.map +7 -1
- package/components/NorthArrow/index.js +1 -3
- package/components/NorthArrow/index.js.map +7 -1
- package/components/Overlay/Overlay.js +83 -130
- package/components/Overlay/Overlay.js.map +7 -1
- package/components/Overlay/index.js +1 -3
- package/components/Overlay/index.js.map +7 -1
- package/components/Permalink/Permalink.js +150 -244
- package/components/Permalink/Permalink.js.map +7 -1
- package/components/Permalink/index.js +1 -3
- package/components/Permalink/index.js.map +7 -1
- package/components/Popup/Popup.js +106 -233
- package/components/Popup/Popup.js.map +7 -1
- package/components/Popup/index.js +1 -3
- package/components/Popup/index.js.map +7 -1
- package/components/ResizeHandler/ResizeHandler.js +58 -113
- package/components/ResizeHandler/ResizeHandler.js.map +7 -1
- package/components/ResizeHandler/index.js +1 -3
- package/components/ResizeHandler/index.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.js +150 -283
- package/components/RouteSchedule/RouteSchedule.js.map +7 -1
- package/components/RouteSchedule/index.js +1 -3
- package/components/RouteSchedule/index.js.map +7 -1
- package/components/ScaleLine/ScaleLine.js +21 -45
- package/components/ScaleLine/ScaleLine.js.map +7 -1
- package/components/ScaleLine/index.js +1 -3
- package/components/ScaleLine/index.js.map +7 -1
- package/components/Search/Search.js +122 -186
- package/components/Search/Search.js.map +7 -1
- package/components/Search/SearchService.js +45 -69
- package/components/Search/SearchService.js.map +7 -1
- package/components/Search/engines/Engine.js +18 -25
- package/components/Search/engines/Engine.js.map +7 -1
- package/components/Search/engines/StopFinder.js +21 -38
- package/components/Search/engines/StopFinder.js.map +7 -1
- package/components/Search/index.js +3 -6
- package/components/Search/index.js.map +7 -1
- package/components/StopsFinder/StopsFinder.js +123 -174
- package/components/StopsFinder/StopsFinder.js.map +7 -1
- package/components/StopsFinder/StopsFinderOption.js +37 -54
- package/components/StopsFinder/StopsFinderOption.js.map +7 -1
- package/components/StopsFinder/index.js +1 -3
- package/components/StopsFinder/index.js.map +7 -1
- package/components/TrackerControl/TrackerControl.js +73 -128
- package/components/TrackerControl/TrackerControl.js.map +7 -1
- package/components/TrackerControl/index.js +1 -3
- package/components/TrackerControl/index.js.map +7 -1
- package/components/Zoom/Zoom.js +69 -112
- package/components/Zoom/Zoom.js.map +7 -1
- package/components/Zoom/index.js +1 -3
- package/components/Zoom/index.js.map +7 -1
- package/package.json +10 -5
- package/propTypes.js +17 -23
- package/propTypes.js.map +7 -1
- package/setupTests.js +2 -4
- package/setupTests.js.map +7 -1
- package/themes/README.md +26 -0
- package/themes/default/components.scss +0 -1
- package/themes/default/examples.scss +0 -1
- package/utils/GlobalsForOle.js +63 -64
- package/utils/GlobalsForOle.js.map +7 -1
- package/utils/KML.js +178 -364
- package/utils/KML.js.map +7 -1
- package/utils/KMLFormat.js +37 -73
- package/utils/KMLFormat.js.map +7 -1
- package/utils/Styles.js +24 -32
- package/utils/Styles.js.map +7 -1
- package/utils/getPolygonPattern.js +11 -44
- package/utils/getPolygonPattern.js.map +7 -1
- package/utils/timeUtils.js +16 -35
- package/utils/timeUtils.js.map +7 -1
- package/LayerService.test.js +0 -160
- package/LayerService.test.js.map +0 -1
- package/Projections.js +0 -16
- package/Projections.js.map +0 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
- package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
- package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
- package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
- package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
- package/components/BaseLayerToggler/index.js +0 -3
- package/components/BaseLayerToggler/index.js.map +0 -1
- package/components/BasicMap/BasicMap.test.js +0 -288
- package/components/BasicMap/BasicMap.test.js.map +0 -1
- package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
- package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
- package/components/Copyright/Copyright.test.js +0 -133
- package/components/Copyright/Copyright.test.js.map +0 -1
- package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
- package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
- package/components/FilterButton/FilterButton.test.js +0 -48
- package/components/FilterButton/FilterButton.test.js.map +0 -1
- package/components/FitExtent/FitExtent.test.js +0 -44
- package/components/FitExtent/FitExtent.test.js.map +0 -1
- package/components/FollowButton/FollowButton.test.js +0 -57
- package/components/FollowButton/FollowButton.test.js.map +0 -1
- package/components/Geolocation/Geolocation.test.js +0 -263
- package/components/Geolocation/Geolocation.test.js.map +0 -1
- package/components/LayerTree/LayerTree.test.js +0 -323
- package/components/LayerTree/LayerTree.test.js.map +0 -1
- package/components/MousePosition/MousePosition.test.js +0 -125
- package/components/MousePosition/MousePosition.test.js.map +0 -1
- package/components/NorthArrow/NorthArrow.test.js +0 -106
- package/components/NorthArrow/NorthArrow.test.js.map +0 -1
- package/components/Overlay/Overlay.test.js +0 -145
- package/components/Overlay/Overlay.test.js.map +0 -1
- package/components/Permalink/Permalink.test.js +0 -267
- package/components/Permalink/Permalink.test.js.map +0 -1
- package/components/Popup/Popup.test.js +0 -291
- package/components/Popup/Popup.test.js.map +0 -1
- package/components/ResizeHandler/ResizeHandler.test.js +0 -410
- package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
- package/components/RouteSchedule/RouteSchedule.test.js +0 -102
- package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
- package/components/ScaleLine/ScaleLine.test.js +0 -32
- package/components/ScaleLine/ScaleLine.test.js.map +0 -1
- package/components/Search/Search.test.js +0 -15
- package/components/Search/Search.test.js.map +0 -1
- package/components/StopsFinder/StopsFinder.test.js +0 -19
- package/components/StopsFinder/StopsFinder.test.js.map +0 -1
- package/components/TrackerControl/TrackerControl.test.js +0 -17
- package/components/TrackerControl/TrackerControl.test.js.map +0 -1
- package/components/Zoom/Zoom.test.js +0 -150
- package/components/Zoom/Zoom.test.js.map +0 -1
- package/styleguidist/ComponentsList.js +0 -52
- package/styleguidist/ComponentsList.js.map +0 -1
- package/styleguidist/StyleGuide.js +0 -253
- package/styleguidist/StyleGuide.js.map +0 -1
- package/utils/KML.test.js +0 -163
- package/utils/KML.test.js.map +0 -1
- package/utils/KMLFormat.test.js +0 -22
- package/utils/KMLFormat.test.js.map +0 -1
- package/utils/getPolygonPattern.test.js +0 -66
- package/utils/getPolygonPattern.test.js.map +0 -1
- package/utils/timeUtils.test.js +0 -32
- package/utils/timeUtils.test.js.map +0 -1
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { configure, mount } from 'enzyme';
|
|
4
|
-
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
|
|
5
|
-
import 'jest-canvas-mock';
|
|
6
|
-
import renderer from 'react-test-renderer';
|
|
7
|
-
import { Layer } from 'mobility-toolbox-js/ol';
|
|
8
|
-
import LayerTree from './LayerTree';
|
|
9
|
-
import LayerService from '../../LayerService';
|
|
10
|
-
|
|
11
|
-
configure({ adapter: new Adapter() });
|
|
12
|
-
|
|
13
|
-
var mountLayerTree = function (layers) {
|
|
14
|
-
var layerService = new LayerService(layers);
|
|
15
|
-
return mount(React.createElement( LayerTree, { layerService: layerService }));
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
var renderLayerTree = function (layers, props) {
|
|
19
|
-
var layerService = new LayerService(layers);
|
|
20
|
-
var component = renderer.create(
|
|
21
|
-
React.createElement( LayerTree, Object.assign({}, { layerService: layerService }, (props || {})))
|
|
22
|
-
);
|
|
23
|
-
var tree = component.toJSON();
|
|
24
|
-
expect(tree).toMatchSnapshot();
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
var classItem = '.rs-layer-tree-item';
|
|
28
|
-
var toggleItem = '.rs-layer-tree-toggle';
|
|
29
|
-
|
|
30
|
-
describe('LayerTree', function () {
|
|
31
|
-
var layers;
|
|
32
|
-
|
|
33
|
-
beforeEach(function () {
|
|
34
|
-
layers = [
|
|
35
|
-
new Layer({
|
|
36
|
-
name: 'root',
|
|
37
|
-
}),
|
|
38
|
-
new Layer({
|
|
39
|
-
name: '1',
|
|
40
|
-
children: [
|
|
41
|
-
new Layer({
|
|
42
|
-
name: '1-1',
|
|
43
|
-
properties: {
|
|
44
|
-
radioGroup: 'radio',
|
|
45
|
-
},
|
|
46
|
-
}),
|
|
47
|
-
new Layer({
|
|
48
|
-
name: '1-2',
|
|
49
|
-
properties: {
|
|
50
|
-
radioGroup: 'radio',
|
|
51
|
-
},
|
|
52
|
-
visible: false,
|
|
53
|
-
children: [
|
|
54
|
-
new Layer({
|
|
55
|
-
name: '1-2-1',
|
|
56
|
-
visible: false,
|
|
57
|
-
}),
|
|
58
|
-
new Layer({
|
|
59
|
-
name: '1-2-2',
|
|
60
|
-
visible: false,
|
|
61
|
-
}),
|
|
62
|
-
new Layer({
|
|
63
|
-
name: '2',
|
|
64
|
-
visible: false,
|
|
65
|
-
}) ],
|
|
66
|
-
}) ],
|
|
67
|
-
}) ];
|
|
68
|
-
});
|
|
69
|
-
describe('matches snapshots', function () {
|
|
70
|
-
test('using default properties.', function () {
|
|
71
|
-
renderLayerTree(layers);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
test('when no layers.', function () {
|
|
75
|
-
var layerService = new LayerService();
|
|
76
|
-
var component = renderer.create(
|
|
77
|
-
React.createElement( LayerTree, { layerService: layerService })
|
|
78
|
-
);
|
|
79
|
-
var tree = component.toJSON();
|
|
80
|
-
expect(tree).toMatchSnapshot();
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
test('when renderItem is used.', function () {
|
|
84
|
-
renderLayerTree(layers, {
|
|
85
|
-
renderItem: function (item) {
|
|
86
|
-
var name = item.name;
|
|
87
|
-
return React.createElement( 'div', { key: name }, name);
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
test('when classNames are used.', function () {
|
|
93
|
-
renderLayerTree(layers, { className: 'foo' });
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
test('when an item is hidden.', function () {
|
|
97
|
-
renderLayerTree(layers, {
|
|
98
|
-
isItemHidden: function (item) {
|
|
99
|
-
return !!item.children.length;
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
test('when an item is hidden (different layer tree levels)', function () {
|
|
105
|
-
renderLayerTree(layers, {
|
|
106
|
-
isItemHidden: function (item) {
|
|
107
|
-
return item.isBaseLayer || item.get('hideInLegend');
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
test('when an item use renderBeforeItem.', function () {
|
|
113
|
-
renderLayerTree(layers, {
|
|
114
|
-
renderBeforeItem: function (layer, level) {
|
|
115
|
-
var name = layer.name;
|
|
116
|
-
return (
|
|
117
|
-
React.createElement( 'div', null, "Render name before item: ", name, ", level: ", level
|
|
118
|
-
)
|
|
119
|
-
);
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
test('when an item use renderAfterItem.', function () {
|
|
125
|
-
renderLayerTree(layers, {
|
|
126
|
-
renderAfterItem: function (layer, level) {
|
|
127
|
-
var name = layer.name;
|
|
128
|
-
return (
|
|
129
|
-
React.createElement( 'div', null, "Render name after item: ", name, ", level: ", level
|
|
130
|
-
)
|
|
131
|
-
);
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
test('when expandChildren is true.', function () {
|
|
137
|
-
renderLayerTree(layers, {
|
|
138
|
-
expandChildren: true,
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
test('when expandChildren is a function.', function () {
|
|
143
|
-
renderLayerTree(layers, {
|
|
144
|
-
expandChildren: function (lyrs) {
|
|
145
|
-
return lyrs.length === 3;
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
test('when items are always expanded', function () {
|
|
151
|
-
var newLayers = [
|
|
152
|
-
new Layer({
|
|
153
|
-
name: 'Expanded layer 1 (because of level 1)',
|
|
154
|
-
visible: true,
|
|
155
|
-
children: [
|
|
156
|
-
new Layer({
|
|
157
|
-
name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',
|
|
158
|
-
visible: true,
|
|
159
|
-
properties: {
|
|
160
|
-
isAlwaysExpanded: true,
|
|
161
|
-
},
|
|
162
|
-
children: [
|
|
163
|
-
new Layer({
|
|
164
|
-
name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',
|
|
165
|
-
visible: true,
|
|
166
|
-
properties: {
|
|
167
|
-
isAlwaysExpanded: true,
|
|
168
|
-
},
|
|
169
|
-
children: [
|
|
170
|
-
new Layer({
|
|
171
|
-
name: 'Visible layer 1.1.1.1 (as parent is expanded)',
|
|
172
|
-
visible: true,
|
|
173
|
-
}) ],
|
|
174
|
-
}),
|
|
175
|
-
new Layer({
|
|
176
|
-
name: 'Hidden layer 1.1.1 (because of hidden=true)',
|
|
177
|
-
visible: true,
|
|
178
|
-
properties: {
|
|
179
|
-
hideInLegend: true,
|
|
180
|
-
},
|
|
181
|
-
children: [
|
|
182
|
-
new Layer({
|
|
183
|
-
name: 'Invisible layer 1.1.1.1 (as parent is hidden)',
|
|
184
|
-
visible: true,
|
|
185
|
-
}) ],
|
|
186
|
-
}) ],
|
|
187
|
-
}),
|
|
188
|
-
new Layer({
|
|
189
|
-
name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',
|
|
190
|
-
visible: true,
|
|
191
|
-
properties: {
|
|
192
|
-
isAlwaysExpanded: true,
|
|
193
|
-
},
|
|
194
|
-
children: [
|
|
195
|
-
new Layer({
|
|
196
|
-
name: 'Visible layer 1.2.1 (as parent is expanded)',
|
|
197
|
-
visible: true,
|
|
198
|
-
children: [
|
|
199
|
-
new Layer({
|
|
200
|
-
name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',
|
|
201
|
-
visible: true,
|
|
202
|
-
}) ],
|
|
203
|
-
}) ],
|
|
204
|
-
}) ],
|
|
205
|
-
}),
|
|
206
|
-
new Layer({
|
|
207
|
-
name: 'Expanded layer 2 (because of level 1)',
|
|
208
|
-
visible: true,
|
|
209
|
-
children: [
|
|
210
|
-
new Layer({
|
|
211
|
-
name: 'Visible layer 2.1 (as parent is expanded)',
|
|
212
|
-
visible: true,
|
|
213
|
-
children: [
|
|
214
|
-
new Layer({
|
|
215
|
-
name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',
|
|
216
|
-
visible: true,
|
|
217
|
-
properties: {
|
|
218
|
-
isAlwaysExpanded: true,
|
|
219
|
-
},
|
|
220
|
-
children: [
|
|
221
|
-
new Layer({
|
|
222
|
-
name: 'Invisible layer 2.1.1.1 (as parent is not visible)',
|
|
223
|
-
visible: true,
|
|
224
|
-
}) ],
|
|
225
|
-
}) ],
|
|
226
|
-
}),
|
|
227
|
-
new Layer({
|
|
228
|
-
name: 'Visible layer 2.2 (as parent is expanded)',
|
|
229
|
-
visible: true,
|
|
230
|
-
children: [
|
|
231
|
-
new Layer({
|
|
232
|
-
name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',
|
|
233
|
-
visible: true,
|
|
234
|
-
children: [
|
|
235
|
-
new Layer({
|
|
236
|
-
name: 'Invisible layer 2.2.1.1 (as parent is not visible)',
|
|
237
|
-
visible: true,
|
|
238
|
-
}) ],
|
|
239
|
-
}) ],
|
|
240
|
-
}) ],
|
|
241
|
-
}) ];
|
|
242
|
-
|
|
243
|
-
renderLayerTree(newLayers, {
|
|
244
|
-
isItemHidden: function (item) {
|
|
245
|
-
return item.get('hideInLegend');
|
|
246
|
-
},
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
describe('triggers onInputClick', function () {
|
|
252
|
-
var wrapper;
|
|
253
|
-
var spy;
|
|
254
|
-
var spy2;
|
|
255
|
-
var newLayers = [
|
|
256
|
-
new Layer({
|
|
257
|
-
name: 'foo',
|
|
258
|
-
}) ];
|
|
259
|
-
var expectCalled = function () {
|
|
260
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
261
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
262
|
-
expect(spy.mock.calls[0][0].name).toBe('foo');
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
beforeEach(function () {
|
|
266
|
-
spy = jest.spyOn(LayerTree.prototype, 'onInputClick');
|
|
267
|
-
spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');
|
|
268
|
-
wrapper = mountLayerTree(newLayers);
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
afterEach(function () {
|
|
272
|
-
spy.mockRestore();
|
|
273
|
-
spy2.mockRestore();
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
test('when we press enter with keyboard on the label element.', function () {
|
|
277
|
-
wrapper.find('label').at(0).simulate('keypress', { which: 13 });
|
|
278
|
-
expectCalled();
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
test('when we click on input.', function () {
|
|
282
|
-
wrapper.find('input').at(0).simulate('click');
|
|
283
|
-
expectCalled();
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
test('when we click on toggle button (label+arrow) of an item without children.', function () {
|
|
287
|
-
wrapper.find(classItem).first().childAt(1).simulate('click');
|
|
288
|
-
expectCalled();
|
|
289
|
-
});
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
describe('triggers onToggle', function () {
|
|
293
|
-
var wrapper;
|
|
294
|
-
var spy;
|
|
295
|
-
var newLayers = [
|
|
296
|
-
new Layer({
|
|
297
|
-
name: '1',
|
|
298
|
-
children: [
|
|
299
|
-
new Layer({
|
|
300
|
-
name: '1-1',
|
|
301
|
-
}),
|
|
302
|
-
new Layer({
|
|
303
|
-
name: '1-1-1',
|
|
304
|
-
}) ],
|
|
305
|
-
}) ];
|
|
306
|
-
|
|
307
|
-
var expectCalled = function () {
|
|
308
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
beforeEach(function () {
|
|
312
|
-
spy = jest.spyOn(LayerTree.prototype, 'onToggle');
|
|
313
|
-
wrapper = mountLayerTree(newLayers);
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
test('when we click on toggle button (label+arrow) of an item with children', function () {
|
|
317
|
-
wrapper.find(toggleItem).first().simulate('click');
|
|
318
|
-
expectCalled();
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
//# sourceMappingURL=LayerTree.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayerTree.test.js","sources":["../../../src/components/LayerTree/LayerTree.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport 'jest-canvas-mock';\nimport renderer from 'react-test-renderer';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport LayerTree from './LayerTree';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst mountLayerTree = (layers) => {\n const layerService = new LayerService(layers);\n return mount(<LayerTree layerService={layerService} />);\n};\n\nconst renderLayerTree = (layers, props) => {\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <LayerTree layerService={layerService} {...(props || {})} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\nconst classItem = '.rs-layer-tree-item';\nconst toggleItem = '.rs-layer-tree-toggle';\n\ndescribe('LayerTree', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'root',\n }),\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n properties: {\n radioGroup: 'radio',\n },\n }),\n new Layer({\n name: '1-2',\n properties: {\n radioGroup: 'radio',\n },\n visible: false,\n children: [\n new Layer({\n name: '1-2-1',\n visible: false,\n }),\n new Layer({\n name: '1-2-2',\n visible: false,\n }),\n new Layer({\n name: '2',\n visible: false,\n }),\n ],\n }),\n ],\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n renderLayerTree(layers);\n });\n\n test('when no layers.', () => {\n const layerService = new LayerService();\n const component = renderer.create(\n <LayerTree layerService={layerService} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('when renderItem is used.', () => {\n renderLayerTree(layers, {\n renderItem: (item) => {\n const { name } = item;\n return <div key={name}>{name}</div>;\n },\n });\n });\n\n test('when classNames are used.', () => {\n renderLayerTree(layers, { className: 'foo' });\n });\n\n test('when an item is hidden.', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return !!item.children.length;\n },\n });\n });\n\n test('when an item is hidden (different layer tree levels)', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return item.isBaseLayer || item.get('hideInLegend');\n },\n });\n });\n\n test('when an item use renderBeforeItem.', () => {\n renderLayerTree(layers, {\n renderBeforeItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name before item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when an item use renderAfterItem.', () => {\n renderLayerTree(layers, {\n renderAfterItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name after item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when expandChildren is true.', () => {\n renderLayerTree(layers, {\n expandChildren: true,\n });\n });\n\n test('when expandChildren is a function.', () => {\n renderLayerTree(layers, {\n expandChildren: (lyrs) => {\n return lyrs.length === 3;\n },\n });\n });\n\n test('when items are always expanded', () => {\n const newLayers = [\n new Layer({\n name: 'Expanded layer 1 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.1.1.1 (as parent is expanded)',\n visible: true,\n }),\n ],\n }),\n new Layer({\n name: 'Hidden layer 1.1.1 (because of hidden=true)',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 1.1.1.1 (as parent is hidden)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 2 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Visible layer 2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Visible layer 2.2 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n ];\n\n renderLayerTree(newLayers, {\n isItemHidden: (item) => {\n return item.get('hideInLegend');\n },\n });\n });\n });\n\n describe('triggers onInputClick', () => {\n let wrapper;\n let spy;\n let spy2;\n const newLayers = [\n new Layer({\n name: 'foo',\n }),\n ];\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(0);\n expect(spy.mock.calls[0][0].name).toBe('foo');\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onInputClick');\n spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n afterEach(() => {\n spy.mockRestore();\n spy2.mockRestore();\n });\n\n test('when we press enter with keyboard on the label element.', () => {\n wrapper.find('label').at(0).simulate('keypress', { which: 13 });\n expectCalled();\n });\n\n test('when we click on input.', () => {\n wrapper.find('input').at(0).simulate('click');\n expectCalled();\n });\n\n test('when we click on toggle button (label+arrow) of an item without children.', () => {\n wrapper.find(classItem).first().childAt(1).simulate('click');\n expectCalled();\n });\n });\n\n describe('triggers onToggle', () => {\n let wrapper;\n let spy;\n const newLayers = [\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n }),\n new Layer({\n name: '1-1-1',\n }),\n ],\n }),\n ];\n\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n test('when we click on toggle button (label+arrow) of an item with children', () => {\n wrapper.find(toggleItem).first().simulate('click');\n expectCalled();\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import renderer from 'react-test-renderer';
|
|
4
|
-
import { configure, mount } from 'enzyme';
|
|
5
|
-
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
|
|
6
|
-
import 'jest-canvas-mock';
|
|
7
|
-
import OLMap from 'ol/Map';
|
|
8
|
-
import OLMousePosition from 'ol/control/MousePosition';
|
|
9
|
-
import MousePosition from './MousePosition';
|
|
10
|
-
|
|
11
|
-
configure({ adapter: new Adapter() });
|
|
12
|
-
var expectSnapshot = function (props) {
|
|
13
|
-
var map = new OLMap({});
|
|
14
|
-
var component = renderer.create(React.createElement( MousePosition, Object.assign({}, { map: map }, props)));
|
|
15
|
-
var tree = component.toJSON();
|
|
16
|
-
expect(tree).toMatchSnapshot();
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
describe('MousePosition', function () {
|
|
20
|
-
describe('matches snapshots', function () {
|
|
21
|
-
test('using default values.', function () {
|
|
22
|
-
expectSnapshot({});
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test('using no projections.', function () {
|
|
26
|
-
expectSnapshot({
|
|
27
|
-
projections: [],
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test('using only one projection', function () {
|
|
32
|
-
expectSnapshot({
|
|
33
|
-
projections: [{ label: 'foo', value: 'foo' }],
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('using multiple projections.', function () {
|
|
38
|
-
expectSnapshot({
|
|
39
|
-
projections: [
|
|
40
|
-
{ label: 'foo', value: 'foo' },
|
|
41
|
-
{ label: 'bar', value: 'bar' } ],
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test('add MousePosition control to the map.', function () {
|
|
47
|
-
var map = new OLMap({});
|
|
48
|
-
var spy = jest.spyOn(map, 'removeControl');
|
|
49
|
-
var spy2 = jest.spyOn(map, 'addControl');
|
|
50
|
-
var fn = jest.fn();
|
|
51
|
-
mount(
|
|
52
|
-
React.createElement( MousePosition, {
|
|
53
|
-
map: map, projections: [
|
|
54
|
-
{
|
|
55
|
-
label: 'EPSG:4326',
|
|
56
|
-
value: 'EPSG:4326',
|
|
57
|
-
format: fn,
|
|
58
|
-
} ] })
|
|
59
|
-
);
|
|
60
|
-
var ctrl = spy2.mock.calls[0][0];
|
|
61
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
62
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
63
|
-
expect(ctrl).toBeInstanceOf(OLMousePosition);
|
|
64
|
-
expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');
|
|
65
|
-
expect(ctrl.getCoordinateFormat()).toBe(fn);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
test('add/remove MousePosition control on mount/unmount.', function () {
|
|
69
|
-
var map = new OLMap({});
|
|
70
|
-
var spy = jest.spyOn(map, 'removeControl');
|
|
71
|
-
var spy2 = jest.spyOn(map, 'addControl');
|
|
72
|
-
var wrapper = mount(React.createElement( MousePosition, { map: map }));
|
|
73
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
74
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
75
|
-
wrapper.unmount();
|
|
76
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
77
|
-
expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
test('triggers onChange when select projection.', function () {
|
|
81
|
-
var map = new OLMap({});
|
|
82
|
-
var onChange = jest.fn(function () {});
|
|
83
|
-
var wrapper = mount(
|
|
84
|
-
React.createElement( MousePosition, {
|
|
85
|
-
map: map, onChange: onChange, projections: [
|
|
86
|
-
{
|
|
87
|
-
label: 'EPSG:4326',
|
|
88
|
-
value: 'EPSG:4326',
|
|
89
|
-
format: jest.fn(),
|
|
90
|
-
} ] })
|
|
91
|
-
);
|
|
92
|
-
// onChange triggered on instantiation.
|
|
93
|
-
expect(onChange).toHaveBeenCalledTimes(0);
|
|
94
|
-
wrapper.find('select').simulate('change', {});
|
|
95
|
-
expect(onChange).toHaveBeenCalledTimes(1);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
test('applies new format and value when we select a new projection.', function () {
|
|
99
|
-
var map = new OLMap({});
|
|
100
|
-
var spy = jest.spyOn(map, 'addControl');
|
|
101
|
-
var projs = [
|
|
102
|
-
{
|
|
103
|
-
label: 'EPSG:4326',
|
|
104
|
-
value: 'EPSG:4326',
|
|
105
|
-
format: jest.fn(),
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
label: 'EPSG:3857',
|
|
109
|
-
value: 'EPSG:3857',
|
|
110
|
-
format: jest.fn(),
|
|
111
|
-
} ];
|
|
112
|
-
var wrapper = mount(React.createElement( MousePosition, { map: map, projections: projs }));
|
|
113
|
-
|
|
114
|
-
var ctrl = spy.mock.calls[0][0];
|
|
115
|
-
expect(ctrl.getProjection().getCode()).toBe(projs[0].value);
|
|
116
|
-
expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);
|
|
117
|
-
wrapper
|
|
118
|
-
.find('select')
|
|
119
|
-
.simulate('change', { target: { value: 'EPSG:3857' } });
|
|
120
|
-
expect(ctrl.getProjection().getCode()).toBe(projs[1].value);
|
|
121
|
-
expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
//# sourceMappingURL=MousePosition.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MousePosition.test.js","sources":["../../../src/components/MousePosition/MousePosition.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport OLMousePosition from 'ol/control/MousePosition';\nimport MousePosition from './MousePosition';\n\nconfigure({ adapter: new Adapter() });\nconst expectSnapshot = (props) => {\n const map = new OLMap({});\n const component = renderer.create(<MousePosition map={map} {...props} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('MousePosition', () => {\n describe('matches snapshots', () => {\n test('using default values.', () => {\n expectSnapshot({});\n });\n\n test('using no projections.', () => {\n expectSnapshot({\n projections: [],\n });\n });\n\n test('using only one projection', () => {\n expectSnapshot({\n projections: [{ label: 'foo', value: 'foo' }],\n });\n });\n\n test('using multiple projections.', () => {\n expectSnapshot({\n projections: [\n { label: 'foo', value: 'foo' },\n { label: 'bar', value: 'bar' },\n ],\n });\n });\n });\n\n test('add MousePosition control to the map.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const fn = jest.fn();\n mount(\n <MousePosition\n map={map}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: fn,\n },\n ]}\n />,\n );\n const ctrl = spy2.mock.calls[0][0];\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(ctrl).toBeInstanceOf(OLMousePosition);\n expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');\n expect(ctrl.getCoordinateFormat()).toBe(fn);\n });\n\n test('add/remove MousePosition control on mount/unmount.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const wrapper = mount(<MousePosition map={map} />);\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n wrapper.unmount();\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);\n });\n\n test('triggers onChange when select projection.', () => {\n const map = new OLMap({});\n const onChange = jest.fn(() => {});\n const wrapper = mount(\n <MousePosition\n map={map}\n onChange={onChange}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n ]}\n />,\n );\n // onChange triggered on instantiation.\n expect(onChange).toHaveBeenCalledTimes(0);\n wrapper.find('select').simulate('change', {});\n expect(onChange).toHaveBeenCalledTimes(1);\n });\n\n test('applies new format and value when we select a new projection.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'addControl');\n const projs = [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n format: jest.fn(),\n },\n ];\n const wrapper = mount(<MousePosition map={map} projections={projs} />);\n\n const ctrl = spy.mock.calls[0][0];\n expect(ctrl.getProjection().getCode()).toBe(projs[0].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);\n wrapper\n .find('select')\n .simulate('change', { target: { value: 'EPSG:3857' } });\n expect(ctrl.getProjection().getCode()).toBe(projs[1].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);\n });\n});\n"],"names":["const"],"mappings":"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"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import 'jest-canvas-mock';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import renderer from 'react-test-renderer';
|
|
4
|
-
import { act } from 'react-dom/test-utils';
|
|
5
|
-
import { configure, mount } from 'enzyme';
|
|
6
|
-
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
|
|
7
|
-
import MapEvent from 'ol/MapEvent';
|
|
8
|
-
import OLMap from 'ol/Map';
|
|
9
|
-
import OLView from 'ol/View';
|
|
10
|
-
import { TiImage } from 'react-icons/ti';
|
|
11
|
-
import NorthArrow from './NorthArrow';
|
|
12
|
-
|
|
13
|
-
configure({ adapter: new Adapter() });
|
|
14
|
-
var olView;
|
|
15
|
-
var olMap;
|
|
16
|
-
|
|
17
|
-
describe('NorthArrow', function () {
|
|
18
|
-
beforeEach(function () {
|
|
19
|
-
olView = new OLView();
|
|
20
|
-
olMap = new OLMap({ view: olView });
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('should match snapshot with default value.', function () {
|
|
24
|
-
var component;
|
|
25
|
-
renderer.act(function () {
|
|
26
|
-
component = renderer.create(React.createElement( NorthArrow, { map: olMap }));
|
|
27
|
-
});
|
|
28
|
-
var tree = component.toJSON();
|
|
29
|
-
expect(tree).toMatchSnapshot();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
test('should match snapshot with custom attributes.', function () {
|
|
33
|
-
var component;
|
|
34
|
-
renderer.act(function () {
|
|
35
|
-
component = renderer.create(
|
|
36
|
-
React.createElement( NorthArrow, { map: olMap, className: "test-class", tabIndex: 0 })
|
|
37
|
-
);
|
|
38
|
-
});
|
|
39
|
-
var tree = component.toJSON();
|
|
40
|
-
expect(tree).toMatchSnapshot();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('should match snapshot with children.', function () {
|
|
44
|
-
var component;
|
|
45
|
-
renderer.act(function () {
|
|
46
|
-
component = renderer.create(
|
|
47
|
-
React.createElement( NorthArrow, { map: olMap },
|
|
48
|
-
React.createElement( TiImage, null )
|
|
49
|
-
)
|
|
50
|
-
);
|
|
51
|
-
});
|
|
52
|
-
var tree = component.toJSON();
|
|
53
|
-
expect(tree).toMatchSnapshot();
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('should match snapshot rotated.', function () {
|
|
57
|
-
var component;
|
|
58
|
-
renderer.act(function () {
|
|
59
|
-
component = renderer.create(
|
|
60
|
-
React.createElement( NorthArrow, { map: olMap, rotationOffset: 45 })
|
|
61
|
-
);
|
|
62
|
-
});
|
|
63
|
-
var tree = component.toJSON();
|
|
64
|
-
expect(tree).toMatchSnapshot();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test('should match snapshot with circle.', function () {
|
|
68
|
-
var component;
|
|
69
|
-
renderer.act(function () {
|
|
70
|
-
component = renderer.create(React.createElement( NorthArrow, { circled: true, map: olMap }));
|
|
71
|
-
});
|
|
72
|
-
var tree = component.toJSON();
|
|
73
|
-
expect(tree).toMatchSnapshot();
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
test('should react on view rotation (transform: `rotate(20deg)`)', function () {
|
|
77
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap }));
|
|
78
|
-
// Trigger view rotation
|
|
79
|
-
olMap.getView().setRotation(0.3490658503988659);
|
|
80
|
-
act(function () {
|
|
81
|
-
olMap.dispatchEvent(new MapEvent('postrender', olMap));
|
|
82
|
-
// 20 degrees = 0.3490658503988659 radians
|
|
83
|
-
});
|
|
84
|
-
expect(wrapper.html()).toMatchSnapshot();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test('should react on view rotation with offset (transform: `rotate(10deg)`)', function () {
|
|
88
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap, rotationOffset: -10 }));
|
|
89
|
-
olMap.getView().setRotation(0.3490658503988659);
|
|
90
|
-
act(function () {
|
|
91
|
-
olMap.dispatchEvent(new MapEvent('postrender', olMap));
|
|
92
|
-
});
|
|
93
|
-
expect(wrapper.html()).toMatchSnapshot();
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
test('should remove post render event on unmount', function () {
|
|
97
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap, rotationOffset: -10 }));
|
|
98
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
99
|
-
expect(olMap.listeners_.postrender.length).toBe(4);
|
|
100
|
-
wrapper.unmount();
|
|
101
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
102
|
-
expect(olMap.listeners_.postrender.length).toBe(3);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
//# sourceMappingURL=NorthArrow.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NorthArrow.test.js","sources":["../../../src/components/NorthArrow/NorthArrow.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport MapEvent from 'ol/MapEvent';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport NorthArrow from './NorthArrow';\n\nconfigure({ adapter: new Adapter() });\nlet olView;\nlet olMap;\n\ndescribe('NorthArrow', () => {\n beforeEach(() => {\n olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should match snapshot with default value.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with custom attributes.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} className=\"test-class\" tabIndex={0} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap}>\n <TiImage />\n </NorthArrow>,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot rotated.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} rotationOffset={45} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with circle.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow circled map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on view rotation (transform: `rotate(20deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} />);\n // Trigger view rotation\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n // 20 degrees = 0.3490658503988659 radians\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should react on view rotation with offset (transform: `rotate(10deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should remove post render event on unmount', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(4);\n wrapper.unmount();\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(3);\n });\n});\n"],"names":["let","const"],"mappings":"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"}
|