react-spatial 2.0.0-beta.1 → 2.0.0-beta.2
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/README.md +5 -10
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +243 -220
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.scss +6 -5
- package/components/BaseLayerSwitcher/index.js +1 -3
- package/components/BaseLayerSwitcher/index.js.map +7 -1
- package/components/BasicMap/BasicMap.js +165 -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 +434 -556
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.md.scss +1 -1
- package/components/CanvasSaveButton/index.js +1 -3
- package/components/CanvasSaveButton/index.js.map +7 -1
- package/components/Copyright/Copyright.js +44 -77
- 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 +44 -92
- 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/FitExtent/FitExtent.js +31 -46
- 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/Geolocation/Geolocation.js +158 -228
- package/components/Geolocation/Geolocation.js.map +7 -1
- package/components/Geolocation/Geolocation.scss +7 -5
- package/components/Geolocation/index.js +1 -3
- package/components/Geolocation/index.js.map +7 -1
- package/components/LayerTree/LayerTree.js +359 -357
- package/components/LayerTree/LayerTree.js.map +7 -1
- package/components/LayerTree/LayerTree.scss +4 -6
- package/components/LayerTree/index.js +1 -3
- package/components/LayerTree/index.js.map +7 -1
- package/components/MousePosition/MousePosition.js +71 -109
- 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 +37 -61
- 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 +93 -123
- 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 +194 -229
- 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 +139 -215
- package/components/Popup/Popup.js.map +7 -1
- package/components/Popup/Popup.md.scss +1 -0
- package/components/Popup/Popup.scss +3 -1
- package/components/Popup/index.js +1 -3
- package/components/Popup/index.js.map +7 -1
- package/components/ResizeHandler/ResizeHandler.js +88 -137
- 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 +227 -277
- package/components/RouteSchedule/RouteSchedule.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.md.scss +4 -2
- package/components/RouteSchedule/RouteSchedule.scss +12 -23
- package/components/RouteSchedule/index.js +1 -3
- package/components/RouteSchedule/index.js.map +7 -1
- package/components/ScaleLine/ScaleLine.js +17 -39
- package/components/ScaleLine/ScaleLine.js.map +7 -1
- package/components/ScaleLine/ScaleLine.scss +6 -4
- package/components/ScaleLine/index.js +1 -3
- package/components/ScaleLine/index.js.map +7 -1
- package/components/StopsFinder/StopsFinder.js +134 -162
- package/components/StopsFinder/StopsFinder.js.map +7 -1
- package/components/StopsFinder/StopsFinderOption.js +30 -60
- 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/Zoom/Zoom.js +102 -106
- package/components/Zoom/Zoom.js.map +7 -1
- package/components/Zoom/Zoom.md.scss +3 -1
- package/components/Zoom/Zoom.scss +7 -5
- package/components/Zoom/index.js +1 -3
- package/components/Zoom/index.js.map +7 -1
- package/images/geops_qr.png +0 -0
- package/package.json +88 -182
- package/propTypes.js +36 -24
- package/propTypes.js.map +7 -1
- package/setupTests.js +21 -4
- package/setupTests.js.map +7 -1
- package/themes/README.md +26 -0
- package/themes/default/components.scss +9 -14
- package/themes/default/examples.scss +20 -20
- package/themes/default/index.scss +3 -3
- package/themes/default/mixins.scss +7 -5
- package/themes/default/variables.scss +27 -25
- package/utils/GlobalsForOle.js +72 -73
- package/utils/GlobalsForOle.js.map +7 -1
- package/utils/KML.js +320 -381
- package/utils/KML.js.map +7 -1
- package/utils/Styles.js +25 -33
- package/utils/Styles.js.map +7 -1
- package/utils/getLayersAsFlatArray.js +14 -0
- package/utils/getLayersAsFlatArray.js.map +7 -0
- package/utils/getPolygonPattern.js +11 -44
- package/utils/getPolygonPattern.js.map +7 -1
- package/utils/timeUtils.js +20 -35
- package/utils/timeUtils.js.map +7 -1
- package/LayerService.js +0 -193
- package/LayerService.js.map +0 -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.js +0 -131
- package/components/FilterButton/FilterButton.js.map +0 -1
- package/components/FilterButton/FilterButton.scss +0 -36
- package/components/FilterButton/FilterButton.test.js +0 -48
- package/components/FilterButton/FilterButton.test.js.map +0 -1
- package/components/FilterButton/index.js +0 -3
- package/components/FilterButton/index.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.js +0 -143
- package/components/FollowButton/FollowButton.js.map +0 -1
- package/components/FollowButton/FollowButton.scss +0 -36
- package/components/FollowButton/FollowButton.test.js +0 -57
- package/components/FollowButton/FollowButton.test.js.map +0 -1
- package/components/FollowButton/index.js +0 -3
- package/components/FollowButton/index.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.js +0 -230
- package/components/Search/Search.js.map +0 -1
- package/components/Search/Search.md.scss +0 -4
- package/components/Search/Search.scss +0 -78
- package/components/Search/Search.test.js +0 -15
- package/components/Search/Search.test.js.map +0 -1
- package/components/Search/SearchService.js +0 -72
- package/components/Search/SearchService.js.map +0 -1
- package/components/Search/engines/Engine.js +0 -26
- package/components/Search/engines/Engine.js.map +0 -1
- package/components/Search/engines/StopFinder.js +0 -47
- package/components/Search/engines/StopFinder.js.map +0 -1
- package/components/Search/index.js +0 -6
- package/components/Search/index.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.js +0 -171
- package/components/TrackerControl/TrackerControl.js.map +0 -1
- package/components/TrackerControl/TrackerControl.scss +0 -30
- package/components/TrackerControl/TrackerControl.test.js +0 -17
- package/components/TrackerControl/TrackerControl.test.js.map +0 -1
- package/components/TrackerControl/index.js +0 -3
- package/components/TrackerControl/index.js.map +0 -1
- package/components/Zoom/Zoom.test.js +0 -150
- package/components/Zoom/Zoom.test.js.map +0 -1
- package/images/FilterButton/filter.svg +0 -1
- package/images/FollowButton/follow.svg +0 -1
- package/images/baselayer/osm.baselayer.hot.png +0 -0
- package/images/baselayer/osm.baselayer.png +0 -0
- 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.js +0 -105
- package/utils/KMLFormat.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,263 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import renderer from 'react-test-renderer';
|
|
3
|
-
import { configure, mount, shallow } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
|
|
6
|
-
import 'jest-canvas-mock';
|
|
7
|
-
import Map from 'ol/Map';
|
|
8
|
-
import View from 'ol/View';
|
|
9
|
-
import MapEvent from 'ol/MapEvent';
|
|
10
|
-
import Geolocation from './Geolocation';
|
|
11
|
-
|
|
12
|
-
configure({ adapter: new Adapter() });
|
|
13
|
-
|
|
14
|
-
var geolocationBackup = global.navigator.geolocation;
|
|
15
|
-
|
|
16
|
-
var mockGeolocation = function () {
|
|
17
|
-
var mock = {
|
|
18
|
-
clearWatch: jest.fn(),
|
|
19
|
-
getCurrentPosition: jest.fn(),
|
|
20
|
-
watchPosition: function (onSuccess) {
|
|
21
|
-
onSuccess({
|
|
22
|
-
coords: {
|
|
23
|
-
latitude: 47.9913611,
|
|
24
|
-
longitude: 7.84868,
|
|
25
|
-
accuracy: 55,
|
|
26
|
-
},
|
|
27
|
-
timestamp: 1552660077044,
|
|
28
|
-
});
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
global.navigator.geolocation = mock;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var mockMissingGeolocation = function () {
|
|
36
|
-
delete global.navigator.geolocation;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
var restoreGeolocation = function () {
|
|
40
|
-
global.navigator.geolocation = geolocationBackup;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
var CallbackHandler = function CallbackHandler () {};
|
|
44
|
-
|
|
45
|
-
CallbackHandler.onError = function onError () {};
|
|
46
|
-
|
|
47
|
-
CallbackHandler.onSuccess = function onSuccess () {};
|
|
48
|
-
|
|
49
|
-
CallbackHandler.onActivate = function onActivate () {};
|
|
50
|
-
|
|
51
|
-
CallbackHandler.onDeactivate = function onDeactivate () {};
|
|
52
|
-
|
|
53
|
-
describe('Geolocation', function () {
|
|
54
|
-
var map;
|
|
55
|
-
|
|
56
|
-
beforeEach(function () {
|
|
57
|
-
var target = document.createElement('div');
|
|
58
|
-
var style = target.style;
|
|
59
|
-
style.position = 'absolute';
|
|
60
|
-
style.left = '-1000px';
|
|
61
|
-
style.top = '-1000px';
|
|
62
|
-
style.width = '100px';
|
|
63
|
-
style.height = '100px';
|
|
64
|
-
document.body.appendChild(target);
|
|
65
|
-
|
|
66
|
-
map = new Map({
|
|
67
|
-
target: target,
|
|
68
|
-
view: new View({
|
|
69
|
-
center: [0, 0],
|
|
70
|
-
resolutions: [1],
|
|
71
|
-
zoom: 0,
|
|
72
|
-
}),
|
|
73
|
-
});
|
|
74
|
-
map.renderSync();
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
afterEach(function () {
|
|
78
|
-
var target = map.getTarget();
|
|
79
|
-
map.setTarget(null);
|
|
80
|
-
if (target && target.parentNode) {
|
|
81
|
-
target.parentNode.removeChild(target);
|
|
82
|
-
}
|
|
83
|
-
map.dispose();
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
describe('should match snapshot', function () {
|
|
87
|
-
test('minimum props', function () {
|
|
88
|
-
var component = renderer.create(React.createElement( Geolocation, { map: map }));
|
|
89
|
-
var tree = component.toJSON();
|
|
90
|
-
expect(tree).toMatchSnapshot();
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
test('with title', function () {
|
|
94
|
-
var component = renderer.create(
|
|
95
|
-
React.createElement( Geolocation, { map: map, title: "Lokalisieren" })
|
|
96
|
-
);
|
|
97
|
-
var tree = component.toJSON();
|
|
98
|
-
expect(tree).toMatchSnapshot();
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
test('with class name', function () {
|
|
102
|
-
var component = renderer.create(
|
|
103
|
-
React.createElement( Geolocation, { map: map, className: "my-class-name" })
|
|
104
|
-
);
|
|
105
|
-
var tree = component.toJSON();
|
|
106
|
-
expect(tree).toMatchSnapshot();
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
test('should use children', function () {
|
|
111
|
-
mockGeolocation();
|
|
112
|
-
|
|
113
|
-
var wrapper = mount(React.createElement( Geolocation, { map: map }, "test"));
|
|
114
|
-
|
|
115
|
-
var text = wrapper.find('.rs-geolocation').first().text();
|
|
116
|
-
|
|
117
|
-
expect(text).toBe('test');
|
|
118
|
-
|
|
119
|
-
restoreGeolocation();
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
describe('button classes', function () {
|
|
123
|
-
test('class should be active', function () {
|
|
124
|
-
mockGeolocation();
|
|
125
|
-
|
|
126
|
-
var wrapper = mount(React.createElement( Geolocation, { map: map }));
|
|
127
|
-
var basic = wrapper.getDOMNode();
|
|
128
|
-
|
|
129
|
-
wrapper.find('.rs-geolocation').first().simulate('click');
|
|
130
|
-
|
|
131
|
-
expect(basic.className).toBe('rs-geolocation rs-active');
|
|
132
|
-
|
|
133
|
-
restoreGeolocation();
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
test('class should not be active', function () {
|
|
137
|
-
mockGeolocation();
|
|
138
|
-
|
|
139
|
-
var wrapper = mount(React.createElement( Geolocation, { map: map }));
|
|
140
|
-
var basic = wrapper.getDOMNode();
|
|
141
|
-
|
|
142
|
-
wrapper
|
|
143
|
-
.find('.rs-geolocation')
|
|
144
|
-
.first()
|
|
145
|
-
.simulate('click')
|
|
146
|
-
.simulate('click');
|
|
147
|
-
|
|
148
|
-
expect(basic.className).toBe('rs-geolocation ');
|
|
149
|
-
|
|
150
|
-
restoreGeolocation();
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
test("highlight on first toggle", function () {
|
|
155
|
-
mockGeolocation();
|
|
156
|
-
|
|
157
|
-
var component = shallow(React.createElement( Geolocation, { map: map }));
|
|
158
|
-
var instance = component.instance();
|
|
159
|
-
var spy = jest.spyOn(instance, 'highlight');
|
|
160
|
-
instance.toggle();
|
|
161
|
-
expect(spy).toHaveBeenCalled();
|
|
162
|
-
|
|
163
|
-
restoreGeolocation();
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
test("success/activate/deactivate callback functions should be called", function () {
|
|
167
|
-
mockGeolocation();
|
|
168
|
-
var spyOnSuccess = jest.spyOn(CallbackHandler, 'onSuccess');
|
|
169
|
-
var spyOnActivate = jest.spyOn(CallbackHandler, 'onActivate');
|
|
170
|
-
var spyOnDeactivate = jest.spyOn(CallbackHandler, 'onDeactivate');
|
|
171
|
-
|
|
172
|
-
var wrapper = mount(
|
|
173
|
-
React.createElement( Geolocation, {
|
|
174
|
-
map: map, onSuccess: function () {
|
|
175
|
-
return CallbackHandler.onSuccess();
|
|
176
|
-
}, onActivate: function () {
|
|
177
|
-
return CallbackHandler.onActivate();
|
|
178
|
-
}, onDeactivate: function () {
|
|
179
|
-
return CallbackHandler.onDeactivate();
|
|
180
|
-
} })
|
|
181
|
-
);
|
|
182
|
-
|
|
183
|
-
wrapper.find('.rs-geolocation').first().simulate('click');
|
|
184
|
-
|
|
185
|
-
expect(spyOnActivate).toHaveBeenCalled();
|
|
186
|
-
expect(spyOnSuccess).toHaveBeenCalled();
|
|
187
|
-
|
|
188
|
-
wrapper.find('.rs-geolocation').first().simulate('click');
|
|
189
|
-
|
|
190
|
-
expect(spyOnDeactivate).toHaveBeenCalled();
|
|
191
|
-
|
|
192
|
-
restoreGeolocation();
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
test("error function should be called", function () {
|
|
196
|
-
mockMissingGeolocation();
|
|
197
|
-
|
|
198
|
-
var spy = jest.spyOn(CallbackHandler, 'onError');
|
|
199
|
-
|
|
200
|
-
var wrapper = mount(
|
|
201
|
-
React.createElement( Geolocation, {
|
|
202
|
-
map: map, onError: function () {
|
|
203
|
-
return CallbackHandler.onError();
|
|
204
|
-
} })
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
wrapper.find('.rs-geolocation').first().simulate('click');
|
|
208
|
-
|
|
209
|
-
expect(spy).toHaveBeenCalled();
|
|
210
|
-
|
|
211
|
-
restoreGeolocation();
|
|
212
|
-
});
|
|
213
|
-
|
|
214
|
-
describe('map centering', function () {
|
|
215
|
-
test('centers map', function () {
|
|
216
|
-
mockGeolocation();
|
|
217
|
-
|
|
218
|
-
var center1 = [742952.8821531708, 6330118.608483334];
|
|
219
|
-
map.getView().setCenter(center1);
|
|
220
|
-
|
|
221
|
-
var component = shallow(React.createElement( Geolocation, { map: map }));
|
|
222
|
-
component.instance().toggle();
|
|
223
|
-
|
|
224
|
-
var center2 = map.getView().getCenter();
|
|
225
|
-
expect(center1).not.toEqual(center2);
|
|
226
|
-
|
|
227
|
-
restoreGeolocation();
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
test('sets isRecenteringToPosition=false after pointerdrag event with the noCenterAfterDrag prop', function () {
|
|
231
|
-
mockGeolocation();
|
|
232
|
-
|
|
233
|
-
var component = shallow(React.createElement( Geolocation, { map: map, noCenterAfterDrag: true }));
|
|
234
|
-
component.instance().toggle();
|
|
235
|
-
|
|
236
|
-
expect(component.instance().isRecenteringToPosition).toEqual(true);
|
|
237
|
-
|
|
238
|
-
map.dispatchEvent(new MapEvent('pointerdrag', map));
|
|
239
|
-
expect(component.instance().isRecenteringToPosition).toEqual(false);
|
|
240
|
-
|
|
241
|
-
restoreGeolocation();
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
test('custom style function', function () {
|
|
246
|
-
mockGeolocation();
|
|
247
|
-
|
|
248
|
-
var styleFunc = jest.fn();
|
|
249
|
-
|
|
250
|
-
var component = shallow(
|
|
251
|
-
React.createElement( Geolocation, { map: map, colorOrStyleFunc: styleFunc })
|
|
252
|
-
);
|
|
253
|
-
var instance = component.instance();
|
|
254
|
-
instance.toggle();
|
|
255
|
-
var style = instance.layer.getSource().getFeatures()[0].getStyle();
|
|
256
|
-
|
|
257
|
-
expect(style).toBe(styleFunc);
|
|
258
|
-
|
|
259
|
-
restoreGeolocation();
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
|
|
263
|
-
//# sourceMappingURL=Geolocation.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Geolocation.test.js","sources":["../../../src/components/Geolocation/Geolocation.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\n\nimport 'jest-canvas-mock';\nimport Map from 'ol/Map';\nimport View from 'ol/View';\nimport MapEvent from 'ol/MapEvent';\nimport Geolocation from './Geolocation';\n\nconfigure({ adapter: new Adapter() });\n\nconst geolocationBackup = global.navigator.geolocation;\n\nconst mockGeolocation = () => {\n const mock = {\n clearWatch: jest.fn(),\n getCurrentPosition: jest.fn(),\n watchPosition: (onSuccess) => {\n onSuccess({\n coords: {\n latitude: 47.9913611,\n longitude: 7.84868,\n accuracy: 55,\n },\n timestamp: 1552660077044,\n });\n },\n };\n\n global.navigator.geolocation = mock;\n};\n\nconst mockMissingGeolocation = () => {\n delete global.navigator.geolocation;\n};\n\nconst restoreGeolocation = () => {\n global.navigator.geolocation = geolocationBackup;\n};\n\nclass CallbackHandler {\n static onError() {}\n\n static onSuccess() {}\n\n static onActivate() {}\n\n static onDeactivate() {}\n}\n\ndescribe('Geolocation', () => {\n let map;\n\n beforeEach(() => {\n const target = document.createElement('div');\n const { style } = target;\n style.position = 'absolute';\n style.left = '-1000px';\n style.top = '-1000px';\n style.width = '100px';\n style.height = '100px';\n document.body.appendChild(target);\n\n map = new Map({\n target,\n view: new View({\n center: [0, 0],\n resolutions: [1],\n zoom: 0,\n }),\n });\n map.renderSync();\n });\n\n afterEach(() => {\n const target = map.getTarget();\n map.setTarget(null);\n if (target && target.parentNode) {\n target.parentNode.removeChild(target);\n }\n map.dispose();\n });\n\n describe('should match snapshot', () => {\n test('minimum props', () => {\n const component = renderer.create(<Geolocation map={map} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with title', () => {\n const component = renderer.create(\n <Geolocation map={map} title=\"Lokalisieren\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with class name', () => {\n const component = renderer.create(\n <Geolocation map={map} className=\"my-class-name\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n test('should use children', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map}>test</Geolocation>);\n\n const text = wrapper.find('.rs-geolocation').first().text();\n\n expect(text).toBe('test');\n\n restoreGeolocation();\n });\n\n describe('button classes', () => {\n test('class should be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(basic.className).toBe('rs-geolocation rs-active');\n\n restoreGeolocation();\n });\n\n test('class should not be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper\n .find('.rs-geolocation')\n .first()\n .simulate('click')\n .simulate('click');\n\n expect(basic.className).toBe('rs-geolocation ');\n\n restoreGeolocation();\n });\n });\n\n test(`highlight on first toggle`, () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} />);\n const instance = component.instance();\n const spy = jest.spyOn(instance, 'highlight');\n instance.toggle();\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`success/activate/deactivate callback functions should be called`, () => {\n mockGeolocation();\n const spyOnSuccess = jest.spyOn(CallbackHandler, 'onSuccess');\n const spyOnActivate = jest.spyOn(CallbackHandler, 'onActivate');\n const spyOnDeactivate = jest.spyOn(CallbackHandler, 'onDeactivate');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onSuccess={() => {\n return CallbackHandler.onSuccess();\n }}\n onActivate={() => {\n return CallbackHandler.onActivate();\n }}\n onDeactivate={() => {\n return CallbackHandler.onDeactivate();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnActivate).toHaveBeenCalled();\n expect(spyOnSuccess).toHaveBeenCalled();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnDeactivate).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`error function should be called`, () => {\n mockMissingGeolocation();\n\n const spy = jest.spyOn(CallbackHandler, 'onError');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onError={() => {\n return CallbackHandler.onError();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n describe('map centering', () => {\n test('centers map', () => {\n mockGeolocation();\n\n const center1 = [742952.8821531708, 6330118.608483334];\n map.getView().setCenter(center1);\n\n const component = shallow(<Geolocation map={map} />);\n component.instance().toggle();\n\n const center2 = map.getView().getCenter();\n expect(center1).not.toEqual(center2);\n\n restoreGeolocation();\n });\n\n test('sets isRecenteringToPosition=false after pointerdrag event with the noCenterAfterDrag prop', () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} noCenterAfterDrag />);\n component.instance().toggle();\n\n expect(component.instance().isRecenteringToPosition).toEqual(true);\n\n map.dispatchEvent(new MapEvent('pointerdrag', map));\n expect(component.instance().isRecenteringToPosition).toEqual(false);\n\n restoreGeolocation();\n });\n });\n\n test('custom style function', () => {\n mockGeolocation();\n\n const styleFunc = jest.fn();\n\n const component = shallow(\n <Geolocation map={map} colorOrStyleFunc={styleFunc} />,\n );\n const instance = component.instance();\n instance.toggle();\n const style = instance.layer.getSource().getFeatures()[0].getStyle();\n\n expect(style).toBe(styleFunc);\n\n restoreGeolocation();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
|
|
@@ -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 'enzyme-adapter-react-16';
|
|
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 'enzyme-adapter-react-16';\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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"}
|