react-spatial 1.1.6 → 1.2.0-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.
@@ -1,14 +1,8 @@
1
- /* eslint-disable react/jsx-props-no-spreading */
2
1
  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
2
  import { Layer } from 'mobility-toolbox-js/ol';
3
+ import { fireEvent, render } from '@testing-library/react';
8
4
  import BaseLayerSwitcher from './BaseLayerSwitcher';
9
5
 
10
- configure({ adapter: new Adapter() });
11
-
12
6
  describe('BaseLayerSwitcher', function () {
13
7
  var layers;
14
8
  var layerImages = {
@@ -37,49 +31,57 @@ describe('BaseLayerSwitcher', function () {
37
31
 
38
32
  describe('matches snapshots', function () {
39
33
  test('using default properties.', function () {
40
- var component = renderer.create(
34
+ var ref = render(
41
35
  React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages })
42
36
  );
43
- var tree = component.toJSON();
44
- expect(tree).toMatchSnapshot();
37
+ var container = ref.container;
38
+ expect(container.innerHTML).toMatchSnapshot();
45
39
  });
46
40
  });
47
41
 
48
42
  test('the correct baselayer is visible on mount', function () {
49
- var comp = mount(
50
- React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages })
51
- );
52
- expect(comp.props().layers[0].visible).toBe(true);
43
+ render(React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages }));
44
+ expect(layers[0].visible).toBe(true);
53
45
  });
54
46
 
55
- test('removes open class and switches layer on click', function () {
56
- var comp = mount(
47
+ test('removes open class and switches layer on click', async function () {
48
+ var ref = render(
57
49
  React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages })
58
50
  );
59
- comp.find('.rs-opener').at(0).simulate('click');
60
- comp.find('.rs-base-layer-switcher-button').at(3).simulate('click');
51
+ var container = ref.container;
52
+ await fireEvent.click(container.querySelector('.rs-opener'));
53
+ await fireEvent.click(
54
+ container.querySelectorAll('.rs-base-layer-switcher-button')[3]
55
+ );
61
56
  expect(
62
- comp.props().layers.filter(function (layer) {
57
+ layers.filter(function (layer) {
63
58
  return layer.isBaseLayer;
64
59
  })[2].visible
65
60
  ).toBe(true);
66
- expect(comp.find('.rs-base-layer-switcher rs-open').exists()).toBe(false);
61
+ expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(
62
+ false
63
+ );
67
64
  });
68
65
 
69
- test('toggles base map instead of opening when only two base layers', function () {
70
- var comp = mount(React.createElement( BaseLayerSwitcher, { layers: layers.slice(0, 2) }));
66
+ test('toggles base map instead of opening when only two base layers', async function () {
67
+ var ref = render(
68
+ React.createElement( BaseLayerSwitcher, { layers: layers.slice(0, 2) })
69
+ );
70
+ var container = ref.container;
71
71
  expect(
72
- comp.props().layers.filter(function (layer) {
72
+ layers.filter(function (layer) {
73
73
  return layer.isBaseLayer;
74
74
  })[0].visible
75
75
  ).toBe(true);
76
- comp.find('.rs-opener').at(0).simulate('click');
76
+ await fireEvent.click(container.querySelector('.rs-opener'));
77
77
  expect(
78
- comp.props().layers.filter(function (layer) {
78
+ layers.filter(function (layer) {
79
79
  return layer.isBaseLayer;
80
80
  })[1].visible
81
81
  ).toBe(true);
82
- expect(comp.find('.rs-base-layer-switcher rs-open').exists()).toBe(false);
82
+ expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(
83
+ false
84
+ );
83
85
  });
84
86
  });
85
87
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayerSwitcher.test.js","sources":["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.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 BaseLayerSwitcher from './BaseLayerSwitcher';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('BaseLayerSwitcher', () => {\n let layers;\n const layerImages = {\n layerFoo: 'foo',\n layerBar: 'bar',\n layerFoobar: 'foobar',\n };\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n const component = renderer.create(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n test('the correct baselayer is visible on mount', () => {\n const comp = mount(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n expect(comp.props().layers[0].visible).toBe(true);\n });\n\n test('removes open class and switches layer on click', () => {\n const comp = mount(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n comp.find('.rs-opener').at(0).simulate('click');\n comp.find('.rs-base-layer-switcher-button').at(3).simulate('click');\n expect(\n comp.props().layers.filter((layer) => {\n return layer.isBaseLayer;\n })[2].visible,\n ).toBe(true);\n expect(comp.find('.rs-base-layer-switcher rs-open').exists()).toBe(false);\n });\n\n test('toggles base map instead of opening when only two base layers', () => {\n const comp = mount(<BaseLayerSwitcher layers={layers.slice(0, 2)} />);\n expect(\n comp.props().layers.filter((layer) => {\n return layer.isBaseLayer;\n })[0].visible,\n ).toBe(true);\n comp.find('.rs-opener').at(0).simulate('click');\n expect(\n comp.props().layers.filter((layer) => {\n return layer.isBaseLayer;\n })[1].visible,\n ).toBe(true);\n expect(comp.find('.rs-base-layer-switcher rs-open').exists()).toBe(false);\n });\n});\n"],"names":["let","const"],"mappings":"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"}
1
+ {"version":3,"file":"BaseLayerSwitcher.test.js","sources":["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js"],"sourcesContent":["import React from 'react';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport { fireEvent, render } from '@testing-library/react';\nimport BaseLayerSwitcher from './BaseLayerSwitcher';\n\ndescribe('BaseLayerSwitcher', () => {\n let layers;\n const layerImages = {\n layerFoo: 'foo',\n layerBar: 'bar',\n layerFoobar: 'foobar',\n };\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n expect(container.innerHTML).toMatchSnapshot();\n });\n });\n\n test('the correct baselayer is visible on mount', () => {\n render(<BaseLayerSwitcher layers={layers} layerImages={layerImages} />);\n expect(layers[0].visible).toBe(true);\n });\n\n test('removes open class and switches layer on click', async () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n await fireEvent.click(container.querySelector('.rs-opener'));\n await fireEvent.click(\n container.querySelectorAll('.rs-base-layer-switcher-button')[3],\n );\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[2].visible,\n ).toBe(true);\n expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(\n false,\n );\n });\n\n test('toggles base map instead of opening when only two base layers', async () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers.slice(0, 2)} />,\n );\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[0].visible,\n ).toBe(true);\n await fireEvent.click(container.querySelector('.rs-opener'));\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[1].visible,\n ).toBe(true);\n expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(\n false,\n );\n });\n});\n"],"names":["let","const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,SAAS,KAAK,QAAQ,wBAAwB,CAAC;AAC/C,SAAS,SAAS,EAAE,MAAM,QAAQ,wBAAwB,CAAC;AAC3D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD;AACA,QAAQ,CAAC,mBAAmB,WAAE,GAAM;AACpC,EAAEA,GAAG,CAAC,MAAM,CAAC;AACb,EAAEC,GAAK,CAAC,WAAW,GAAG;AACtB,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,WAAW,EAAE,QAAQ;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,UAAU,UAAC,GAAM;AACnB,IAAI,MAAM,GAAG;AACb,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,WAAW,EAAE,IAAI;AACzB,OAAO,CAAC;AACR,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,OAAO,EAAE,KAAK;AACtB,OAAO,CAAC;AACR,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,OAAO,EAAE,KAAK;AACtB,OAAO,CAAC,CACJ,CAAC,CAAC;AACN,GAAG,CAAC,CAAC;AACL;AACA,EAAE,QAAQ,CAAC,mBAAmB,WAAE,GAAM;AACtC,IAAI,IAAI,CAAC,2BAA2B,WAAE,GAAM;AAC5C,aAAyB,GAAG,MAAM;AAClC,QAAQ,qBAAC,oBAAiB,CAAC,QAAQ,MAAO,EAAC,aAAa,aAAY,CAAI;AACxE;MAFc,8BAEN;AACR,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,CAAC;AACpD,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,2CAA2C,WAAE,GAAM;AAC1D,IAAI,MAAM,CAAC,qBAAC,oBAAiB,CAAC,QAAQ,MAAO,EAAC,aAAa,aAAY,CAAG,CAAC,CAAC;AAC5E,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,gDAAgD,EAAE,eAAM,GAAM;AACrE,WAAuB,GAAG,MAAM;AAChC,MAAM,qBAAC,oBAAiB,CAAC,QAAQ,MAAO,EAAC,aAAa,aAAY,CAAI;AACtE;IAFY,8BAEN;AACN,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACjE,IAAI,MAAM,SAAS,CAAC,KAAK;AACzB,MAAM,SAAS,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAE;AACtE,KAAK,CAAC;AACN,IAAI,MAAM;AACV,MAAM,MAAM,CAAC,MAAM,UAAC,CAAC,KAAK,EAAK;AAC/B,QAAQ,OAAO,KAAK,CAAC,WAAW,CAAC;AACjC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAQ;AACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI;AAC7E,MAAM,KAAM;AACZ,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,+DAA+D,EAAE,eAAM,GAAM;AACpF,WAAuB,GAAG,MAAM;AAChC,MAAM,qBAAC,oBAAiB,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAE,CAAI;AACxD;IAFY,8BAEN;AACN,IAAI,MAAM;AACV,MAAM,MAAM,CAAC,MAAM,UAAC,CAAC,KAAK,EAAK;AAC/B,QAAQ,OAAO,KAAK,CAAC,WAAW,CAAC;AACjC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAQ;AACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACjE,IAAI,MAAM;AACV,MAAM,MAAM,CAAC,MAAM,UAAC,CAAC,KAAK,EAAK;AAC/B,QAAQ,OAAO,KAAK,CAAC,WAAW,CAAC;AACjC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAQ;AACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI;AAC7E,MAAM,KAAM;AACZ,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
@@ -1,20 +1,15 @@
1
1
  /* eslint-disable react/jsx-props-no-spreading */
2
2
  import React from 'react';
3
- import { configure, shallow, mount } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
- import 'jest-canvas-mock';
6
3
  import OLMap from 'ol/Map';
4
+ import { fireEvent, render, screen } from '@testing-library/react';
7
5
  import { Layer } from 'mobility-toolbox-js/ol';
8
- import renderer from 'react-test-renderer';
9
6
  import BaseLayerToggler from './BaseLayerToggler';
10
7
  import LayerService from '../../LayerService';
11
8
 
12
- configure({ adapter: new Adapter() });
13
-
14
9
  var shallowComp = function (layers, props) {
15
10
  var map = new OLMap({});
16
11
  var layerService = new LayerService(layers);
17
- return shallow(
12
+ return render(
18
13
  React.createElement( BaseLayerToggler, Object.assign({},
19
14
  { layerService: layerService, map: map }, (props || {})))
20
15
  );
@@ -22,7 +17,7 @@ var shallowComp = function (layers, props) {
22
17
  var mountComp = function (layers, props) {
23
18
  var map = new OLMap({});
24
19
  var layerService = new LayerService(layers);
25
- return mount(
20
+ return render(
26
21
  React.createElement( BaseLayerToggler, Object.assign({},
27
22
  { layerService: layerService, map: map }, (props || {})))
28
23
  );
@@ -31,12 +26,12 @@ var mountComp = function (layers, props) {
31
26
  var expectSnapshot = function (layers, props) {
32
27
  var map = new OLMap({});
33
28
  var layerService = new LayerService(layers);
34
- var component = renderer.create(
29
+ var ref = render(
35
30
  React.createElement( BaseLayerToggler, Object.assign({},
36
31
  { layerService: layerService, map: map }, (props || {})))
37
32
  );
38
- var tree = component.toJSON();
39
- expect(tree).toMatchSnapshot();
33
+ var container = ref.container;
34
+ expect(container.innerHTML).toMatchSnapshot();
40
35
  };
41
36
 
42
37
  describe('BaseLayerToggler', function () {
@@ -66,93 +61,66 @@ describe('BaseLayerToggler', function () {
66
61
  });
67
62
 
68
63
  test('initialize correctly the state', function () {
69
- var wrapper = shallowComp(layers);
70
- var comp = wrapper.instance();
71
- expect(comp.state.idx).toBe(1);
72
- expect(comp.state.layers.length).toBe(3);
73
- expect(comp.state.layerVisible).toBe(comp.state.layers[0]);
64
+ shallowComp(layers);
65
+ expect(layers[0].visible).toBe(true);
74
66
  });
75
67
 
76
- test('goes forward through all available layer except the current layer displayed on the map.', function () {
77
- var wrapper = shallowComp(layers);
78
- var comp = wrapper.instance();
79
- var layerVisible = comp.state.layers[0];
80
- expect(comp.state.layers.length).toBe(3);
81
- expect(comp.state.layerVisible).toBe(layerVisible);
82
- expect(comp.state.idx).toBe(1);
83
-
84
- wrapper.find('.rs-base-layer-next').simulate('click');
85
- expect(comp.state.layerVisible).toBe(layerVisible);
86
- expect(comp.state.idx).toBe(2);
68
+ test('goes forward through all available layer except the current layer displayed on the map.', async function () {
69
+ var ref = shallowComp(layers);
70
+ var container = ref.container;
71
+ expect(layers[0].visible).toBe(true);
72
+ await fireEvent.click(
73
+ container.querySelector('.rs-base-layer-toggle-button')
74
+ );
75
+ expect(layers[1].visible).toBe(true);
87
76
 
88
77
  // Layer at index 0 is displayed on the map so we must ignore it
89
- wrapper.find('.rs-base-layer-next').simulate('click');
90
- expect(comp.state.layerVisible).toBe(layerVisible);
91
- expect(comp.state.idx).toBe(1);
78
+ await fireEvent.click(container.querySelector('.rs-base-layer-next'));
79
+ await fireEvent.click(
80
+ container.querySelector('.rs-base-layer-toggle-button')
81
+ );
82
+ expect(layers[2].visible).toBe(true);
83
+
84
+ await fireEvent.click(container.querySelector('.rs-base-layer-next'));
85
+ await fireEvent.click(
86
+ container.querySelector('.rs-base-layer-toggle-button')
87
+ );
88
+ expect(layers[0].visible).toBe(true);
92
89
  });
93
90
 
94
- test('goes backward through all available layer except the current layer displayed on the map.', function () {
95
- var wrapper = shallowComp(layers);
96
- var comp = wrapper.instance();
97
- var layerVisible = comp.state.layers[0];
98
- expect(comp.state.layers.length).toBe(3);
99
- expect(comp.state.layerVisible).toBe(layerVisible);
100
- expect(comp.state.idx).toBe(1);
101
-
102
- wrapper.find('.rs-base-layer-previous').simulate('click');
103
- expect(comp.state.layerVisible).toBe(layerVisible);
104
- expect(comp.state.idx).toBe(2);
91
+ test('goes backward through all available layer except the current layer displayed on the map.', async function () {
92
+ var ref = shallowComp(layers);
93
+ var container = ref.container;
94
+ expect(layers[0].visible).toBe(true);
105
95
 
106
96
  // Layer at index 0 is displayed on the map so we must ignore it
107
- wrapper.find('.rs-base-layer-previous').simulate('click');
108
- expect(comp.state.layerVisible).toBe(layerVisible);
109
- expect(comp.state.idx).toBe(1);
110
- });
111
-
112
- test('displays always a baseLayer on the map.', function () {
113
- var wrapper = shallowComp(layers);
114
- var comp = wrapper.instance();
115
- var layerVisible = comp.state.layers[0];
116
- expect(comp.state.layers.length).toBe(3);
117
- expect(comp.state.layerVisible).toBe(layerVisible);
118
- expect(comp.state.idx).toBe(1);
119
- comp.state.layers[0].setVisible(false);
120
-
121
- expect(comp.state.layers.length).toBe(3);
122
- expect(comp.state.layerVisible).toBe(comp.state.layers[1]);
123
- expect(comp.state.idx).toBe(0);
124
- });
125
-
126
- test('display on the map the layer clicked', function () {
127
- var wrapper = mountComp(layers);
128
- var comp = wrapper.instance();
129
- expect(comp.state.layers.length).toBe(3);
130
- expect(comp.state.layers[0].visible).toBe(true);
131
- wrapper.find('.rs-base-layer-toggle-button').simulate('click');
132
- wrapper.update();
133
- expect(comp.state.layers[0].visible).toBe(false);
134
- expect(comp.state.layers[1].visible).toBe(true);
135
- expect(comp.state.layerVisible).toBe(comp.state.layers[1]);
136
- expect(comp.state.idx).toBe(0); // Toggle
97
+ await fireEvent.click(container.querySelector('.rs-base-layer-previous'));
98
+ await fireEvent.click(
99
+ container.querySelector('.rs-base-layer-toggle-button')
100
+ );
101
+ expect(layers[2].visible).toBe(true);
102
+
103
+ await fireEvent.click(container.querySelector('.rs-base-layer-next'));
104
+ await fireEvent.click(
105
+ container.querySelector('.rs-base-layer-toggle-button')
106
+ );
107
+ expect(layers[1].visible).toBe(true);
137
108
  });
138
109
 
139
110
  test('hide baseLayerToggler if only one baselayer', function () {
140
- var wrapper = mountComp([layers[0]]);
141
- expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);
111
+ var ref = mountComp([layers[0]]);
112
+ var container = ref.container;
113
+ expect(container.innerHTML).toBe('');
142
114
  });
143
115
 
144
116
  test('should use children', function () {
145
- var wrapper = shallowComp(layers, {
117
+ shallowComp(layers, {
146
118
  prevButtonContent: 'prev',
147
119
  nextButtonContent: 'next',
148
120
  });
149
- expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);
150
-
151
- var next = wrapper.find('.rs-base-layer-next').text();
152
- var prev = wrapper.find('.rs-base-layer-previous').text();
153
121
 
154
- expect(next).toBe('next');
155
- expect(prev).toBe('prev');
122
+ expect(screen.getByText('next')).not.toBeNull();
123
+ expect(screen.getByText('prev')).not.toBeNull();
156
124
  });
157
125
  });
158
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayerToggler.test.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, shallow, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport renderer from 'react-test-renderer';\nimport BaseLayerToggler from './BaseLayerToggler';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst shallowComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return shallow(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\nconst mountComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return mount(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\n\nconst expectSnapshot = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('BaseLayerToggler', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n expectSnapshot(layers);\n });\n });\n\n test('initialize correctly the state', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n expect(comp.state.idx).toBe(1);\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(comp.state.layers[0]);\n });\n\n test('goes forward through all available layer except the current layer displayed on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n\n wrapper.find('.rs-base-layer-next').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(2);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n wrapper.find('.rs-base-layer-next').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n });\n\n test('goes backward through all available layer except the current layer displayed on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n\n wrapper.find('.rs-base-layer-previous').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(2);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n wrapper.find('.rs-base-layer-previous').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n });\n\n test('displays always a baseLayer on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n comp.state.layers[0].setVisible(false);\n\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(comp.state.layers[1]);\n expect(comp.state.idx).toBe(0);\n });\n\n test('display on the map the layer clicked', () => {\n const wrapper = mountComp(layers);\n const comp = wrapper.instance();\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layers[0].visible).toBe(true);\n wrapper.find('.rs-base-layer-toggle-button').simulate('click');\n wrapper.update();\n expect(comp.state.layers[0].visible).toBe(false);\n expect(comp.state.layers[1].visible).toBe(true);\n expect(comp.state.layerVisible).toBe(comp.state.layers[1]);\n expect(comp.state.idx).toBe(0); // Toggle\n });\n\n test('hide baseLayerToggler if only one baselayer', () => {\n const wrapper = mountComp([layers[0]]);\n expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);\n });\n\n test('should use children', () => {\n const wrapper = shallowComp(layers, {\n prevButtonContent: 'prev',\n nextButtonContent: 'next',\n });\n expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);\n\n const next = wrapper.find('.rs-base-layer-next').text();\n const prev = wrapper.find('.rs-base-layer-previous').text();\n\n expect(next).toBe('next');\n expect(prev).toBe('prev');\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"BaseLayerToggler.test.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport OLMap from 'ol/Map';\nimport { fireEvent, render, screen } from '@testing-library/react';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport BaseLayerToggler from './BaseLayerToggler';\nimport LayerService from '../../LayerService';\n\nconst shallowComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\nconst mountComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\n\nconst expectSnapshot = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n const { container } = render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n expect(container.innerHTML).toMatchSnapshot();\n};\n\ndescribe('BaseLayerToggler', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n expectSnapshot(layers);\n });\n });\n\n test('initialize correctly the state', () => {\n shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes forward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes backward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-previous'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n });\n\n test('hide baseLayerToggler if only one baselayer', () => {\n const { container } = mountComp([layers[0]]);\n expect(container.innerHTML).toBe('');\n });\n\n test('should use children', () => {\n shallowComp(layers, {\n prevButtonContent: 'prev',\n nextButtonContent: 'next',\n });\n\n expect(screen.getByText('next')).not.toBeNull();\n expect(screen.getByText('prev')).not.toBeNull();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -2,14 +2,13 @@ import 'jest-canvas-mock';
2
2
  import proj4 from 'proj4';
3
3
  import { register } from 'ol/proj/proj4';
4
4
  import React from 'react';
5
- import { configure, shallow, mount } from 'enzyme';
6
- import Adapter from 'enzyme-adapter-react-16';
7
5
  import ResizeObserver from 'resize-observer-polyfill';
8
6
  import { Layer } from 'mobility-toolbox-js/ol';
9
7
  import MapEvent from 'ol/MapEvent';
10
8
  import OLLayer from 'ol/layer/Vector';
11
9
  import OLMap from 'ol/Map';
12
10
  import OLView from 'ol/View';
11
+ import { render } from '@testing-library/react';
13
12
  import BasicMap from './BasicMap';
14
13
 
15
14
  proj4.defs(
@@ -21,8 +20,6 @@ proj4.defs(
21
20
 
22
21
  register(proj4);
23
22
 
24
- configure({ adapter: new Adapter() });
25
-
26
23
  var extent = [0, 0, 1000, 1000];
27
24
  var olLayers = [
28
25
  new Layer({
@@ -40,12 +37,12 @@ describe('BasicMap', function () {
40
37
 
41
38
  test('should be rendered', function () {
42
39
  var setTarget = jest.spyOn(olMap, 'setTarget');
43
- shallow(React.createElement( BasicMap, { map: olMap }));
40
+ render(React.createElement( BasicMap, { map: olMap }));
44
41
  expect(setTarget).toHaveBeenCalled();
45
42
  });
46
43
 
47
44
  test('should be rendered with touchAction to none', function () {
48
- shallow(React.createElement( BasicMap, { map: olMap }));
45
+ render(React.createElement( BasicMap, { map: olMap }));
49
46
  expect(olMap.getViewport().style.touchAction).toBe('none');
50
47
  expect(olMap.getViewport().style.msTouchAction).toBe('none');
51
48
  expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');
@@ -57,24 +54,21 @@ describe('BasicMap', function () {
57
54
  var evt = new MapEvent('moveend', olMap);
58
55
 
59
56
  // Test componentDidMount
60
- var wrapper = shallow(React.createElement( BasicMap, { map: olMap, onMapMoved: spy }));
57
+ var ref = render(React.createElement( BasicMap, { map: olMap, onMapMoved: spy }));
58
+ var rerender = ref.rerender;
61
59
  olMap.dispatchEvent(evt);
62
60
  expect(spy).toHaveBeenCalledTimes(1);
63
61
  expect(spy).toHaveBeenCalledWith(evt);
64
62
 
65
63
  // Test componentDidUpdate
66
- wrapper.setProps({
67
- onMapMoved: spy2,
68
- });
64
+ rerender(React.createElement( BasicMap, { map: olMap, onMapMoved: spy2 }));
69
65
  olMap.dispatchEvent(evt);
70
66
  expect(spy).toHaveBeenCalledTimes(1);
71
67
  expect(spy2).toHaveBeenCalledTimes(1);
72
68
  expect(spy2).toHaveBeenCalledWith(evt);
73
69
 
74
70
  // Test componentDidUpdate
75
- wrapper.setProps({
76
- onMapMoved: null,
77
- });
71
+ rerender(React.createElement( BasicMap, { map: olMap, onMapMoved: null }));
78
72
  olMap.dispatchEvent(evt);
79
73
  expect(spy).toHaveBeenCalledTimes(1);
80
74
  expect(spy2).toHaveBeenCalledTimes(1);
@@ -86,26 +80,21 @@ describe('BasicMap', function () {
86
80
  var evt = new MapEvent('singleclick', olMap);
87
81
 
88
82
  // Test componentDidMount
89
- var wrapper = shallow(React.createElement( BasicMap, { map: olMap, onFeaturesClick: spy }), {
90
- lifecycleExperimental: true,
91
- });
83
+ var ref = render(React.createElement( BasicMap, { map: olMap, onFeaturesClick: spy }));
84
+ var rerender = ref.rerender;
92
85
  olMap.dispatchEvent(evt);
93
86
  expect(spy).toHaveBeenCalledTimes(1);
94
87
  expect(spy).toHaveBeenCalledWith([], evt);
95
88
 
96
89
  // Test componentDidUpdate
97
- wrapper.setProps({
98
- onFeaturesClick: spy2,
99
- });
90
+ rerender(React.createElement( BasicMap, { map: olMap, onFeaturesClick: spy2 }));
100
91
  olMap.dispatchEvent(evt);
101
92
  expect(spy).toHaveBeenCalledTimes(1);
102
93
  expect(spy2).toHaveBeenCalledTimes(1);
103
94
  expect(spy2).toHaveBeenCalledWith([], evt);
104
95
 
105
96
  // Test componentDidUpdate
106
- wrapper.setProps({
107
- onFeaturesClick: null,
108
- });
97
+ rerender(React.createElement( BasicMap, { map: olMap, onFeaturesClick: null }));
109
98
  olMap.dispatchEvent(evt);
110
99
  expect(spy).toHaveBeenCalledTimes(1);
111
100
  expect(spy2).toHaveBeenCalledTimes(1);
@@ -117,38 +106,39 @@ describe('BasicMap', function () {
117
106
  var evt = new MapEvent('pointermove', olMap);
118
107
 
119
108
  // Test componentDidMount
120
- var wrapper = shallow(React.createElement( BasicMap, { map: olMap, onFeaturesHover: spy }), {
121
- lifecycleExperimental: true,
122
- });
109
+ var ref = render(
110
+ React.createElement( BasicMap, { map: olMap, onFeaturesHover: spy }),
111
+ {
112
+ lifecycleExperimental: true,
113
+ }
114
+ );
115
+ var rerender = ref.rerender;
123
116
  olMap.dispatchEvent(evt);
124
117
  expect(spy).toHaveBeenCalledTimes(1);
125
118
  expect(spy).toHaveBeenCalledWith([], evt);
126
119
 
127
120
  // Test componentDidUpdate
128
- wrapper.setProps({
129
- onFeaturesHover: spy2,
130
- });
121
+ rerender(React.createElement( BasicMap, { map: olMap, onFeaturesHover: spy2 }));
131
122
  olMap.dispatchEvent(evt);
132
123
  expect(spy).toHaveBeenCalledTimes(1);
133
124
  expect(spy2).toHaveBeenCalledTimes(1);
134
125
  expect(spy2).toHaveBeenCalledWith([], evt);
135
126
 
136
127
  // Test componentDidUpdate
137
- wrapper.setProps({
138
- onFeaturesHover: null,
139
- });
128
+ rerender(React.createElement( BasicMap, { map: olMap, onFeaturesHover: null }));
140
129
  olMap.dispatchEvent(evt);
141
130
  expect(spy).toHaveBeenCalledTimes(1);
142
131
  expect(spy2).toHaveBeenCalledTimes(1);
143
132
  });
144
133
 
145
134
  test('should be rendered with a default map', function () {
146
- var wrapper = shallow(React.createElement( BasicMap, null ));
147
- expect(wrapper.instance().map).toBeDefined();
135
+ var ref = render(React.createElement( BasicMap, null ));
136
+ var container = ref.container;
137
+ expect(!!container.querySelector('.ol-viewport')).toBe(true);
148
138
  });
149
139
 
150
140
  test('should be rendered with layers and an extent', function () {
151
- var wrapper = shallow(
141
+ render(
152
142
  React.createElement( BasicMap, {
153
143
  map: olMap, layers: olLayers, extent: extent, viewOptions: {
154
144
  minZoom: 16,
@@ -156,32 +146,33 @@ describe('BasicMap', function () {
156
146
  projection: 'EPSG:21781',
157
147
  } })
158
148
  );
159
- var inst = wrapper.instance();
160
- expect(inst.map).toBeDefined();
161
- expect(inst.map.getLayers().getLength()).toBe(1);
162
- expect(inst.map.getView().calculateExtent()).toEqual([
163
- -119.29915768648752, -119.29915768648752, 119.29915768648752,
164
- 119.29915768648752 ]);
149
+ expect(olMap.getLayers().getLength()).toBe(1);
150
+ expect(olMap.getView().calculateExtent()).toEqual([
151
+ 380.70084231351245, 380.70084231351245, 619.2991576864875,
152
+ 619.2991576864875 ]);
165
153
  });
166
154
 
167
155
  test('center shoud be set', function () {
168
- var map = shallow(React.createElement( BasicMap, { map: olMap }));
156
+ var ref = render(React.createElement( BasicMap, { map: olMap }));
157
+ var rerender = ref.rerender;
169
158
  var setCenter = jest.spyOn(olMap.getView(), 'setCenter');
170
- map.setProps({ center: [0, 0] }).update();
159
+ rerender(React.createElement( BasicMap, { map: olMap, center: [0, 0] }));
171
160
  expect(setCenter).toHaveBeenCalled();
172
161
  });
173
162
 
174
163
  test('zoom shoud be set', function () {
175
- var map = shallow(React.createElement( BasicMap, { map: olMap, zoom: 5 }));
164
+ var ref = render(React.createElement( BasicMap, { map: olMap, zoom: 5 }));
165
+ var rerender = ref.rerender;
176
166
  expect(olMap.getView().getZoom()).toBe(5);
177
- map.setProps({ zoom: 2 }).update();
167
+ rerender(React.createElement( BasicMap, { map: olMap, zoom: 2 }));
178
168
  expect(olMap.getView().getZoom()).toBe(2);
179
169
  });
180
170
 
181
171
  test('resolution shoud be set', function () {
182
- var map = shallow(React.createElement( BasicMap, { map: olMap, resolution: 100 }));
172
+ var ref = render(React.createElement( BasicMap, { map: olMap, resolution: 100 }));
173
+ var rerender = ref.rerender;
183
174
  expect(olMap.getView().getResolution()).toBe(100);
184
- map.setProps({ resolution: 5 }).update();
175
+ rerender(React.createElement( BasicMap, { map: olMap, resolution: 5 }));
185
176
  expect(olMap.getView().getResolution()).toBe(5);
186
177
  });
187
178
 
@@ -189,52 +180,54 @@ describe('BasicMap', function () {
189
180
  var obj = {
190
181
  zoom: 4,
191
182
  };
192
- var map = shallow(React.createElement( BasicMap, { map: olMap }));
183
+ var ref = render(React.createElement( BasicMap, { map: olMap }));
184
+ var rerender = ref.rerender;
193
185
  var spy = jest.spyOn(olMap.getView(), 'animate');
194
- map.setProps({ animationOptions: obj }).update();
186
+ rerender(React.createElement( BasicMap, { map: olMap, animationOptions: obj }));
195
187
  expect(spy).toHaveBeenCalledWith(obj);
196
188
  });
197
189
 
198
190
  test('layers shoud be updated', function () {
199
191
  var addLayer = jest.spyOn(olMap, 'addLayer');
200
- var map = shallow(React.createElement( BasicMap, { map: olMap }));
192
+ var ref = render(React.createElement( BasicMap, { map: olMap }));
193
+ var rerender = ref.rerender;
201
194
  var layer = new Layer({ name: 'test', olLayer: new OLLayer() });
202
- map.setProps({ layers: [layer] }).update();
195
+ rerender(React.createElement( BasicMap, { map: olMap, layers: [layer] }));
203
196
  expect(addLayer).toHaveBeenCalled();
204
197
  });
205
198
 
206
199
  test('should be fitted if extent is updated', function () {
207
200
  var fitExtent = jest.spyOn(OLView.prototype, 'fit');
208
- var map = shallow(React.createElement( BasicMap, { map: olMap }));
209
- map.setProps({ extent: [1, 2, 3, 4] }).update();
201
+ var ref = render(React.createElement( BasicMap, { map: olMap }));
202
+ var rerender = ref.rerender;
203
+ rerender(React.createElement( BasicMap, { map: olMap, extent: [1, 2, 3, 4] }));
210
204
  expect(fitExtent).toHaveBeenCalled();
211
205
  });
212
206
 
213
207
  test('should be zoomed if zoom is updated', function () {
214
208
  var setZoom = jest.spyOn(OLView.prototype, 'setZoom');
215
- var map = shallow(React.createElement( BasicMap, { map: olMap }));
216
- map.setProps({ zoom: 15 }).update();
217
- expect(setZoom).toHaveBeenCalled();
209
+ var ref = render(React.createElement( BasicMap, { map: olMap }));
210
+ var rerender = ref.rerender;
211
+ rerender(React.createElement( BasicMap, { map: olMap, zoom: 15 }));
212
+ expect(setZoom).toHaveBeenCalledWith(15);
218
213
  });
219
214
 
220
215
  test('should be observed by ResizeHandler', function () {
221
216
  var spy = jest.spyOn(ResizeObserver.prototype, 'observe');
222
- var map = mount(React.createElement( BasicMap, { map: olMap }));
223
- var node = map.getDOMNode();
224
- expect(spy).toHaveBeenCalledWith(node);
217
+ render(React.createElement( BasicMap, { map: olMap }));
218
+ expect(spy).toHaveBeenCalledWith(olMap.getTargetElement());
225
219
  expect(spy).toHaveBeenCalledTimes(1);
226
220
  });
227
221
 
228
222
  test('size is updated when div is resized', function () {
229
223
  var spy = jest.spyOn(olMap, 'updateSize');
230
- var map = mount(React.createElement( BasicMap, { map: olMap }));
231
- var node = map.getDOMNode();
224
+ render(React.createElement( BasicMap, { map: olMap }));
232
225
  expect(spy).toHaveBeenCalledTimes(2);
233
226
  // The mock class set the onResize property, we just have to run it to
234
227
  // simulate a resize
235
228
  ResizeObserver.onResize([
236
229
  {
237
- target: node,
230
+ target: olMap.getTargetElement(),
238
231
  contentRect: {
239
232
  width: 20,
240
233
  height: 20,
@@ -244,7 +237,7 @@ describe('BasicMap', function () {
244
237
  });
245
238
 
246
239
  describe('#setLayers()', function () {
247
- test('only init layers which are not already on the map.', function () {
240
+ test('init all layers and terminate al previous layer.', function () {
248
241
  var layer0 = new Layer({ key: 'test1' });
249
242
  var spyInit0 = jest.spyOn(layer0, 'init');
250
243
  var spyTerminate0 = jest.spyOn(layer0, 'terminate');
@@ -261,9 +254,10 @@ describe('BasicMap', function () {
261
254
  var spyInit4 = jest.spyOn(layer4, 'init');
262
255
  var spyTerminate4 = jest.spyOn(layer4, 'terminate');
263
256
  var startLayers = [layer1, layer3];
264
- var map = shallow(React.createElement( BasicMap, { map: olMap, layers: startLayers }));
265
-
266
- expect(map.instance().layers).toBe(startLayers);
257
+ var ref = render(
258
+ React.createElement( BasicMap, { map: olMap, layers: startLayers })
259
+ );
260
+ var rerender = ref.rerender;
267
261
  expect(spyInit0).toHaveBeenCalledTimes(0);
268
262
  expect(spyInit1).toHaveBeenCalledTimes(1);
269
263
  expect(spyInit2).toHaveBeenCalledTimes(0);
@@ -274,24 +268,19 @@ describe('BasicMap', function () {
274
268
  expect(spyTerminate2).toHaveBeenCalledTimes(0);
275
269
  expect(spyTerminate3).toHaveBeenCalledTimes(1);
276
270
  expect(spyTerminate4).toHaveBeenCalledTimes(0);
277
- expect(map.instance().layers).toBe(startLayers);
278
271
 
279
272
  var layers = [layer0, layer2, layer3, layer4];
280
- map.setProps({
281
- layers: layers,
282
- });
283
-
273
+ rerender(React.createElement( BasicMap, { map: olMap, layers: layers }));
284
274
  expect(spyInit0).toHaveBeenCalledTimes(1);
285
275
  expect(spyInit1).toHaveBeenCalledTimes(1);
286
276
  expect(spyInit2).toHaveBeenCalledTimes(1);
287
- expect(spyInit3).toHaveBeenCalledTimes(1);
277
+ expect(spyInit3).toHaveBeenCalledTimes(2);
288
278
  expect(spyInit4).toHaveBeenCalledTimes(1);
289
279
  expect(spyTerminate0).toHaveBeenCalledTimes(1);
290
280
  expect(spyTerminate1).toHaveBeenCalledTimes(2);
291
281
  expect(spyTerminate2).toHaveBeenCalledTimes(1);
292
- expect(spyTerminate3).toHaveBeenCalledTimes(1);
282
+ expect(spyTerminate3).toHaveBeenCalledTimes(3);
293
283
  expect(spyTerminate4).toHaveBeenCalledTimes(1);
294
- expect(map.instance().layers).toBe(layers);
295
284
  });
296
285
  });
297
286
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BasicMap.test.js","sources":["../../../src/components/BasicMap/BasicMap.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport proj4 from 'proj4';\nimport { register } from 'ol/proj/proj4';\nimport React from 'react';\nimport { configure, shallow, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport MapEvent from 'ol/MapEvent';\nimport OLLayer from 'ol/layer/Vector';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport BasicMap from './BasicMap';\n\nproj4.defs(\n 'EPSG:21781',\n '+proj=somerc +lat_0=46.95240555555556 ' +\n '+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +\n '+towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs',\n);\n\nregister(proj4);\n\nconfigure({ adapter: new Adapter() });\n\nconst extent = [0, 0, 1000, 1000];\nconst olLayers = [\n new Layer({\n name: 'foo',\n olLayer: new OLLayer({}),\n visible: true,\n }),\n];\n\ndescribe('BasicMap', () => {\n let olMap;\n beforeEach(() => {\n const olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should be rendered', () => {\n const setTarget = jest.spyOn(olMap, 'setTarget');\n shallow(<BasicMap map={olMap} />);\n expect(setTarget).toHaveBeenCalled();\n });\n\n test('should be rendered with touchAction to none', () => {\n shallow(<BasicMap map={olMap} />);\n expect(olMap.getViewport().style.touchAction).toBe('none');\n expect(olMap.getViewport().style.msTouchAction).toBe('none');\n expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');\n });\n\n test('uses onMapMoved function', () => {\n const spy = jest.fn(() => {});\n const spy2 = jest.fn();\n const evt = new MapEvent('moveend', olMap);\n\n // Test componentDidMount\n const wrapper = shallow(<BasicMap map={olMap} onMapMoved={spy} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onMapMoved: spy2,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onMapMoved: null,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesClick function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('singleclick', olMap);\n\n // Test componentDidMount\n const wrapper = shallow(<BasicMap map={olMap} onFeaturesClick={spy} />, {\n lifecycleExperimental: true,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onFeaturesClick: spy2,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onFeaturesClick: null,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesHover function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('pointermove', olMap);\n\n // Test componentDidMount\n const wrapper = shallow(<BasicMap map={olMap} onFeaturesHover={spy} />, {\n lifecycleExperimental: true,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onFeaturesHover: spy2,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n wrapper.setProps({\n onFeaturesHover: null,\n });\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('should be rendered with a default map', () => {\n const wrapper = shallow(<BasicMap />);\n expect(wrapper.instance().map).toBeDefined();\n });\n\n test('should be rendered with layers and an extent', () => {\n const wrapper = shallow(\n <BasicMap\n map={olMap}\n layers={olLayers}\n extent={extent}\n viewOptions={{\n minZoom: 16,\n maxZoom: 22,\n projection: 'EPSG:21781',\n }}\n />,\n );\n const inst = wrapper.instance();\n expect(inst.map).toBeDefined();\n expect(inst.map.getLayers().getLength()).toBe(1);\n expect(inst.map.getView().calculateExtent()).toEqual([\n -119.29915768648752, -119.29915768648752, 119.29915768648752,\n 119.29915768648752,\n ]);\n });\n\n test('center shoud be set', () => {\n const map = shallow(<BasicMap map={olMap} />);\n const setCenter = jest.spyOn(olMap.getView(), 'setCenter');\n map.setProps({ center: [0, 0] }).update();\n expect(setCenter).toHaveBeenCalled();\n });\n\n test('zoom shoud be set', () => {\n const map = shallow(<BasicMap map={olMap} zoom={5} />);\n expect(olMap.getView().getZoom()).toBe(5);\n map.setProps({ zoom: 2 }).update();\n expect(olMap.getView().getZoom()).toBe(2);\n });\n\n test('resolution shoud be set', () => {\n const map = shallow(<BasicMap map={olMap} resolution={100} />);\n expect(olMap.getView().getResolution()).toBe(100);\n map.setProps({ resolution: 5 }).update();\n expect(olMap.getView().getResolution()).toBe(5);\n });\n\n test('animation shoud be set', () => {\n const obj = {\n zoom: 4,\n };\n const map = shallow(<BasicMap map={olMap} />);\n const spy = jest.spyOn(olMap.getView(), 'animate');\n map.setProps({ animationOptions: obj }).update();\n expect(spy).toHaveBeenCalledWith(obj);\n });\n\n test('layers shoud be updated', () => {\n const addLayer = jest.spyOn(olMap, 'addLayer');\n const map = shallow(<BasicMap map={olMap} />);\n const layer = new Layer({ name: 'test', olLayer: new OLLayer() });\n map.setProps({ layers: [layer] }).update();\n expect(addLayer).toHaveBeenCalled();\n });\n\n test('should be fitted if extent is updated', () => {\n const fitExtent = jest.spyOn(OLView.prototype, 'fit');\n const map = shallow(<BasicMap map={olMap} />);\n map.setProps({ extent: [1, 2, 3, 4] }).update();\n expect(fitExtent).toHaveBeenCalled();\n });\n\n test('should be zoomed if zoom is updated', () => {\n const setZoom = jest.spyOn(OLView.prototype, 'setZoom');\n const map = shallow(<BasicMap map={olMap} />);\n map.setProps({ zoom: 15 }).update();\n expect(setZoom).toHaveBeenCalled();\n });\n\n test('should be observed by ResizeHandler', () => {\n const spy = jest.spyOn(ResizeObserver.prototype, 'observe');\n const map = mount(<BasicMap map={olMap} />);\n const node = map.getDOMNode();\n expect(spy).toHaveBeenCalledWith(node);\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n test('size is updated when div is resized', () => {\n const spy = jest.spyOn(olMap, 'updateSize');\n const map = mount(<BasicMap map={olMap} />);\n const node = map.getDOMNode();\n expect(spy).toHaveBeenCalledTimes(2);\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target: node,\n contentRect: {\n width: 20,\n height: 20,\n },\n },\n ]);\n expect(spy).toHaveBeenCalledTimes(3);\n });\n\n describe('#setLayers()', () => {\n test('only init layers which are not already on the map.', () => {\n const layer0 = new Layer({ key: 'test1' });\n const spyInit0 = jest.spyOn(layer0, 'init');\n const spyTerminate0 = jest.spyOn(layer0, 'terminate');\n const layer1 = new Layer({ key: 'test1' });\n const spyInit1 = jest.spyOn(layer1, 'init');\n const spyTerminate1 = jest.spyOn(layer1, 'terminate');\n const layer2 = new Layer({ key: 'test2' });\n const spyInit2 = jest.spyOn(layer2, 'init');\n const spyTerminate2 = jest.spyOn(layer2, 'terminate');\n const layer3 = new Layer({ key: 'test3' });\n const spyInit3 = jest.spyOn(layer3, 'init');\n const spyTerminate3 = jest.spyOn(layer3, 'terminate');\n const layer4 = new Layer({ key: 'test4' });\n const spyInit4 = jest.spyOn(layer4, 'init');\n const spyTerminate4 = jest.spyOn(layer4, 'terminate');\n const startLayers = [layer1, layer3];\n const map = shallow(<BasicMap map={olMap} layers={startLayers} />);\n\n expect(map.instance().layers).toBe(startLayers);\n expect(spyInit0).toHaveBeenCalledTimes(0);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(0);\n expect(spyInit3).toHaveBeenCalledTimes(1);\n expect(spyInit4).toHaveBeenCalledTimes(0);\n expect(spyTerminate0).toHaveBeenCalledTimes(0);\n expect(spyTerminate1).toHaveBeenCalledTimes(1);\n expect(spyTerminate2).toHaveBeenCalledTimes(0);\n expect(spyTerminate3).toHaveBeenCalledTimes(1);\n expect(spyTerminate4).toHaveBeenCalledTimes(0);\n expect(map.instance().layers).toBe(startLayers);\n\n const layers = [layer0, layer2, layer3, layer4];\n map.setProps({\n layers,\n });\n\n expect(spyInit0).toHaveBeenCalledTimes(1);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(1);\n expect(spyInit3).toHaveBeenCalledTimes(1);\n expect(spyInit4).toHaveBeenCalledTimes(1);\n expect(spyTerminate0).toHaveBeenCalledTimes(1);\n expect(spyTerminate1).toHaveBeenCalledTimes(2);\n expect(spyTerminate2).toHaveBeenCalledTimes(1);\n expect(spyTerminate3).toHaveBeenCalledTimes(1);\n expect(spyTerminate4).toHaveBeenCalledTimes(1);\n expect(map.instance().layers).toBe(layers);\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"BasicMap.test.js","sources":["../../../src/components/BasicMap/BasicMap.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport proj4 from 'proj4';\nimport { register } from 'ol/proj/proj4';\nimport React from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport MapEvent from 'ol/MapEvent';\nimport OLLayer from 'ol/layer/Vector';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { render } from '@testing-library/react';\nimport BasicMap from './BasicMap';\n\nproj4.defs(\n 'EPSG:21781',\n '+proj=somerc +lat_0=46.95240555555556 ' +\n '+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +\n '+towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs',\n);\n\nregister(proj4);\n\nconst extent = [0, 0, 1000, 1000];\nconst olLayers = [\n new Layer({\n name: 'foo',\n olLayer: new OLLayer({}),\n visible: true,\n }),\n];\n\ndescribe('BasicMap', () => {\n let olMap;\n beforeEach(() => {\n const olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should be rendered', () => {\n const setTarget = jest.spyOn(olMap, 'setTarget');\n render(<BasicMap map={olMap} />);\n expect(setTarget).toHaveBeenCalled();\n });\n\n test('should be rendered with touchAction to none', () => {\n render(<BasicMap map={olMap} />);\n expect(olMap.getViewport().style.touchAction).toBe('none');\n expect(olMap.getViewport().style.msTouchAction).toBe('none');\n expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');\n });\n\n test('uses onMapMoved function', () => {\n const spy = jest.fn(() => {});\n const spy2 = jest.fn();\n const evt = new MapEvent('moveend', olMap);\n\n // Test componentDidMount\n const { rerender } = render(<BasicMap map={olMap} onMapMoved={spy} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onMapMoved={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith(evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onMapMoved={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesClick function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('singleclick', olMap);\n\n // Test componentDidMount\n const { rerender } = render(<BasicMap map={olMap} onFeaturesClick={spy} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesClick={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesClick={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('uses onFeaturesHover function', () => {\n const spy = jest.fn();\n const spy2 = jest.fn();\n const evt = new MapEvent('pointermove', olMap);\n\n // Test componentDidMount\n const { rerender } = render(\n <BasicMap map={olMap} onFeaturesHover={spy} />,\n {\n lifecycleExperimental: true,\n },\n );\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesHover={spy2} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledWith([], evt);\n\n // Test componentDidUpdate\n rerender(<BasicMap map={olMap} onFeaturesHover={null} />);\n olMap.dispatchEvent(evt);\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(1);\n });\n\n test('should be rendered with a default map', () => {\n const { container } = render(<BasicMap />);\n expect(!!container.querySelector('.ol-viewport')).toBe(true);\n });\n\n test('should be rendered with layers and an extent', () => {\n render(\n <BasicMap\n map={olMap}\n layers={olLayers}\n extent={extent}\n viewOptions={{\n minZoom: 16,\n maxZoom: 22,\n projection: 'EPSG:21781',\n }}\n />,\n );\n expect(olMap.getLayers().getLength()).toBe(1);\n expect(olMap.getView().calculateExtent()).toEqual([\n 380.70084231351245, 380.70084231351245, 619.2991576864875,\n 619.2991576864875,\n ]);\n });\n\n test('center shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} />);\n const setCenter = jest.spyOn(olMap.getView(), 'setCenter');\n rerender(<BasicMap map={olMap} center={[0, 0]} />);\n expect(setCenter).toHaveBeenCalled();\n });\n\n test('zoom shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} zoom={5} />);\n expect(olMap.getView().getZoom()).toBe(5);\n rerender(<BasicMap map={olMap} zoom={2} />);\n expect(olMap.getView().getZoom()).toBe(2);\n });\n\n test('resolution shoud be set', () => {\n const { rerender } = render(<BasicMap map={olMap} resolution={100} />);\n expect(olMap.getView().getResolution()).toBe(100);\n rerender(<BasicMap map={olMap} resolution={5} />);\n expect(olMap.getView().getResolution()).toBe(5);\n });\n\n test('animation shoud be set', () => {\n const obj = {\n zoom: 4,\n };\n const { rerender } = render(<BasicMap map={olMap} />);\n const spy = jest.spyOn(olMap.getView(), 'animate');\n rerender(<BasicMap map={olMap} animationOptions={obj} />);\n expect(spy).toHaveBeenCalledWith(obj);\n });\n\n test('layers shoud be updated', () => {\n const addLayer = jest.spyOn(olMap, 'addLayer');\n const { rerender } = render(<BasicMap map={olMap} />);\n const layer = new Layer({ name: 'test', olLayer: new OLLayer() });\n rerender(<BasicMap map={olMap} layers={[layer]} />);\n expect(addLayer).toHaveBeenCalled();\n });\n\n test('should be fitted if extent is updated', () => {\n const fitExtent = jest.spyOn(OLView.prototype, 'fit');\n const { rerender } = render(<BasicMap map={olMap} />);\n rerender(<BasicMap map={olMap} extent={[1, 2, 3, 4]} />);\n expect(fitExtent).toHaveBeenCalled();\n });\n\n test('should be zoomed if zoom is updated', () => {\n const setZoom = jest.spyOn(OLView.prototype, 'setZoom');\n const { rerender } = render(<BasicMap map={olMap} />);\n rerender(<BasicMap map={olMap} zoom={15} />);\n expect(setZoom).toHaveBeenCalledWith(15);\n });\n\n test('should be observed by ResizeHandler', () => {\n const spy = jest.spyOn(ResizeObserver.prototype, 'observe');\n render(<BasicMap map={olMap} />);\n expect(spy).toHaveBeenCalledWith(olMap.getTargetElement());\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n test('size is updated when div is resized', () => {\n const spy = jest.spyOn(olMap, 'updateSize');\n render(<BasicMap map={olMap} />);\n expect(spy).toHaveBeenCalledTimes(2);\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target: olMap.getTargetElement(),\n contentRect: {\n width: 20,\n height: 20,\n },\n },\n ]);\n expect(spy).toHaveBeenCalledTimes(3);\n });\n\n describe('#setLayers()', () => {\n test('init all layers and terminate al previous layer.', () => {\n const layer0 = new Layer({ key: 'test1' });\n const spyInit0 = jest.spyOn(layer0, 'init');\n const spyTerminate0 = jest.spyOn(layer0, 'terminate');\n const layer1 = new Layer({ key: 'test1' });\n const spyInit1 = jest.spyOn(layer1, 'init');\n const spyTerminate1 = jest.spyOn(layer1, 'terminate');\n const layer2 = new Layer({ key: 'test2' });\n const spyInit2 = jest.spyOn(layer2, 'init');\n const spyTerminate2 = jest.spyOn(layer2, 'terminate');\n const layer3 = new Layer({ key: 'test3' });\n const spyInit3 = jest.spyOn(layer3, 'init');\n const spyTerminate3 = jest.spyOn(layer3, 'terminate');\n const layer4 = new Layer({ key: 'test4' });\n const spyInit4 = jest.spyOn(layer4, 'init');\n const spyTerminate4 = jest.spyOn(layer4, 'terminate');\n const startLayers = [layer1, layer3];\n const { rerender } = render(\n <BasicMap map={olMap} layers={startLayers} />,\n );\n expect(spyInit0).toHaveBeenCalledTimes(0);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(0);\n expect(spyInit3).toHaveBeenCalledTimes(1);\n expect(spyInit4).toHaveBeenCalledTimes(0);\n expect(spyTerminate0).toHaveBeenCalledTimes(0);\n expect(spyTerminate1).toHaveBeenCalledTimes(1);\n expect(spyTerminate2).toHaveBeenCalledTimes(0);\n expect(spyTerminate3).toHaveBeenCalledTimes(1);\n expect(spyTerminate4).toHaveBeenCalledTimes(0);\n\n const layers = [layer0, layer2, layer3, layer4];\n rerender(<BasicMap map={olMap} layers={layers} />);\n expect(spyInit0).toHaveBeenCalledTimes(1);\n expect(spyInit1).toHaveBeenCalledTimes(1);\n expect(spyInit2).toHaveBeenCalledTimes(1);\n expect(spyInit3).toHaveBeenCalledTimes(2);\n expect(spyInit4).toHaveBeenCalledTimes(1);\n expect(spyTerminate0).toHaveBeenCalledTimes(1);\n expect(spyTerminate1).toHaveBeenCalledTimes(2);\n expect(spyTerminate2).toHaveBeenCalledTimes(1);\n expect(spyTerminate3).toHaveBeenCalledTimes(3);\n expect(spyTerminate4).toHaveBeenCalledTimes(1);\n });\n });\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,SAAS,QAAQ,QAAQ,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,SAAS,KAAK,QAAQ,wBAAwB,CAAC;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,SAAS,MAAM,QAAQ,wBAAwB,CAAC;AAChD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC;AACA,KAAK,CAAC,IAAI;AACV,EAAE,YAAY;AACd,EAAE,wCAAwC;AAC1C,IAAI,wEAAwE;AAC5E,IAAI,qDAAsD;AAC1D,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChB;AACAA,GAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClCA,GAAK,CAAC,QAAQ,GAAG;AACjB,EAAE,IAAI,KAAK,CAAC;AACZ,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC;AAC5B,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG,CAAC,CACJ,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,UAAU,WAAE,GAAM;AAC3B,EAAEC,GAAG,CAAC,KAAK,CAAC;AACZ,EAAE,UAAU,UAAC,GAAM;AACnB,IAAID,GAAK,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIA,GAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACrD,IAAI,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,6CAA6C,WAAE,GAAM;AAC5D,IAAI,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1E,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,0BAA0B,WAAE,GAAM;AACzC,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,UAAC,GAAM,EAAE,CAAC,CAAC;AAClC,IAAIA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3B,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/C;AACA;AACA,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,YAAY,KAAI,CAAG;IAA7D,4BAA+D;AAC3E,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,YAAY,MAAK,CAAG,CAAC,CAAC;AACzD,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,YAAY,MAAK,CAAG,CAAC,CAAC;AACzD,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,+BAA+B,WAAE,GAAM;AAC9C,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1B,IAAIA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3B,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD;AACA;AACA,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,KAAI,CAAG;IAAlE,4BAAoE;AAChF,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,MAAK,CAAG,CAAC,CAAC;AAC9D,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,MAAK,CAAG,CAAC,CAAC;AAC9D,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,+BAA+B,WAAE,GAAM;AAC9C,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1B,IAAIA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3B,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD;AACA;AACA,WAAsB,GAAG,MAAM;AAC/B,MAAM,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,KAAI,CAAG;AACpD,MAAM;AACN,QAAQ,qBAAqB,EAAE,IAAI;AACnC,OAAQ;AACR;IALY,4BAKN;AACN,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,MAAK,CAAG,CAAC,CAAC;AAC9D,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/C;AACA;AACA,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,iBAAiB,MAAK,CAAG,CAAC,CAAC;AAC9D,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC1C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,uCAAuC,WAAE,GAAM;AACtD,WAAuB,GAAG,MAAM,CAAC,qBAAC,cAAQ,EAAG;IAAjC,8BAAmC;AAC/C,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,8CAA8C,WAAE,GAAM;AAC7D,IAAI,MAAM;AACV,MAAM,qBAAC,WAAQ;AACf,QAAQ,KAAK,KAAM,EACX,QAAQ,QAAS,EACjB,QAAQ,MAAO,EACf,aAAa;AACrB,UAAU,OAAO,EAAE,EAAE;AACrB,UAAU,OAAO,EAAE,EAAE;AACrB,UAAU,UAAU,EAAE,YAAY;AAClC,WAAU,CACD;AACT,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;AACtD,MAAM,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB;AAC/D,MAAM,iBAAiB,CACnB,CAAC,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,qBAAqB,WAAE,GAAM;AACpC,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG;IAA5C,4BAA8C;AAC1D,IAAIA,GAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC/D,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAE,CAAG,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,mBAAmB,WAAE,GAAM;AAClC,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,MAAM,GAAE,CAAG;IAArD,4BAAuD;AACnE,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,MAAM,GAAE,CAAG,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,yBAAyB,WAAE,GAAM;AACxC,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,YAAY,KAAI,CAAG;IAA7D,4BAA+D;AAC3E,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,YAAY,GAAE,CAAG,CAAC,CAAC;AACtD,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,wBAAwB,WAAE,GAAM;AACvC,IAAIA,GAAK,CAAC,GAAG,GAAG;AAChB,MAAM,IAAI,EAAE,CAAC;AACb,KAAK,CAAC;AACN,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG;IAA5C,4BAA8C;AAC1D,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACvD,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,kBAAkB,KAAI,CAAG,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,yBAAyB,WAAE,GAAM;AACxC,IAAIA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACnD,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG;IAA5C,4BAA8C;AAC1D,IAAIA,GAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtE,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,QAAQ,CAAC,KAAK,GAAE,CAAG,CAAC,CAAC;AACxD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACxC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,uCAAuC,WAAE,GAAM;AACtD,IAAIA,GAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1D,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG;IAA5C,4BAA8C;AAC1D,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAE,CAAG,CAAC,CAAC;AAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,qCAAqC,WAAE,GAAM;AACpD,IAAIA,GAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC5D,WAAsB,GAAG,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG;IAA5C,4BAA8C;AAC1D,IAAI,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,MAAM,IAAG,CAAG,CAAC,CAAC;AACjD,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAC7C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,qCAAqC,WAAE,GAAM;AACpD,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChE,IAAI,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,qCAAqC,WAAE,GAAM;AACpD,IAAIA,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAChD,IAAI,MAAM,CAAC,qBAAC,WAAQ,CAAC,KAAK,OAAM,CAAG,CAAC,CAAC;AACrC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC;AACA;AACA,IAAI,cAAc,CAAC,QAAQ,CAAC;AAC5B,MAAM;AACN,QAAQ,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE;AACxC,QAAQ,WAAW,EAAE;AACrB,UAAU,KAAK,EAAE,EAAE;AACnB,UAAU,MAAM,EAAE,EAAE;AACpB,SAAS;AACT,OAAO,CACH,CAAC,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,QAAQ,CAAC,cAAc,WAAE,GAAM;AACjC,IAAI,IAAI,CAAC,kDAAkD,WAAE,GAAM;AACnE,MAAMA,GAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,MAAMA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAMA,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAMA,GAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,MAAMA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAMA,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAMA,GAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,MAAMA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAMA,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAMA,GAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,MAAMA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAMA,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAMA,GAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACjD,MAAMA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAMA,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAMA,GAAK,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3C,aAAwB,GAAG,MAAM;AACjC,QAAQ,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,QAAQ,aAAY,CAAI;AACtD;MAFc,4BAEN;AACR,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD;AACA,MAAMA,GAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,qBAAC,WAAQ,CAAC,KAAK,KAAM,EAAC,QAAQ,QAAO,CAAG,CAAC,CAAC;AACzD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
@@ -6,9 +6,9 @@ import ResizeObserver from 'resize-observer-polyfill';
6
6
  var propTypes = {
7
7
  observe: PropTypes.oneOfType([
8
8
  PropTypes.string,
9
- PropTypes.instanceOf(Element),
9
+ PropTypes.node,
10
10
  PropTypes.instanceOf(Component),
11
- PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
11
+ PropTypes.shape({ current: PropTypes.node }),
12
12
  PropTypes.shape({ current: PropTypes.instanceOf(Component) }) ]),
13
13
  maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),
14
14
  maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),
@@ -1 +1 @@
1
- {"version":3,"file":"ResizeHandler.js","sources":["../../../src/components/ResizeHandler/ResizeHandler.js"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport { PureComponent, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nconst propTypes = {\n observe: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Element),\n PropTypes.instanceOf(Component),\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n PropTypes.shape({ current: PropTypes.instanceOf(Component) }),\n ]),\n maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),\n maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),\n stylePropHeight: PropTypes.string,\n onResize: PropTypes.func,\n\n // This property is used to re-apply the classes, for example when the className of the observed node changes.\n forceUpdate: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n};\n\n// Same as bootstrap\nconst defaultProps = {\n observe: null,\n maxHeightBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n maxWidthBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n stylePropHeight: null,\n onResize: null,\n forceUpdate: null,\n};\n/**\n * This component adds css class to an element depending on his size.\n */\nclass ResizeHandler extends PureComponent {\n static applyBreakpoints(entry, breakpoints, size, direction) {\n let found = false;\n let screenSize;\n Object.entries(breakpoints).forEach((brkpt) => {\n const cssClass = `rs-${direction}-${brkpt[0]}`;\n entry.target.classList.remove(cssClass);\n if (!found && size <= brkpt[1]) {\n found = true;\n [screenSize] = brkpt;\n entry.target.classList.add(cssClass);\n }\n });\n return screenSize;\n }\n\n constructor(props) {\n super(props);\n this.observer = new ResizeObserver((entries) => {\n return this.onResize(entries);\n });\n this.nodes = [];\n }\n\n componentDidMount() {\n this.observe();\n }\n\n componentDidUpdate(prevProps) {\n const { observe, forceUpdate } = this.props;\n\n if (\n observe !== prevProps.observe ||\n forceUpdate !== prevProps.forceUpdate\n ) {\n this.observe();\n }\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n onResize(entries) {\n const { maxHeightBrkpts, maxWidthBrkpts, stylePropHeight, onResize } =\n this.props;\n\n if (stylePropHeight) {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty(stylePropHeight, `${vh}px`);\n }\n\n if (!maxWidthBrkpts && !maxHeightBrkpts) {\n onResize(entries);\n return;\n }\n\n let newScreenWidth;\n let newScreenHeight;\n\n for (let i = 0; i < entries.length; i += 1) {\n const entry = entries[i];\n const rect = entry.contentRect;\n const { height, width } = rect;\n\n if (maxWidthBrkpts) {\n newScreenWidth = ResizeHandler.applyBreakpoints(\n entry,\n maxWidthBrkpts,\n width,\n 'w',\n );\n }\n if (maxHeightBrkpts) {\n newScreenHeight = ResizeHandler.applyBreakpoints(\n entry,\n maxHeightBrkpts,\n height,\n 'h',\n );\n }\n }\n\n if (onResize) {\n onResize(entries, newScreenWidth, newScreenHeight);\n }\n }\n\n observe() {\n this.observer.disconnect();\n const { observe } = this.props;\n\n if (!observe) {\n return;\n }\n\n if (typeof observe === 'string' || observe instanceof String) {\n this.nodes = document.querySelectorAll(observe);\n } else if (observe instanceof Component) {\n // eslint-disable-next-line react/no-find-dom-node\n this.nodes.push(ReactDOM.findDOMNode(observe));\n } else if (observe instanceof Element) {\n this.nodes.push(observe);\n } else if (observe.current instanceof Element) {\n // observe value created with React.createRef() on a html node.\n this.nodes.push(observe.current);\n } else if (observe.current instanceof Component) {\n // observe value created with React.createRef() on a React component.\n // eslint-disable-next-line react/no-find-dom-node\n this.nodes.push(ReactDOM.findDOMNode(observe.current));\n }\n\n if (this.nodes.length) {\n this.nodes.forEach((node) => {\n return this.observer.observe(node);\n });\n }\n }\n\n render() {\n return null;\n }\n}\n\nResizeHandler.propTypes = propTypes;\nResizeHandler.defaultProps = defaultProps;\n\nexport default ResizeHandler;\n"],"names":["const","let","super","this"],"mappings":"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"}
1
+ {"version":3,"file":"ResizeHandler.js","sources":["../../../src/components/ResizeHandler/ResizeHandler.js"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport { PureComponent, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nconst propTypes = {\n observe: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.instanceOf(Component),\n PropTypes.shape({ current: PropTypes.node }),\n PropTypes.shape({ current: PropTypes.instanceOf(Component) }),\n ]),\n maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),\n maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),\n stylePropHeight: PropTypes.string,\n onResize: PropTypes.func,\n\n // This property is used to re-apply the classes, for example when the className of the observed node changes.\n forceUpdate: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n};\n\n// Same as bootstrap\nconst defaultProps = {\n observe: null,\n maxHeightBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n maxWidthBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n stylePropHeight: null,\n onResize: null,\n forceUpdate: null,\n};\n/**\n * This component adds css class to an element depending on his size.\n */\nclass ResizeHandler extends PureComponent {\n static applyBreakpoints(entry, breakpoints, size, direction) {\n let found = false;\n let screenSize;\n Object.entries(breakpoints).forEach((brkpt) => {\n const cssClass = `rs-${direction}-${brkpt[0]}`;\n entry.target.classList.remove(cssClass);\n if (!found && size <= brkpt[1]) {\n found = true;\n [screenSize] = brkpt;\n entry.target.classList.add(cssClass);\n }\n });\n return screenSize;\n }\n\n constructor(props) {\n super(props);\n this.observer = new ResizeObserver((entries) => {\n return this.onResize(entries);\n });\n this.nodes = [];\n }\n\n componentDidMount() {\n this.observe();\n }\n\n componentDidUpdate(prevProps) {\n const { observe, forceUpdate } = this.props;\n\n if (\n observe !== prevProps.observe ||\n forceUpdate !== prevProps.forceUpdate\n ) {\n this.observe();\n }\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n onResize(entries) {\n const { maxHeightBrkpts, maxWidthBrkpts, stylePropHeight, onResize } =\n this.props;\n\n if (stylePropHeight) {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty(stylePropHeight, `${vh}px`);\n }\n\n if (!maxWidthBrkpts && !maxHeightBrkpts) {\n onResize(entries);\n return;\n }\n\n let newScreenWidth;\n let newScreenHeight;\n\n for (let i = 0; i < entries.length; i += 1) {\n const entry = entries[i];\n const rect = entry.contentRect;\n const { height, width } = rect;\n\n if (maxWidthBrkpts) {\n newScreenWidth = ResizeHandler.applyBreakpoints(\n entry,\n maxWidthBrkpts,\n width,\n 'w',\n );\n }\n if (maxHeightBrkpts) {\n newScreenHeight = ResizeHandler.applyBreakpoints(\n entry,\n maxHeightBrkpts,\n height,\n 'h',\n );\n }\n }\n\n if (onResize) {\n onResize(entries, newScreenWidth, newScreenHeight);\n }\n }\n\n observe() {\n this.observer.disconnect();\n const { observe } = this.props;\n\n if (!observe) {\n return;\n }\n\n if (typeof observe === 'string' || observe instanceof String) {\n this.nodes = document.querySelectorAll(observe);\n } else if (observe instanceof Component) {\n // eslint-disable-next-line react/no-find-dom-node\n this.nodes.push(ReactDOM.findDOMNode(observe));\n } else if (observe instanceof Element) {\n this.nodes.push(observe);\n } else if (observe.current instanceof Element) {\n // observe value created with React.createRef() on a html node.\n this.nodes.push(observe.current);\n } else if (observe.current instanceof Component) {\n // observe value created with React.createRef() on a React component.\n // eslint-disable-next-line react/no-find-dom-node\n this.nodes.push(ReactDOM.findDOMNode(observe.current));\n }\n\n if (this.nodes.length) {\n this.nodes.forEach((node) => {\n return this.observer.observe(node);\n });\n }\n }\n\n render() {\n return null;\n }\n}\n\nResizeHandler.propTypes = propTypes;\nResizeHandler.defaultProps = defaultProps;\n\nexport default ResizeHandler;\n"],"names":["const","let","super","this"],"mappings":"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"}
@@ -1,12 +1,9 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
- import { configure } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
3
  import 'jest-date-mock';
6
4
  import { TrajservLayer } from 'mobility-toolbox-js/ol';
7
5
  import RouteSchedule from '.';
8
6
 
9
- configure({ adapter: new Adapter() });
10
7
  var RealDate = Date;
11
8
 
12
9
  var lineInfos = {
@@ -1 +1 @@
1
- {"version":3,"file":"RouteSchedule.test.js","sources":["../../../src/components/RouteSchedule/RouteSchedule.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-date-mock';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport RouteSchedule from '.';\n\nconfigure({ adapter: new Adapter() });\nconst RealDate = Date;\n\nconst lineInfos = {\n backgroundColor: 'ff8a00',\n destination: 'Station name',\n id: 9959310,\n routeIdentifier: '03634.003849.004:9',\n longName: 'T 3',\n shortName: '3',\n operator: 'foo',\n operatorUrl: 'foo.ch',\n publisher: 'bar',\n publisherUrl: 'bar.ch',\n stations: [\n {\n stationId: '1',\n stationName: 'first stop',\n coordinates: [8.51772, 47.3586],\n arrivalDelay: 60000, // +1m\n arrivalTime: 1571729580000,\n departureDelay: 60000,\n departureTime: 1571729580000,\n },\n {\n stationId: '2',\n stationName: 'second stop',\n coordinates: [8.54119, 47.36646],\n arrivalDelay: 0, // +0\n arrivalTime: 1571729903000,\n departureDelay: 120000, // +2m\n departureTime: 1571729903000,\n },\n {\n stationId: '4',\n stationName: 'no stop',\n coordinates: [8.54119, 47.36646],\n arrivalDelay: null, // +0\n arrivalTime: 0,\n departureDelay: null, // +2m\n departureTime: 0,\n },\n {\n stationId: '3',\n stationName: 'third stop',\n coordinates: [8.54119, 50],\n arrivalDelay: 240000, // +4m\n arrivalTime: 1571730323000,\n departureDelay: 0, // +0\n departureTime: 0,\n },\n ],\n vehicleType: 0,\n};\n\ndescribe('RouteSchedule', () => {\n beforeEach(() => {\n global.Date = jest.fn(() => {\n return {\n getHours: () => {\n return 9;\n },\n getMinutes: () => {\n return 1;\n },\n };\n });\n Object.assign(Date, RealDate);\n });\n\n afterEach(() => {\n global.Date = RealDate;\n });\n\n test('matches snapshots.', () => {\n const trackerLayer = new TrajservLayer();\n const component = renderer.create(\n <RouteSchedule\n lineInfos={lineInfos}\n trackerLayer={trackerLayer}\n setCenter={() => {}}\n renderHeaderButtons={() => {\n return <div>Button</div>;\n }}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n // to test: on station click\n // to test: time formating\n // to test: delay formating\n // to test: delay color\n // to test: no arrival delay on first station\n // to test: no arrival date on first station\n // to test: no departure delay on last station\n // to test: no departure date on last station\n // to test: font bold on first and last station\n});\n"],"names":["const"],"mappings":"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"}
1
+ {"version":3,"file":"RouteSchedule.test.js","sources":["../../../src/components/RouteSchedule/RouteSchedule.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport 'jest-date-mock';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport RouteSchedule from '.';\n\nconst RealDate = Date;\n\nconst lineInfos = {\n backgroundColor: 'ff8a00',\n destination: 'Station name',\n id: 9959310,\n routeIdentifier: '03634.003849.004:9',\n longName: 'T 3',\n shortName: '3',\n operator: 'foo',\n operatorUrl: 'foo.ch',\n publisher: 'bar',\n publisherUrl: 'bar.ch',\n stations: [\n {\n stationId: '1',\n stationName: 'first stop',\n coordinates: [8.51772, 47.3586],\n arrivalDelay: 60000, // +1m\n arrivalTime: 1571729580000,\n departureDelay: 60000,\n departureTime: 1571729580000,\n },\n {\n stationId: '2',\n stationName: 'second stop',\n coordinates: [8.54119, 47.36646],\n arrivalDelay: 0, // +0\n arrivalTime: 1571729903000,\n departureDelay: 120000, // +2m\n departureTime: 1571729903000,\n },\n {\n stationId: '4',\n stationName: 'no stop',\n coordinates: [8.54119, 47.36646],\n arrivalDelay: null, // +0\n arrivalTime: 0,\n departureDelay: null, // +2m\n departureTime: 0,\n },\n {\n stationId: '3',\n stationName: 'third stop',\n coordinates: [8.54119, 50],\n arrivalDelay: 240000, // +4m\n arrivalTime: 1571730323000,\n departureDelay: 0, // +0\n departureTime: 0,\n },\n ],\n vehicleType: 0,\n};\n\ndescribe('RouteSchedule', () => {\n beforeEach(() => {\n global.Date = jest.fn(() => {\n return {\n getHours: () => {\n return 9;\n },\n getMinutes: () => {\n return 1;\n },\n };\n });\n Object.assign(Date, RealDate);\n });\n\n afterEach(() => {\n global.Date = RealDate;\n });\n\n test('matches snapshots.', () => {\n const trackerLayer = new TrajservLayer();\n const component = renderer.create(\n <RouteSchedule\n lineInfos={lineInfos}\n trackerLayer={trackerLayer}\n setCenter={() => {}}\n renderHeaderButtons={() => {\n return <div>Button</div>;\n }}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n // to test: on station click\n // to test: time formating\n // to test: delay formating\n // to test: delay color\n // to test: no arrival delay on first station\n // to test: no arrival date on first station\n // to test: no departure delay on last station\n // to test: no departure date on last station\n // to test: font bold on first and last station\n});\n"],"names":["const"],"mappings":"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"}
@@ -1,11 +1,7 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
- import { configure } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
3
  import Search from '.';
6
4
 
7
- configure({ adapter: new Adapter() });
8
-
9
5
  describe('Search', function () {
10
6
  test('matches snapshots.', function () {
11
7
  var component = renderer.create(React.createElement( Search, null ));
@@ -1 +1 @@
1
- {"version":3,"file":"Search.test.js","sources":["../../../src/components/Search/Search.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport Search from '.';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('Search', () => {\n test('matches snapshots.', () => {\n const component = renderer.create(<Search />);\n expect(component.toJSON()).toMatchSnapshot();\n });\n});\n\n// to test: custom props\n// to test: searching\n"],"names":["const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACnC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,MAAM,MAAM,GAAG,CAAC;AACvB;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACA,QAAQ,CAAC,QAAQ,WAAE,GAAM;AACzB,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,YAAM,EAAG,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH;AACA;AACA;"}
1
+ {"version":3,"file":"Search.test.js","sources":["../../../src/components/Search/Search.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport Search from '.';\n\ndescribe('Search', () => {\n test('matches snapshots.', () => {\n const component = renderer.create(<Search />);\n expect(component.toJSON()).toMatchSnapshot();\n });\n});\n\n// to test: custom props\n// to test: searching\n"],"names":["const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,MAAM,MAAM,GAAG,CAAC;AACvB;AACA,QAAQ,CAAC,QAAQ,WAAE,GAAM;AACzB,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,YAAM,EAAG,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH;AACA;AACA;"}
@@ -1,12 +1,8 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
- import { configure } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
3
  import { Map } from 'ol';
6
4
  import StopsFinder from '.';
7
5
 
8
- configure({ adapter: new Adapter() });
9
-
10
6
  describe('StopsFinder', function () {
11
7
  var map;
12
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"StopsFinder.test.js","sources":["../../../src/components/StopsFinder/StopsFinder.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { Map } from 'ol';\nimport StopsFinder from '.';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('StopsFinder', () => {\n let map;\n\n beforeEach(() => {\n map = new Map({});\n });\n\n test('matches snapshots.', () => {\n const component = renderer.create(<StopsFinder map={map} />);\n expect(component.toJSON()).toMatchSnapshot();\n });\n});\n"],"names":["let","const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACnC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,GAAG,QAAQ,IAAI,CAAC;AACzB,OAAO,WAAW,MAAM,GAAG,CAAC;AAC5B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACA,QAAQ,CAAC,aAAa,WAAE,GAAM;AAC9B,EAAEA,GAAG,CAAC,GAAG,CAAC;AACV;AACA,EAAE,UAAU,UAAC,GAAM;AACnB,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AACtB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIC,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,cAAW,CAAC,KAAK,KAAI,CAAG,CAAC,CAAC;AACjE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"StopsFinder.test.js","sources":["../../../src/components/StopsFinder/StopsFinder.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { Map } from 'ol';\nimport StopsFinder from '.';\n\ndescribe('StopsFinder', () => {\n let map;\n\n beforeEach(() => {\n map = new Map({});\n });\n\n test('matches snapshots.', () => {\n const component = renderer.create(<StopsFinder map={map} />);\n expect(component.toJSON()).toMatchSnapshot();\n });\n});\n"],"names":["let","const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,GAAG,QAAQ,IAAI,CAAC;AACzB,OAAO,WAAW,MAAM,GAAG,CAAC;AAC5B;AACA,QAAQ,CAAC,aAAa,WAAE,GAAM;AAC9B,EAAEA,GAAG,CAAC,GAAG,CAAC;AACV;AACA,EAAE,UAAU,UAAC,GAAM;AACnB,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AACtB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIC,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,cAAW,CAAC,KAAK,KAAI,CAAG,CAAC,CAAC;AACjE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
@@ -1,12 +1,8 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
- import { configure } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
3
  import { TrajservLayer } from 'mobility-toolbox-js/ol';
6
4
  import TrackerControl from '.';
7
5
 
8
- configure({ adapter: new Adapter() });
9
-
10
6
  describe('TrackerControl', function () {
11
7
  test('matches snapshots.', function () {
12
8
  var trackerLayer = new TrajservLayer();
@@ -1 +1 @@
1
- {"version":3,"file":"TrackerControl.test.js","sources":["../../../src/components/TrackerControl/TrackerControl.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport TrackerControl from '.';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('TrackerControl', () => {\n test('matches snapshots.', () => {\n const trackerLayer = new TrajservLayer();\n const component = renderer.create(\n <TrackerControl trackerLayer={trackerLayer} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n});\n"],"names":["const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACnC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,cAAc,MAAM,GAAG,CAAC;AAC/B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACA,QAAQ,CAAC,gBAAgB,WAAE,GAAM;AACjC,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AAC7C,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACrC,MAAM,qBAAC,iBAAc,CAAC,cAAc,cAAa,CAAI;AACrD,KAAK,CAAC;AACN,IAAIA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"TrackerControl.test.js","sources":["../../../src/components/TrackerControl/TrackerControl.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport TrackerControl from '.';\n\ndescribe('TrackerControl', () => {\n test('matches snapshots.', () => {\n const trackerLayer = new TrajservLayer();\n const component = renderer.create(\n <TrackerControl trackerLayer={trackerLayer} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n});\n"],"names":["const"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,cAAc,MAAM,GAAG,CAAC;AAC/B;AACA,QAAQ,CAAC,gBAAgB,WAAE,GAAM;AACjC,EAAE,IAAI,CAAC,oBAAoB,WAAE,GAAM;AACnC,IAAIA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AAC7C,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACrC,MAAM,qBAAC,iBAAc,CAAC,cAAc,cAAa,CAAI;AACrD,KAAK,CAAC;AACN,IAAIA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-spatial",
3
3
  "description": "Components to build React map apps.",
4
- "version": "1.1.6",
4
+ "version": "1.2.0-beta.3",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
7
  "@geops/geops-ui": "0.1.13",
@@ -31,6 +31,9 @@
31
31
  "@babel/preset-env": "7.15.0",
32
32
  "@babel/preset-react": "7.14.5",
33
33
  "@svgr/webpack": "5.5.0",
34
+ "@testing-library/jest-dom": "5.16.3",
35
+ "@testing-library/react": "12.1.4",
36
+ "@testing-library/user-event": "13.5.0",
34
37
  "babel-core": "7.0.0-bridge.0",
35
38
  "babel-jest": "27.0.2",
36
39
  "babel-loader": "8.2.2",
@@ -68,9 +71,9 @@
68
71
  "prettier": "2.4.1",
69
72
  "proj4": "2.7.5",
70
73
  "prop-types": "15.7.2",
71
- "react": "16.14.0",
74
+ "react": "18",
72
75
  "react-app-polyfill": "2.0.0",
73
- "react-dom": "16.14.0",
76
+ "react-dom": "18",
74
77
  "react-styleguidist": "11.0.8",
75
78
  "react-svg-loader": "3.0.3",
76
79
  "react-test-renderer": "16.13.1",
package/utils/KML.test.js CHANGED
@@ -1,13 +1,10 @@
1
- import { configure } from 'enzyme';
2
1
  import VectorLayer from 'ol/layer/Vector';
3
2
  import VectorSource from 'ol/source/Vector';
4
3
  import { Style } from 'ol/style';
5
4
  import { get } from 'ol/proj';
6
- import Adapter from 'enzyme-adapter-react-16';
7
5
  import beautify from 'xml-beautifier';
8
6
  import KML from './KML';
9
7
 
10
- configure({ adapter: new Adapter() });
11
8
  var xmlns =
12
9
  'xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd"';
13
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"KML.test.js","sources":["../../src/utils/KML.test.js"],"sourcesContent":["import { configure } from 'enzyme';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style } from 'ol/style';\nimport { get } from 'ol/proj';\nimport Adapter from 'enzyme-adapter-react-16';\nimport beautify from 'xml-beautifier';\nimport KML from './KML';\n\nconfigure({ adapter: new Adapter() });\nconst xmlns =\n 'xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd\"';\n\nconst expectWriteResult = (feats, str) => {\n expect(\n beautify(\n KML.writeFeatures(\n {\n name: 'lala',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: feats,\n }),\n }),\n },\n get('EPSG:4326'),\n ),\n ),\n ).toEqual(beautify(str));\n};\n\ndescribe('KML', () => {\n describe('readFeatures() and writeFeatures()', () => {\n test('should read/write LineStyle and ExtendedData (linesDash, lineStartIcon and lineEndIcon).', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <Style>\n <LineStyle>\n <color>ff056600</color>\n <width>1</width>\n </LineStyle>\n </Style>\n <ExtendedData>\n <Data name=\"lineDash\"><value>40,40</value></Data>\n <Data name=\"lineEndIcon\"><value>{\"url\":\"fooarrowend.png\",\"scale\":0.35,\"size\":[36,58],\"zIndex\":1}</value></Data>\n <Data name=\"lineStartIcon\"><value>{\"url\":\"fooarrowstart.png\",\"scale\":0.35,\"size\":[36,58],\"zIndex\":1}</value></Data>\n </ExtendedData>\n <LineString><coordinates>0,1,0 3,5,0 40,25,0</coordinates></LineString>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const styles = feats[0].getStyle();\n expect(feats.length).toBe(1);\n expect(styles.length).toBe(3);\n\n // line stroke\n const strokeStyle = styles[0].getStroke();\n expect(strokeStyle.getColor()).toEqual([0, 102, 5, 1]);\n expect(strokeStyle.getLineDash()).toEqual([40, 40]);\n\n // line start icon\n const lineStartStyle = styles[1];\n expect(lineStartStyle.getImage().getRotation()).toEqual(\n -0.9272952180016122,\n );\n expect(lineStartStyle.getImage().getColor()).toEqual([0, 102, 5, 1]);\n expect(lineStartStyle.getImage().getRotateWithView()).toBe(true);\n expect(lineStartStyle.getGeometry()(feats[0]).getCoordinates()).toEqual([\n 0, 1, 0,\n ]);\n expect(lineStartStyle.getZIndex()).toEqual(1);\n\n // line end icon\n const lineEndStyle = styles[2];\n expect(lineEndStyle.getImage().getRotation()).toEqual(\n -0.49555167348582857,\n );\n expect(lineEndStyle.getImage().getRotateWithView()).toBe(true);\n expect(lineEndStyle.getImage().getColor()).toEqual([0, 102, 5, 1]);\n expect(lineEndStyle.getGeometry()(feats[0]).getCoordinates()).toEqual([\n 40, 25, 0,\n ]);\n expect(lineEndStyle.getZIndex()).toEqual(1);\n\n expectWriteResult(feats, str);\n });\n\n test('should read/write TextStyle and ExtendedData.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <name> bar </name>\n <Style>\n <IconStyle>\n <scale>0</scale>\n </IconStyle>\n <LabelStyle>\n <color>ff7e3420</color>\n <scale>2</scale>\n </LabelStyle>\n </Style>\n <ExtendedData>\n <Data name=\"textAlign\">\n <value>right</value>\n </Data>\n <Data name=\"textBackgroundFillColor\">\n <value>rgba(255,255,255,0.01)</value>\n </Data>\n <Data name=\"textFont\">\n <value>bold 16px arial</value>\n </Data>\n <Data name=\"textOffsetX\">\n <value>-90</value>\n </Data>\n <Data name=\"textOffsetY\">\n <value>30</value>\n </Data>\n <Data name=\"textPadding\">\n <value>5,6,7,8</value>\n </Data>\n <Data name=\"textRotation\">\n <value>2.303834612632515</value>\n </Data>\n <Data name=\"textStrokeColor\">\n <value>rgba(100,255,255,0.2)</value>\n </Data>\n <Data name=\"textStrokeWidth\">\n <value>3</value>\n </Data>\n </ExtendedData>\n <Point>\n <coordinates>0,0,0</coordinates>\n </Point>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const style = feats[0].getStyleFunction()(feats[0], 1);\n expect(feats.length).toBe(1);\n expect(style instanceof Style).toBe(true);\n\n // Text\n const styleText = style.getText();\n expect(styleText.getText()).toBe('bar'); // spaces are trimmed.\n expect(styleText.getFont()).toEqual('bold 16px arial');\n expect(styleText.getFill()).toEqual({ color_: [32, 52, 126, 1] });\n expect(styleText.getStroke()).toEqual({\n color_: 'rgba(100,255,255,0.2)',\n width_: 3,\n lineCap_: undefined,\n lineDashOffset_: undefined,\n lineDash_: null,\n lineJoin_: undefined,\n miterLimit_: undefined,\n });\n expect(styleText.getScale()).toEqual(2);\n expect(styleText.getRotation()).toEqual('2.303834612632515');\n expect(styleText.getPadding()).toEqual([5, 6, 7, 8]);\n expect(styleText.getBackgroundFill()).toEqual({\n color_: 'rgba(255,255,255,0.01)',\n });\n expect(styleText.getTextAlign()).toEqual('right');\n expect(styleText.getOffsetX()).toEqual(-90);\n expect(styleText.getOffsetY()).toEqual(30);\n expectWriteResult(feats, str);\n });\n\n test('should read and write lineDash and fillPattern style for polygon', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <description></description>\n <Style>\n <LineStyle>\n <color>ff0000eb</color>\n <width>2</width>\n </LineStyle>\n <PolyStyle>\n <fill>0</fill>\n </PolyStyle>\n </Style>\n <ExtendedData>\n <Data name=\"fillPattern\">\n <value>{\"id\":3,\"color\":[235,0,0,1]}</value>\n </Data>\n <Data name=\"lineDash\">\n <value>1,1</value>\n </Data>\n </ExtendedData>\n <Polygon>\n <outerBoundaryIs>\n <LinearRing>\n <coordinates>8.521,47.381,0 8.529,47.375,0 8.531,47.382,0 8.521,47.381,0</coordinates>\n </LinearRing>\n </outerBoundaryIs>\n </Polygon>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const styles = feats[0].getStyle();\n expect(feats.length).toBe(1);\n expect(styles.length).toBe(1);\n\n // Polygon\n const feature = feats[0];\n const outlineStyle = styles[0].getStroke();\n expect(outlineStyle.getColor()).toEqual([235, 0, 0, 1]);\n expect(outlineStyle.getWidth()).toEqual(2);\n const fillStyle = styles[0].getFill();\n expect(feature.get('fillPattern')).toEqual({\n id: 3,\n color: [235, 0, 0, 1],\n });\n const color = fillStyle.getColor();\n expect(color.canvas).toMatchSnapshot();\n expect(color.id).toBe(3);\n expect(color.color).toEqual([235, 0, 0, 1]);\n expectWriteResult(feats, str);\n });\n\n test('should add zIndex and rotation to icon style and pictureOptions to feature properties.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <description></description>\n <Style>\n <IconStyle>\n <heading>\n 1.5707963267948966\n </heading>\n <Icon>\n <href>https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\n <gx:w>64</gx:w>\n <gx:h>64</gx:h>\n </Icon>\n <hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\n </IconStyle>\n </Style>\n <ExtendedData>\n <Data name=\"iconRotation\">\n <value>1.5707963267948966</value>\n </Data>\n <Data name=\"maxZoom\">\n <value>18.5</value>\n </Data>\n <Data name=\"minZoom\">\n <value>15</value>\n </Data>\n <Data name=\"pictureOptions\">\n <value>{\"resolution\":4,\"defaultScale\":0.5}</value>\n </Data>\n <Data name=\"zIndex\">\n <value>1</value>\n </Data>\n </ExtendedData>\n <Point>\n <coordinates>0,0,0</coordinates>\n </Point>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const style = feats[0].getStyleFunction()(feats[0], 1);\n expect(style.getZIndex()).toBe(1);\n expect(style.getImage().getRotation()).toBe(1.5707963267948966);\n expect(feats[0].get('pictureOptions')).toEqual({\n resolution: 4,\n defaultScale: 0.5,\n });\n expect(feats[0].get('maxZoom')).toEqual(18.5);\n expect(feats[0].get('minZoom')).toEqual(15);\n expectWriteResult(feats, str);\n });\n });\n\n describe('writeDocumentCamera()', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>\n CamTest\n </name>\n </Document>\n </kml>`;\n\n const strWithCam = `<kml ${xmlns}>\n <Document>\n <name>\n CamTest\n </name>\n <Camera xmlns=\"\">\n <Heading>\n 270\n </Heading>\n <Altitude>\n 300\n </Altitude>\n <Longitude>\n 5.8\n </Longitude>\n <Latitude>\n 41.6\n </Latitude>\n </Camera>\n </Document>\n </kml>`;\n\n test('should insert the correct <Camera> tag.', () => {\n const kmlWithKamera = KML.writeDocumentCamera(str, {\n heading: 270,\n altitude: 300,\n longitude: 5.8,\n latitude: 41.6,\n });\n expect(beautify(kmlWithKamera)).toEqual(beautify(strWithCam));\n });\n\n test('should remove the present <Camera> tag when called without cameraAttributes.', () => {\n const kmlWithoutKamera = KML.writeDocumentCamera(strWithCam);\n expect(beautify(kmlWithoutKamera)).toEqual(beautify(str));\n });\n });\n});\n"],"names":["const"],"mappings":"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"}
1
+ {"version":3,"file":"KML.test.js","sources":["../../src/utils/KML.test.js"],"sourcesContent":["import VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\nimport { Style } from 'ol/style';\nimport { get } from 'ol/proj';\nimport beautify from 'xml-beautifier';\nimport KML from './KML';\n\nconst xmlns =\n 'xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd\"';\n\nconst expectWriteResult = (feats, str) => {\n expect(\n beautify(\n KML.writeFeatures(\n {\n name: 'lala',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: feats,\n }),\n }),\n },\n get('EPSG:4326'),\n ),\n ),\n ).toEqual(beautify(str));\n};\n\ndescribe('KML', () => {\n describe('readFeatures() and writeFeatures()', () => {\n test('should read/write LineStyle and ExtendedData (linesDash, lineStartIcon and lineEndIcon).', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <Style>\n <LineStyle>\n <color>ff056600</color>\n <width>1</width>\n </LineStyle>\n </Style>\n <ExtendedData>\n <Data name=\"lineDash\"><value>40,40</value></Data>\n <Data name=\"lineEndIcon\"><value>{\"url\":\"fooarrowend.png\",\"scale\":0.35,\"size\":[36,58],\"zIndex\":1}</value></Data>\n <Data name=\"lineStartIcon\"><value>{\"url\":\"fooarrowstart.png\",\"scale\":0.35,\"size\":[36,58],\"zIndex\":1}</value></Data>\n </ExtendedData>\n <LineString><coordinates>0,1,0 3,5,0 40,25,0</coordinates></LineString>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const styles = feats[0].getStyle();\n expect(feats.length).toBe(1);\n expect(styles.length).toBe(3);\n\n // line stroke\n const strokeStyle = styles[0].getStroke();\n expect(strokeStyle.getColor()).toEqual([0, 102, 5, 1]);\n expect(strokeStyle.getLineDash()).toEqual([40, 40]);\n\n // line start icon\n const lineStartStyle = styles[1];\n expect(lineStartStyle.getImage().getRotation()).toEqual(\n -0.9272952180016122,\n );\n expect(lineStartStyle.getImage().getColor()).toEqual([0, 102, 5, 1]);\n expect(lineStartStyle.getImage().getRotateWithView()).toBe(true);\n expect(lineStartStyle.getGeometry()(feats[0]).getCoordinates()).toEqual([\n 0, 1, 0,\n ]);\n expect(lineStartStyle.getZIndex()).toEqual(1);\n\n // line end icon\n const lineEndStyle = styles[2];\n expect(lineEndStyle.getImage().getRotation()).toEqual(\n -0.49555167348582857,\n );\n expect(lineEndStyle.getImage().getRotateWithView()).toBe(true);\n expect(lineEndStyle.getImage().getColor()).toEqual([0, 102, 5, 1]);\n expect(lineEndStyle.getGeometry()(feats[0]).getCoordinates()).toEqual([\n 40, 25, 0,\n ]);\n expect(lineEndStyle.getZIndex()).toEqual(1);\n\n expectWriteResult(feats, str);\n });\n\n test('should read/write TextStyle and ExtendedData.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <name> bar </name>\n <Style>\n <IconStyle>\n <scale>0</scale>\n </IconStyle>\n <LabelStyle>\n <color>ff7e3420</color>\n <scale>2</scale>\n </LabelStyle>\n </Style>\n <ExtendedData>\n <Data name=\"textAlign\">\n <value>right</value>\n </Data>\n <Data name=\"textBackgroundFillColor\">\n <value>rgba(255,255,255,0.01)</value>\n </Data>\n <Data name=\"textFont\">\n <value>bold 16px arial</value>\n </Data>\n <Data name=\"textOffsetX\">\n <value>-90</value>\n </Data>\n <Data name=\"textOffsetY\">\n <value>30</value>\n </Data>\n <Data name=\"textPadding\">\n <value>5,6,7,8</value>\n </Data>\n <Data name=\"textRotation\">\n <value>2.303834612632515</value>\n </Data>\n <Data name=\"textStrokeColor\">\n <value>rgba(100,255,255,0.2)</value>\n </Data>\n <Data name=\"textStrokeWidth\">\n <value>3</value>\n </Data>\n </ExtendedData>\n <Point>\n <coordinates>0,0,0</coordinates>\n </Point>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const style = feats[0].getStyleFunction()(feats[0], 1);\n expect(feats.length).toBe(1);\n expect(style instanceof Style).toBe(true);\n\n // Text\n const styleText = style.getText();\n expect(styleText.getText()).toBe('bar'); // spaces are trimmed.\n expect(styleText.getFont()).toEqual('bold 16px arial');\n expect(styleText.getFill()).toEqual({ color_: [32, 52, 126, 1] });\n expect(styleText.getStroke()).toEqual({\n color_: 'rgba(100,255,255,0.2)',\n width_: 3,\n lineCap_: undefined,\n lineDashOffset_: undefined,\n lineDash_: null,\n lineJoin_: undefined,\n miterLimit_: undefined,\n });\n expect(styleText.getScale()).toEqual(2);\n expect(styleText.getRotation()).toEqual('2.303834612632515');\n expect(styleText.getPadding()).toEqual([5, 6, 7, 8]);\n expect(styleText.getBackgroundFill()).toEqual({\n color_: 'rgba(255,255,255,0.01)',\n });\n expect(styleText.getTextAlign()).toEqual('right');\n expect(styleText.getOffsetX()).toEqual(-90);\n expect(styleText.getOffsetY()).toEqual(30);\n expectWriteResult(feats, str);\n });\n\n test('should read and write lineDash and fillPattern style for polygon', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <description></description>\n <Style>\n <LineStyle>\n <color>ff0000eb</color>\n <width>2</width>\n </LineStyle>\n <PolyStyle>\n <fill>0</fill>\n </PolyStyle>\n </Style>\n <ExtendedData>\n <Data name=\"fillPattern\">\n <value>{\"id\":3,\"color\":[235,0,0,1]}</value>\n </Data>\n <Data name=\"lineDash\">\n <value>1,1</value>\n </Data>\n </ExtendedData>\n <Polygon>\n <outerBoundaryIs>\n <LinearRing>\n <coordinates>8.521,47.381,0 8.529,47.375,0 8.531,47.382,0 8.521,47.381,0</coordinates>\n </LinearRing>\n </outerBoundaryIs>\n </Polygon>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const styles = feats[0].getStyle();\n expect(feats.length).toBe(1);\n expect(styles.length).toBe(1);\n\n // Polygon\n const feature = feats[0];\n const outlineStyle = styles[0].getStroke();\n expect(outlineStyle.getColor()).toEqual([235, 0, 0, 1]);\n expect(outlineStyle.getWidth()).toEqual(2);\n const fillStyle = styles[0].getFill();\n expect(feature.get('fillPattern')).toEqual({\n id: 3,\n color: [235, 0, 0, 1],\n });\n const color = fillStyle.getColor();\n expect(color.canvas).toMatchSnapshot();\n expect(color.id).toBe(3);\n expect(color.color).toEqual([235, 0, 0, 1]);\n expectWriteResult(feats, str);\n });\n\n test('should add zIndex and rotation to icon style and pictureOptions to feature properties.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Placemark>\n <description></description>\n <Style>\n <IconStyle>\n <heading>\n 1.5707963267948966\n </heading>\n <Icon>\n <href>https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\n <gx:w>64</gx:w>\n <gx:h>64</gx:h>\n </Icon>\n <hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\n </IconStyle>\n </Style>\n <ExtendedData>\n <Data name=\"iconRotation\">\n <value>1.5707963267948966</value>\n </Data>\n <Data name=\"maxZoom\">\n <value>18.5</value>\n </Data>\n <Data name=\"minZoom\">\n <value>15</value>\n </Data>\n <Data name=\"pictureOptions\">\n <value>{\"resolution\":4,\"defaultScale\":0.5}</value>\n </Data>\n <Data name=\"zIndex\">\n <value>1</value>\n </Data>\n </ExtendedData>\n <Point>\n <coordinates>0,0,0</coordinates>\n </Point>\n </Placemark>\n </Document>\n </kml>\n `;\n const feats = KML.readFeatures(str);\n const style = feats[0].getStyleFunction()(feats[0], 1);\n expect(style.getZIndex()).toBe(1);\n expect(style.getImage().getRotation()).toBe(1.5707963267948966);\n expect(feats[0].get('pictureOptions')).toEqual({\n resolution: 4,\n defaultScale: 0.5,\n });\n expect(feats[0].get('maxZoom')).toEqual(18.5);\n expect(feats[0].get('minZoom')).toEqual(15);\n expectWriteResult(feats, str);\n });\n });\n\n describe('writeDocumentCamera()', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>\n CamTest\n </name>\n </Document>\n </kml>`;\n\n const strWithCam = `<kml ${xmlns}>\n <Document>\n <name>\n CamTest\n </name>\n <Camera xmlns=\"\">\n <Heading>\n 270\n </Heading>\n <Altitude>\n 300\n </Altitude>\n <Longitude>\n 5.8\n </Longitude>\n <Latitude>\n 41.6\n </Latitude>\n </Camera>\n </Document>\n </kml>`;\n\n test('should insert the correct <Camera> tag.', () => {\n const kmlWithKamera = KML.writeDocumentCamera(str, {\n heading: 270,\n altitude: 300,\n longitude: 5.8,\n latitude: 41.6,\n });\n expect(beautify(kmlWithKamera)).toEqual(beautify(strWithCam));\n });\n\n test('should remove the present <Camera> tag when called without cameraAttributes.', () => {\n const kmlWithoutKamera = KML.writeDocumentCamera(strWithCam);\n expect(beautify(kmlWithoutKamera)).toEqual(beautify(str));\n });\n });\n});\n"],"names":["const"],"mappings":"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"}
@@ -1,8 +1,5 @@
1
- import { configure } from 'enzyme';
2
- import Adapter from 'enzyme-adapter-react-16';
3
1
  import KML from './KMLFormat';
4
2
 
5
- configure({ adapter: new Adapter() });
6
3
  var xmlns =
7
4
  'xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd"';
8
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"KMLFormat.test.js","sources":["../../src/utils/KMLFormat.test.js"],"sourcesContent":["import { configure } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport KML from './KMLFormat';\n\nconfigure({ adapter: new Adapter() });\nconst xmlns =\n 'xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd\"';\n\ndescribe('KML', () => {\n test('should read <Camera> tags correctly.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Camera>\n <Heading>\n 270\n </Heading>\n <Altitude>\n 300\n </Altitude>\n <Longitude>\n 5.8\n </Longitude>\n <Latitude>\n 41.6\n </Latitude>\n </Camera>\n <Placemark>\n <Camera>\n <Heading>\n 180\n </Heading>\n <AltitudeMode>\n clampToGround\n </AltitudeMode>\n </Camera>\n </Placemark>\n </Document>\n </kml>\n `;\n const format = new KML();\n const cameras = format.readCamera(str);\n\n expect(cameras.length).toEqual(2);\n expect(cameras[0].Heading).toEqual(270);\n expect(cameras[0].Altitude).toEqual(300);\n expect(cameras[0].Longitude).toEqual(5.8);\n expect(cameras[0].Latitude).toEqual(41.6);\n expect(cameras[1].Heading).toEqual(180);\n expect(cameras[1].AltitudeMode).toEqual('clampToGround');\n });\n});\n"],"names":["const"],"mappings":"AAAA,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACnC,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtCA,GAAK,CAAC,KAAK;AACX,EAAE,oPAAoP,CAAC;AACvP;AACA,QAAQ,CAAC,KAAK,WAAE,GAAM;AACtB,EAAE,IAAI,CAAC,sCAAsC,WAAE,GAAM;AACrD,IAAIA,GAAK,CAAC,GAAG,GAAG,kBACH,KAAK,ouBA6Bb,CAAC;AACN,IAAIA,GAAK,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,IAAIA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"KMLFormat.test.js","sources":["../../src/utils/KMLFormat.test.js"],"sourcesContent":["import KML from './KMLFormat';\n\nconst xmlns =\n 'xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd\"';\n\ndescribe('KML', () => {\n test('should read <Camera> tags correctly.', () => {\n const str = `\n <kml ${xmlns}>\n <Document>\n <name>lala</name>\n <Camera>\n <Heading>\n 270\n </Heading>\n <Altitude>\n 300\n </Altitude>\n <Longitude>\n 5.8\n </Longitude>\n <Latitude>\n 41.6\n </Latitude>\n </Camera>\n <Placemark>\n <Camera>\n <Heading>\n 180\n </Heading>\n <AltitudeMode>\n clampToGround\n </AltitudeMode>\n </Camera>\n </Placemark>\n </Document>\n </kml>\n `;\n const format = new KML();\n const cameras = format.readCamera(str);\n\n expect(cameras.length).toEqual(2);\n expect(cameras[0].Heading).toEqual(270);\n expect(cameras[0].Altitude).toEqual(300);\n expect(cameras[0].Longitude).toEqual(5.8);\n expect(cameras[0].Latitude).toEqual(41.6);\n expect(cameras[1].Heading).toEqual(180);\n expect(cameras[1].AltitudeMode).toEqual('clampToGround');\n });\n});\n"],"names":["const"],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B;AACAA,GAAK,CAAC,KAAK;AACX,EAAE,oPAAoP,CAAC;AACvP;AACA,QAAQ,CAAC,KAAK,WAAE,GAAM;AACtB,EAAE,IAAI,CAAC,sCAAsC,WAAE,GAAM;AACrD,IAAIA,GAAK,CAAC,GAAG,GAAG,kBACH,KAAK,ouBA6Bb,CAAC;AACN,IAAIA,GAAK,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,IAAIA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}