react-spatial 1.2.0-beta.5 → 1.2.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/components/CanvasSaveButton/CanvasSaveButton.test.js +1 -1
  2. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +1 -1
  3. package/components/Copyright/Copyright.test.js +1 -1
  4. package/components/Copyright/Copyright.test.js.map +1 -1
  5. package/components/FeatureExportButton/FeatureExportButton.test.js +1 -1
  6. package/components/FeatureExportButton/FeatureExportButton.test.js.map +1 -1
  7. package/components/FilterButton/FilterButton.test.js +1 -1
  8. package/components/FilterButton/FilterButton.test.js.map +1 -1
  9. package/components/FitExtent/FitExtent.test.js +1 -1
  10. package/components/FitExtent/FitExtent.test.js.map +1 -1
  11. package/components/FollowButton/FollowButton.test.js +1 -1
  12. package/components/FollowButton/FollowButton.test.js.map +1 -1
  13. package/components/Geolocation/Geolocation.test.js +1 -1
  14. package/components/Geolocation/Geolocation.test.js.map +1 -1
  15. package/components/LayerTree/LayerTree.js +17 -1
  16. package/components/LayerTree/LayerTree.js.map +1 -1
  17. package/components/LayerTree/LayerTree.test.js +1 -1
  18. package/components/LayerTree/LayerTree.test.js.map +1 -1
  19. package/components/MousePosition/MousePosition.test.js +1 -1
  20. package/components/MousePosition/MousePosition.test.js.map +1 -1
  21. package/components/NorthArrow/NorthArrow.test.js +1 -1
  22. package/components/NorthArrow/NorthArrow.test.js.map +1 -1
  23. package/components/Overlay/Overlay.test.js +1 -1
  24. package/components/Overlay/Overlay.test.js.map +1 -1
  25. package/components/Permalink/Permalink.js +11 -1
  26. package/components/Permalink/Permalink.js.map +1 -1
  27. package/components/Permalink/Permalink.test.js +1 -1
  28. package/components/Permalink/Permalink.test.js.map +1 -1
  29. package/components/Popup/Popup.test.js +1 -1
  30. package/components/Popup/Popup.test.js.map +1 -1
  31. package/components/ResizeHandler/ResizeHandler.test.js +1 -1
  32. package/components/ResizeHandler/ResizeHandler.test.js.map +1 -1
  33. package/components/RouteSchedule/RouteSchedule.js +4 -4
  34. package/components/RouteSchedule/RouteSchedule.js.map +1 -1
  35. package/components/ScaleLine/ScaleLine.test.js +1 -1
  36. package/components/ScaleLine/ScaleLine.test.js.map +1 -1
  37. package/components/Zoom/Zoom.test.js +1 -1
  38. package/components/Zoom/Zoom.test.js.map +1 -1
  39. package/package.json +6 -6
@@ -2,7 +2,7 @@ import 'jest-canvas-mock';
2
2
  import React from 'react';
3
3
  import renderer from 'react-test-renderer';
4
4
  import { configure, shallow } from 'enzyme';
5
- import Adapter from 'enzyme-adapter-react-16';
5
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
6
  import Map from 'ol/Map';
7
7
  import View from 'ol/View';
8
8
  import { TiImage } from 'react-icons/ti';
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasSaveButton.test.js","sources":["../../../src/components/CanvasSaveButton/CanvasSaveButton.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport Map from 'ol/Map';\nimport View from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport RenderEvent from 'ol/render/Event';\nimport CanvasSaveButton from './CanvasSaveButton';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('CanvasSaveButton', () => {\n let olMap;\n const conf = {\n title: 'Karte als Bild speichern.',\n icon: <TiImage focusable={false} />,\n className: 'ta-example',\n saveFormat: 'image/jpeg',\n };\n\n beforeEach(() => {\n const target = document.createElement('div');\n document.body.appendChild(target);\n target.style.width = '100px';\n target.style.height = '100px';\n olMap = new Map({\n target,\n controls: [],\n view: new View({\n center: [0, 0],\n zoom: 0,\n }),\n });\n olMap.getView().setCenter([1, 1]);\n });\n\n afterEach(() => {\n if (olMap.getTargetElement()) {\n document.body.removeChild(olMap.getTargetElement());\n }\n olMap.setTarget(null);\n });\n\n test('should match snapshot.', () => {\n const component = renderer.create(\n <CanvasSaveButton format={conf.saveFormat} map={olMap}>\n {conf.icon}\n </CanvasSaveButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with a different attributes', () => {\n const component = renderer.create(\n // eslint-disable-next-line jsx-a11y/tabindex-no-positive\n <CanvasSaveButton title={conf.title} className=\"foo\" tabIndex=\"1\">\n {conf.icon}\n </CanvasSaveButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should call onSaveBefore then download then onSaveEnd function on click.', async (done) => {\n const saveStart = jest.fn((m) => {\n return Promise.resolve(m);\n });\n const saveEnd = jest.fn();\n const wrapper = shallow(\n <CanvasSaveButton\n className=\"ta-example\"\n map={olMap}\n format={conf.saveFormat}\n onSaveStart={saveStart}\n onSaveEnd={saveEnd}\n extraData={{\n copyright: {\n text: () => {\n return (\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)'\n );\n },\n },\n }}\n >\n {conf.icon}\n </CanvasSaveButton>,\n );\n const link = document.createElement('a');\n link.click = jest.fn();\n const div = document.createElement('div');\n const canvas = document.createElement('canvas');\n canvas.toBlob = jest.fn((callback) => {\n return callback();\n });\n global.URL.createObjectURL = jest.fn(() => {\n return 'fooblob';\n });\n // We use a spy here to be able to correctly restore the initial function\n const spy3 = jest\n .spyOn(global.document, 'createElement')\n .mockImplementation((elt) => {\n if (elt === 'canvas') {\n return canvas;\n }\n if (elt === 'div') {\n return div;\n }\n if (elt === 'a') {\n return link;\n }\n return {};\n });\n const spy = jest.spyOn(CanvasSaveButton.prototype, 'createCanvasImage');\n const spy2 = jest.spyOn(CanvasSaveButton.prototype, 'downloadCanvasImage');\n jest\n .spyOn(olMap.getTargetElement(), 'getElementsByTagName')\n .mockReturnValue([canvas]);\n await wrapper.find('.ta-example').simulate('click');\n await olMap.dispatchEvent(\n new RenderEvent('rendercomplete', undefined, undefined, {\n canvas,\n }),\n );\n await window.setTimeout(() => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(saveStart).toHaveBeenCalledTimes(1);\n expect(saveEnd).toHaveBeenCalledTimes(1);\n expect(spy2.mock.calls[0][0]).toBe(canvas);\n expect(spy2.mock.calls[0][0].toBlob).toHaveBeenCalledTimes(1);\n expect(link.href).toBe('http://localhost/fooblob');\n expect(link.download).toBe('.jpg');\n expect(link.click).toHaveBeenCalledTimes(1);\n spy.mockRestore();\n spy2.mockRestore();\n spy3.mockRestore();\n done();\n });\n });\n\n test('stops click event propagation on ie.', () => {\n const wrapper = shallow(\n <CanvasSaveButton className=\"ta-example\" title={conf.title} map={olMap}>\n {conf.icon}\n </CanvasSaveButton>,\n );\n\n const evt = {\n stopPropagation: jest.fn(),\n preventDefault: jest.fn(),\n };\n window.navigator.msSaveBlob = true;\n\n const canvas = document.createElement('canvas');\n const p = new Promise((resolve) => {\n resolve(canvas);\n });\n jest\n .spyOn(CanvasSaveButton.prototype, 'createCanvasImage')\n .mockReturnValue(p);\n\n wrapper.find('.ta-example').simulate('click', evt);\n expect(evt.stopPropagation).toHaveBeenCalledTimes(1);\n expect(evt.preventDefault).toHaveBeenCalledTimes(1);\n\n window.navigator.msSaveBlob = false;\n });\n});\n"],"names":["let","const"],"mappings":"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"}
1
+ {"version":3,"file":"CanvasSaveButton.test.js","sources":["../../../src/components/CanvasSaveButton/CanvasSaveButton.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport Map from 'ol/Map';\nimport View from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport RenderEvent from 'ol/render/Event';\nimport CanvasSaveButton from './CanvasSaveButton';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('CanvasSaveButton', () => {\n let olMap;\n const conf = {\n title: 'Karte als Bild speichern.',\n icon: <TiImage focusable={false} />,\n className: 'ta-example',\n saveFormat: 'image/jpeg',\n };\n\n beforeEach(() => {\n const target = document.createElement('div');\n document.body.appendChild(target);\n target.style.width = '100px';\n target.style.height = '100px';\n olMap = new Map({\n target,\n controls: [],\n view: new View({\n center: [0, 0],\n zoom: 0,\n }),\n });\n olMap.getView().setCenter([1, 1]);\n });\n\n afterEach(() => {\n if (olMap.getTargetElement()) {\n document.body.removeChild(olMap.getTargetElement());\n }\n olMap.setTarget(null);\n });\n\n test('should match snapshot.', () => {\n const component = renderer.create(\n <CanvasSaveButton format={conf.saveFormat} map={olMap}>\n {conf.icon}\n </CanvasSaveButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with a different attributes', () => {\n const component = renderer.create(\n // eslint-disable-next-line jsx-a11y/tabindex-no-positive\n <CanvasSaveButton title={conf.title} className=\"foo\" tabIndex=\"1\">\n {conf.icon}\n </CanvasSaveButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should call onSaveBefore then download then onSaveEnd function on click.', async (done) => {\n const saveStart = jest.fn((m) => {\n return Promise.resolve(m);\n });\n const saveEnd = jest.fn();\n const wrapper = shallow(\n <CanvasSaveButton\n className=\"ta-example\"\n map={olMap}\n format={conf.saveFormat}\n onSaveStart={saveStart}\n onSaveEnd={saveEnd}\n extraData={{\n copyright: {\n text: () => {\n return (\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +\n 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)'\n );\n },\n },\n }}\n >\n {conf.icon}\n </CanvasSaveButton>,\n );\n const link = document.createElement('a');\n link.click = jest.fn();\n const div = document.createElement('div');\n const canvas = document.createElement('canvas');\n canvas.toBlob = jest.fn((callback) => {\n return callback();\n });\n global.URL.createObjectURL = jest.fn(() => {\n return 'fooblob';\n });\n // We use a spy here to be able to correctly restore the initial function\n const spy3 = jest\n .spyOn(global.document, 'createElement')\n .mockImplementation((elt) => {\n if (elt === 'canvas') {\n return canvas;\n }\n if (elt === 'div') {\n return div;\n }\n if (elt === 'a') {\n return link;\n }\n return {};\n });\n const spy = jest.spyOn(CanvasSaveButton.prototype, 'createCanvasImage');\n const spy2 = jest.spyOn(CanvasSaveButton.prototype, 'downloadCanvasImage');\n jest\n .spyOn(olMap.getTargetElement(), 'getElementsByTagName')\n .mockReturnValue([canvas]);\n await wrapper.find('.ta-example').simulate('click');\n await olMap.dispatchEvent(\n new RenderEvent('rendercomplete', undefined, undefined, {\n canvas,\n }),\n );\n await window.setTimeout(() => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(saveStart).toHaveBeenCalledTimes(1);\n expect(saveEnd).toHaveBeenCalledTimes(1);\n expect(spy2.mock.calls[0][0]).toBe(canvas);\n expect(spy2.mock.calls[0][0].toBlob).toHaveBeenCalledTimes(1);\n expect(link.href).toBe('http://localhost/fooblob');\n expect(link.download).toBe('.jpg');\n expect(link.click).toHaveBeenCalledTimes(1);\n spy.mockRestore();\n spy2.mockRestore();\n spy3.mockRestore();\n done();\n });\n });\n\n test('stops click event propagation on ie.', () => {\n const wrapper = shallow(\n <CanvasSaveButton className=\"ta-example\" title={conf.title} map={olMap}>\n {conf.icon}\n </CanvasSaveButton>,\n );\n\n const evt = {\n stopPropagation: jest.fn(),\n preventDefault: jest.fn(),\n };\n window.navigator.msSaveBlob = true;\n\n const canvas = document.createElement('canvas');\n const p = new Promise((resolve) => {\n resolve(canvas);\n });\n jest\n .spyOn(CanvasSaveButton.prototype, 'createCanvasImage')\n .mockReturnValue(p);\n\n wrapper.find('.ta-example').simulate('click', evt);\n expect(evt.stopPropagation).toHaveBeenCalledTimes(1);\n expect(evt.preventDefault).toHaveBeenCalledTimes(1);\n\n window.navigator.msSaveBlob = false;\n });\n});\n"],"names":["let","const"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import 'jest-canvas-mock';
2
2
  import React from 'react';
3
3
  import { configure, mount } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
  import { act } from 'react-dom/test-utils';
6
6
  import { Map, View } from 'ol';
7
7
  import Tile from 'ol/Tile';
@@ -1 +1 @@
1
- {"version":3,"file":"Copyright.test.js","sources":["../../../src/components/Copyright/Copyright.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { act } from 'react-dom/test-utils';\nimport { Map, View } from 'ol';\nimport Tile from 'ol/Tile';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport { createXYZ } from 'ol/tilegrid';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport Copyright from './Copyright';\n\nconfigure({ adapter: new Adapter() });\n\nconst image = new Image();\nimage.width = 256;\nimage.height = 256;\n\nconst tileLoadFunction = () => {\n const tile = new Tile([0, 0, -1], 2 /* LOADED */);\n tile.getImage = () => {\n return image;\n };\n return tile;\n};\n\nconst getOLTileLayer = () => {\n const layer = new TileLayer({\n source: new TileSource({\n projection: 'EPSG:3857',\n tileGrid: createXYZ(),\n }),\n });\n layer.getSource().getTile = tileLoadFunction;\n return layer;\n};\n\nconst getLayer = (copyrights, visible = true) => {\n return new Layer({\n visible,\n copyrights,\n olLayer: getOLTileLayer(),\n });\n};\n\nlet layers;\nlet map;\n\ndescribe('Copyright', () => {\n beforeEach(() => {\n const target = document.createElement('div');\n document.body.appendChild(target);\n layers = [getLayer('bar'), getLayer('foo', false)];\n map = new Map({\n target,\n view: new View({\n center: [0, 0],\n zoom: 0,\n }),\n layers: layers.map((layer) => {\n return layer.olLayer;\n }),\n });\n map.setSize([200, 200]);\n layers.forEach((layer) => {\n layer.init(map);\n });\n act(() => {\n map.renderSync();\n });\n });\n\n afterEach(() => {\n map.setTarget(null);\n map = null;\n });\n\n test('is empty if no layers are visible', () => {\n const component = mount(<Copyright map={map} />);\n expect(component.html()).toBe(null);\n });\n\n test('displays one copyright', () => {\n const wrapper = mount(<Copyright map={map} />);\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n expect(wrapper.text()).toBe('bar');\n });\n\n test('displays 2 copyrights', () => {\n const wrapper = mount(<Copyright map={map} />);\n layers[0].setVisible(true);\n layers[1].setVisible(true);\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n expect(wrapper.text()).toBe('bar | foo');\n });\n\n test('displays a copyright using a custom format', () => {\n const wrapper = mount(\n <Copyright\n map={map}\n format={(copyrights) => {\n return `Number of copyrights: ${copyrights.length}`;\n }}\n />,\n );\n\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n\n expect(wrapper.text()).toBe('Number of copyrights: 1');\n });\n\n test('set a custom className', () => {\n const wrapper = mount(<Copyright map={map} className=\"foo\" />);\n expect(wrapper.find('.foo').length).toBe(1);\n });\n\n test('set a custom attribute to the root element', () => {\n const wrapper = mount(<Copyright map={map} foo=\"bar\" />);\n expect(wrapper.find('[foo]').length).toBe(1);\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"Copyright.test.js","sources":["../../../src/components/Copyright/Copyright.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport { act } from 'react-dom/test-utils';\nimport { Map, View } from 'ol';\nimport Tile from 'ol/Tile';\nimport TileLayer from 'ol/layer/Tile';\nimport TileSource from 'ol/source/Tile';\nimport { createXYZ } from 'ol/tilegrid';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport Copyright from './Copyright';\n\nconfigure({ adapter: new Adapter() });\n\nconst image = new Image();\nimage.width = 256;\nimage.height = 256;\n\nconst tileLoadFunction = () => {\n const tile = new Tile([0, 0, -1], 2 /* LOADED */);\n tile.getImage = () => {\n return image;\n };\n return tile;\n};\n\nconst getOLTileLayer = () => {\n const layer = new TileLayer({\n source: new TileSource({\n projection: 'EPSG:3857',\n tileGrid: createXYZ(),\n }),\n });\n layer.getSource().getTile = tileLoadFunction;\n return layer;\n};\n\nconst getLayer = (copyrights, visible = true) => {\n return new Layer({\n visible,\n copyrights,\n olLayer: getOLTileLayer(),\n });\n};\n\nlet layers;\nlet map;\n\ndescribe('Copyright', () => {\n beforeEach(() => {\n const target = document.createElement('div');\n document.body.appendChild(target);\n layers = [getLayer('bar'), getLayer('foo', false)];\n map = new Map({\n target,\n view: new View({\n center: [0, 0],\n zoom: 0,\n }),\n layers: layers.map((layer) => {\n return layer.olLayer;\n }),\n });\n map.setSize([200, 200]);\n layers.forEach((layer) => {\n layer.init(map);\n });\n act(() => {\n map.renderSync();\n });\n });\n\n afterEach(() => {\n map.setTarget(null);\n map = null;\n });\n\n test('is empty if no layers are visible', () => {\n const component = mount(<Copyright map={map} />);\n expect(component.html()).toBe(null);\n });\n\n test('displays one copyright', () => {\n const wrapper = mount(<Copyright map={map} />);\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n expect(wrapper.text()).toBe('bar');\n });\n\n test('displays 2 copyrights', () => {\n const wrapper = mount(<Copyright map={map} />);\n layers[0].setVisible(true);\n layers[1].setVisible(true);\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n expect(wrapper.text()).toBe('bar | foo');\n });\n\n test('displays a copyright using a custom format', () => {\n const wrapper = mount(\n <Copyright\n map={map}\n format={(copyrights) => {\n return `Number of copyrights: ${copyrights.length}`;\n }}\n />,\n );\n\n act(() => {\n map.renderSync();\n });\n wrapper.update();\n\n expect(wrapper.text()).toBe('Number of copyrights: 1');\n });\n\n test('set a custom className', () => {\n const wrapper = mount(<Copyright map={map} className=\"foo\" />);\n expect(wrapper.find('.foo').length).toBe(1);\n });\n\n test('set a custom attribute to the root element', () => {\n const wrapper = mount(<Copyright map={map} foo=\"bar\" />);\n expect(wrapper.find('[foo]').length).toBe(1);\n });\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,SAAS,SAAS,EAAE,KAAK,QAAQ,QAAQ,CAAC;AAC1C,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,SAAS,GAAG,QAAQ,sBAAsB,CAAC;AAC3C,SAAS,GAAG,EAAE,IAAI,QAAQ,IAAI,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,SAAS,SAAS,QAAQ,aAAa,CAAC;AACxC,SAAS,KAAK,QAAQ,wBAAwB,CAAC;AAC/C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAC1B,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;AACnB;AACAA,GAAK,CAAC,gBAAgB,YAAG,GAAM;AAC/B,EAAEA,GAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC;AACpD,EAAE,IAAI,CAAC,QAAQ,YAAG,GAAM;AACxB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,cAAc,YAAG,GAAM;AAC7B,EAAEA,GAAK,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC;AAC9B,IAAI,MAAM,EAAE,IAAI,UAAU,CAAC;AAC3B,MAAM,UAAU,EAAE,WAAW;AAC7B,MAAM,QAAQ,EAAE,SAAS,EAAE;AAC3B,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,GAAG,gBAAgB,CAAC;AAC/C,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,QAAQ,YAAG,CAAC,UAAU,EAAE,OAAc,EAAK;mCAAZ,GAAG;AAAU;AAClD,EAAE,OAAO,IAAI,KAAK,CAAC;AACnB,aAAI,OAAO;AACX,gBAAI,UAAU;AACd,IAAI,OAAO,EAAE,cAAc,EAAE;AAC7B,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAC,GAAG,CAAC,MAAM,CAAC;AACXA,GAAG,CAAC,GAAG,CAAC;AACR;AACA,QAAQ,CAAC,WAAW,WAAE,GAAM;AAC5B,EAAE,UAAU,UAAC,GAAM;AACnB,IAAID,GAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC;AAClB,cAAM,MAAM;AACZ,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC;AACrB,QAAQ,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,QAAQ,IAAI,EAAE,CAAC;AACf,OAAO,CAAC;AACR,MAAM,MAAM,EAAE,MAAM,CAAC,GAAG,UAAC,CAAC,KAAK,EAAK;AACpC,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC;AAC7B,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5B,IAAI,MAAM,CAAC,OAAO,UAAC,CAAC,KAAK,EAAK;AAC9B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,SAAS,UAAC,GAAM;AAClB,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxB,IAAI,GAAG,GAAG,IAAI,CAAC;AACf,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,mCAAmC,WAAE,GAAM;AAClD,IAAIA,GAAK,CAAC,SAAS,GAAG,KAAK,CAAC,qBAAC,YAAS,CAAC,KAAK,KAAI,CAAG,CAAC,CAAC;AACrD,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,wBAAwB,WAAE,GAAM;AACvC,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,YAAS,CAAC,KAAK,KAAI,CAAG,CAAC,CAAC;AACnD,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,uBAAuB,WAAE,GAAM;AACtC,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,YAAS,CAAC,KAAK,KAAI,CAAG,CAAC,CAAC;AACnD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7C,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,4CAA4C,WAAE,GAAM;AAC3D,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK;AACzB,MAAM,qBAAC,YAAS;AAChB,QAAQ,KAAK,GAAI,EACT,iBAAQ,CAAC,UAAU,EAAK;AAChC,UAAU,OAAO,6BAAyB,UAAU,CAAC,QAAQ,CAAC;AAC9D,WAAU,CACD;AACT,KAAK,CAAC;AACN;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAC3D,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,wBAAwB,WAAE,GAAM;AACvC,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,YAAS,CAAC,KAAK,GAAI,EAAC,WAAU,OAAK,CAAG,CAAC,CAAC;AACnE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,4CAA4C,WAAE,GAAM;AAC3D,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,YAAS,CAAC,KAAK,GAAI,EAAC,KAAI,OAAK,CAAG,CAAC,CAAC;AAC7D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
@@ -2,7 +2,7 @@ import 'jest-canvas-mock';
2
2
  import React from 'react';
3
3
  import renderer from 'react-test-renderer';
4
4
  import { configure, mount, shallow } from 'enzyme';
5
- import Adapter from 'enzyme-adapter-react-16';
5
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
6
  import { Layer } from 'mobility-toolbox-js/ol';
7
7
  import GPX from 'ol/format/GPX';
8
8
  import VectorSource from 'ol/source/Vector';
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureExportButton.test.js","sources":["../../../src/components/FeatureExportButton/FeatureExportButton.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport GPX from 'ol/format/GPX';\nimport VectorSource from 'ol/source/Vector';\nimport Style from 'ol/style/Style';\nimport Icon from 'ol/style/Icon';\nimport Text from 'ol/style/Text';\nimport Fill from 'ol/style/Fill';\nimport Stroke from 'ol/style/Stroke';\nimport Circle from 'ol/geom/Circle';\nimport Point from 'ol/geom/Point';\nimport LineString from 'ol/geom/LineString';\nimport Feature from 'ol/Feature';\nimport VectorLayer from 'ol/layer/Vector';\n\nimport FeatureExportButton from '.';\n\nconfigure({ adapter: new Adapter() });\n\nconst layer = new Layer({\n name: 'Sample layer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: [\n new Feature({\n geometry: new Point([819103.972418, 6120013.078324]),\n }),\n ],\n }),\n }),\n});\n\ndescribe('FeatureExportButton', () => {\n describe('should match snapshot', () => {\n test('with default attributes.', () => {\n const component = renderer.create(<FeatureExportButton layer={layer} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with cutom attributes.', () => {\n const component = renderer.create(\n <FeatureExportButton\n layer={layer}\n className=\"foo\"\n title=\"bar\"\n // eslint-disable-next-line jsx-a11y/tabindex-no-positive\n tabIndex={2}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children passed.', () => {\n const component = renderer.create(\n <FeatureExportButton layer={layer}>\n <div>Foo</div>\n </FeatureExportButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n describe('triggers onClick', () => {\n // Use library 'jest-environment-jsdom-fourteen'\n // to allow jest test of format.writeFeatures(feats).\n const renderLayer = (featNumbers) => {\n const featsArray = [];\n for (let i = 0; i < featNumbers; i += 1) {\n featsArray.push(\n new Feature({\n geometry: new Point([819103.972418, 6120013.078324]),\n }),\n );\n }\n\n return new Layer({\n name: 'ExportLayer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: featsArray,\n }),\n }),\n });\n };\n\n const iconLayer = renderLayer(1);\n\n const textStyle = new Style({\n text: new Text({\n text: 'text name',\n font: 'normal 16px Helvetica',\n stroke: new Stroke({\n color: [255, 255, 255, 1],\n width: 3,\n }),\n }),\n });\n\n test('should be trigger click function.', () => {\n const wrapper = shallow(<FeatureExportButton layer={iconLayer} />);\n const spy = jest.spyOn(FeatureExportButton, 'exportFeatures');\n wrapper.find('.rs-feature-export-button').simulate('click');\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n test('should use attributes for parsing', () => {\n const wrapper = mount(\n <FeatureExportButton\n format={GPX}\n projection=\"EPSG:4326\"\n layer={iconLayer}\n />,\n );\n const spy = jest.spyOn(FeatureExportButton, 'exportFeatures');\n wrapper.find('.rs-feature-export-button').simulate('click');\n expect(spy).toHaveBeenCalledWith(iconLayer, 'EPSG:4326', GPX);\n });\n\n describe('#createFeatureString()', () => {\n describe('using KMLFormat', () => {\n test('should export kml by default.', () => {\n const exportString = FeatureExportButton.createFeatureString(\n iconLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(exportString).toMatchSnapshot();\n });\n\n const iconStyle = new Style({\n image: new Icon({\n anchor: [0.5, 46],\n anchorXUnits: 'fraction',\n anchorYUnits: 'pixels',\n src: 'https://openlayers.org/en/latest/examples/data/icon.png',\n }),\n });\n\n iconLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(iconStyle);\n });\n\n test('should export icon style in kml.', () => {\n const exportString = FeatureExportButton.createFeatureString(\n iconLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedString =\n '<Style><IconStyle><Icon><href>' +\n 'https://openlayers.org/en/latest/examples/data/icon.png' +\n '</href></Icon></IconStyle></Style>';\n expect(exportString.match(/<Style>(.*?)<\\/Style>/g)[0]).toBe(\n expectedString,\n );\n });\n\n test('should export with layer name.', () => {\n const namedlayer = renderLayer(1);\n const exportString = FeatureExportButton.createFeatureString(\n namedlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedname = '<name>ExportLayer</name>';\n expect(exportString.match(/<name>(.*?)<\\/name>/g)[0]).toBe(\n expectedname,\n );\n });\n\n test('should export without layer name.', () => {\n const unnamedlayer = renderLayer(1);\n const exportString = FeatureExportButton.createFeatureString(\n unnamedlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(\n /<document><name>ExportLayer<\\/name>/g.test(exportString),\n ).toBe(false);\n });\n\n test('should export text style in kml.', () => {\n const textlayer = renderLayer(2);\n\n textlayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(textStyle);\n });\n const exportString = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<Style><IconStyle><scale>0</scale></IconStyle>' +\n '<LabelStyle><color>ff333333</color></LabelStyle></Style>';\n expect(exportString.match(/<Style>(.*?)<\\/Style>/g)[0]).toBe(\n expectedStyle,\n );\n });\n\n test('should only export none-empty text style in kml.', () => {\n const textlayer = renderLayer(2);\n\n textlayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(textStyle);\n });\n const exportString1 = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n\n expect(\n exportString1.match(/<Placemark>(.*?)<\\/Placemark>/g).length,\n ).toBe(2);\n\n const newStyle = new Style({\n text: new Text({\n text: '',\n font: 'normal 16px Helvetica',\n stroke: new Stroke({\n color: [255, 255, 255, 1],\n width: 3,\n }),\n }),\n });\n // Set empty string as name for first feature\n textlayer.olLayer.getSource().getFeatures()[0].setStyle(newStyle);\n\n const exportString2 = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n\n expect(\n exportString2.match(/<Placemark>(.*?)<\\/Placemark>/g).length,\n ).toBe(1);\n });\n\n test(\"should not export 'Cirle geom' (kml unsupported).\", () => {\n const circleLayer = new Layer({\n name: 'ExportLayer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: [\n new Feature({\n geometry: new Circle({\n center: [843119.531243, 6111943.000197],\n radius: 1000,\n }),\n }),\n ],\n }),\n }),\n });\n\n const circleStyle = new Style({\n stroke: new Stroke({\n color: 'red',\n width: 3,\n }),\n fill: new Fill({\n color: 'rgba(255, 0, 0, 0.1)',\n }),\n });\n\n circleLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(circleStyle);\n });\n const exportString = FeatureExportButton.createFeatureString(\n circleLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(exportString).toBe(undefined);\n });\n\n test('should export extended data.', () => {\n const extendedLayer = renderLayer(1);\n\n const style = new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n text: new Text({\n text: 'text name',\n font: 'normal 18px Arial',\n rotation: 0.5,\n backgroundFill: new Fill({\n color: 'rgba(255,255,255,0.01)',\n }),\n }),\n });\n\n extendedLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(style);\n });\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"textBackgroundFillColor\"><value>rgba(255,255,255,0.01)</value></Data>' +\n '<Data name=\"textFont\"><value>normal 18px Arial</value></Data>' +\n '<Data name=\"textRotation\"><value>0.5</value></Data></ExtendedData>';\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n\n test('should not export others extended data than style.', () => {\n const extendedLayer = renderLayer(1);\n\n const style = new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n text: new Text({\n text: 'text name',\n font: 'normal 18px Arial',\n rotation: 0.5,\n backgroundFill: new Fill({\n color: 'rgba(255,255,255,0.01)',\n }),\n }),\n });\n\n extendedLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(style);\n f.set('foo', 'bar');\n });\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"textBackgroundFillColor\"><value>rgba(255,255,255,0.01)</value></Data>' +\n '<Data name=\"textFont\"><value>normal 18px Arial</value></Data>' +\n '<Data name=\"textRotation\"><value>0.5</value></Data></ExtendedData>';\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n\n test('should export lineStartIcon and lineEndIcon style.', () => {\n const extendedLayer = renderLayer(1);\n const line = new Feature({\n geometry: new LineString([\n [0, 1],\n [2, 3],\n [4, 5],\n ]),\n });\n extendedLayer.olLayer.getSource().addFeatures([line]);\n\n const style = [\n new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n }),\n new Style({\n geometry: () => {\n return new Point([4, 5]);\n },\n image: new Icon({\n src: 'fooarrowend.png',\n }),\n }),\n new Style({\n geometry: () => {\n return new Point([0, 1]);\n },\n image: new Icon({\n src: 'fooarrowstart.png',\n }),\n }),\n ];\n line.setStyle(style);\n\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"lineEndIcon\">' +\n '<value>{\"url\":\"fooarrowend.png\",\"scale\":1,\"size\":null}</value></Data>' +\n '<Data name=\"lineStartIcon\">' +\n '<value>{\"url\":\"fooarrowstart.png\",\"scale\":1,\"size\":null}</value></Data>' +\n '</ExtendedData>';\n\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n });\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"FeatureExportButton.test.js","sources":["../../../src/components/FeatureExportButton/FeatureExportButton.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport GPX from 'ol/format/GPX';\nimport VectorSource from 'ol/source/Vector';\nimport Style from 'ol/style/Style';\nimport Icon from 'ol/style/Icon';\nimport Text from 'ol/style/Text';\nimport Fill from 'ol/style/Fill';\nimport Stroke from 'ol/style/Stroke';\nimport Circle from 'ol/geom/Circle';\nimport Point from 'ol/geom/Point';\nimport LineString from 'ol/geom/LineString';\nimport Feature from 'ol/Feature';\nimport VectorLayer from 'ol/layer/Vector';\n\nimport FeatureExportButton from '.';\n\nconfigure({ adapter: new Adapter() });\n\nconst layer = new Layer({\n name: 'Sample layer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: [\n new Feature({\n geometry: new Point([819103.972418, 6120013.078324]),\n }),\n ],\n }),\n }),\n});\n\ndescribe('FeatureExportButton', () => {\n describe('should match snapshot', () => {\n test('with default attributes.', () => {\n const component = renderer.create(<FeatureExportButton layer={layer} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with cutom attributes.', () => {\n const component = renderer.create(\n <FeatureExportButton\n layer={layer}\n className=\"foo\"\n title=\"bar\"\n // eslint-disable-next-line jsx-a11y/tabindex-no-positive\n tabIndex={2}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children passed.', () => {\n const component = renderer.create(\n <FeatureExportButton layer={layer}>\n <div>Foo</div>\n </FeatureExportButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n describe('triggers onClick', () => {\n // Use library 'jest-environment-jsdom-fourteen'\n // to allow jest test of format.writeFeatures(feats).\n const renderLayer = (featNumbers) => {\n const featsArray = [];\n for (let i = 0; i < featNumbers; i += 1) {\n featsArray.push(\n new Feature({\n geometry: new Point([819103.972418, 6120013.078324]),\n }),\n );\n }\n\n return new Layer({\n name: 'ExportLayer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: featsArray,\n }),\n }),\n });\n };\n\n const iconLayer = renderLayer(1);\n\n const textStyle = new Style({\n text: new Text({\n text: 'text name',\n font: 'normal 16px Helvetica',\n stroke: new Stroke({\n color: [255, 255, 255, 1],\n width: 3,\n }),\n }),\n });\n\n test('should be trigger click function.', () => {\n const wrapper = shallow(<FeatureExportButton layer={iconLayer} />);\n const spy = jest.spyOn(FeatureExportButton, 'exportFeatures');\n wrapper.find('.rs-feature-export-button').simulate('click');\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n test('should use attributes for parsing', () => {\n const wrapper = mount(\n <FeatureExportButton\n format={GPX}\n projection=\"EPSG:4326\"\n layer={iconLayer}\n />,\n );\n const spy = jest.spyOn(FeatureExportButton, 'exportFeatures');\n wrapper.find('.rs-feature-export-button').simulate('click');\n expect(spy).toHaveBeenCalledWith(iconLayer, 'EPSG:4326', GPX);\n });\n\n describe('#createFeatureString()', () => {\n describe('using KMLFormat', () => {\n test('should export kml by default.', () => {\n const exportString = FeatureExportButton.createFeatureString(\n iconLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(exportString).toMatchSnapshot();\n });\n\n const iconStyle = new Style({\n image: new Icon({\n anchor: [0.5, 46],\n anchorXUnits: 'fraction',\n anchorYUnits: 'pixels',\n src: 'https://openlayers.org/en/latest/examples/data/icon.png',\n }),\n });\n\n iconLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(iconStyle);\n });\n\n test('should export icon style in kml.', () => {\n const exportString = FeatureExportButton.createFeatureString(\n iconLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedString =\n '<Style><IconStyle><Icon><href>' +\n 'https://openlayers.org/en/latest/examples/data/icon.png' +\n '</href></Icon></IconStyle></Style>';\n expect(exportString.match(/<Style>(.*?)<\\/Style>/g)[0]).toBe(\n expectedString,\n );\n });\n\n test('should export with layer name.', () => {\n const namedlayer = renderLayer(1);\n const exportString = FeatureExportButton.createFeatureString(\n namedlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedname = '<name>ExportLayer</name>';\n expect(exportString.match(/<name>(.*?)<\\/name>/g)[0]).toBe(\n expectedname,\n );\n });\n\n test('should export without layer name.', () => {\n const unnamedlayer = renderLayer(1);\n const exportString = FeatureExportButton.createFeatureString(\n unnamedlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(\n /<document><name>ExportLayer<\\/name>/g.test(exportString),\n ).toBe(false);\n });\n\n test('should export text style in kml.', () => {\n const textlayer = renderLayer(2);\n\n textlayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(textStyle);\n });\n const exportString = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<Style><IconStyle><scale>0</scale></IconStyle>' +\n '<LabelStyle><color>ff333333</color></LabelStyle></Style>';\n expect(exportString.match(/<Style>(.*?)<\\/Style>/g)[0]).toBe(\n expectedStyle,\n );\n });\n\n test('should only export none-empty text style in kml.', () => {\n const textlayer = renderLayer(2);\n\n textlayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(textStyle);\n });\n const exportString1 = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n\n expect(\n exportString1.match(/<Placemark>(.*?)<\\/Placemark>/g).length,\n ).toBe(2);\n\n const newStyle = new Style({\n text: new Text({\n text: '',\n font: 'normal 16px Helvetica',\n stroke: new Stroke({\n color: [255, 255, 255, 1],\n width: 3,\n }),\n }),\n });\n // Set empty string as name for first feature\n textlayer.olLayer.getSource().getFeatures()[0].setStyle(newStyle);\n\n const exportString2 = FeatureExportButton.createFeatureString(\n textlayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n\n expect(\n exportString2.match(/<Placemark>(.*?)<\\/Placemark>/g).length,\n ).toBe(1);\n });\n\n test(\"should not export 'Cirle geom' (kml unsupported).\", () => {\n const circleLayer = new Layer({\n name: 'ExportLayer',\n olLayer: new VectorLayer({\n source: new VectorSource({\n features: [\n new Feature({\n geometry: new Circle({\n center: [843119.531243, 6111943.000197],\n radius: 1000,\n }),\n }),\n ],\n }),\n }),\n });\n\n const circleStyle = new Style({\n stroke: new Stroke({\n color: 'red',\n width: 3,\n }),\n fill: new Fill({\n color: 'rgba(255, 0, 0, 0.1)',\n }),\n });\n\n circleLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(circleStyle);\n });\n const exportString = FeatureExportButton.createFeatureString(\n circleLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n expect(exportString).toBe(undefined);\n });\n\n test('should export extended data.', () => {\n const extendedLayer = renderLayer(1);\n\n const style = new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n text: new Text({\n text: 'text name',\n font: 'normal 18px Arial',\n rotation: 0.5,\n backgroundFill: new Fill({\n color: 'rgba(255,255,255,0.01)',\n }),\n }),\n });\n\n extendedLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(style);\n });\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"textBackgroundFillColor\"><value>rgba(255,255,255,0.01)</value></Data>' +\n '<Data name=\"textFont\"><value>normal 18px Arial</value></Data>' +\n '<Data name=\"textRotation\"><value>0.5</value></Data></ExtendedData>';\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n\n test('should not export others extended data than style.', () => {\n const extendedLayer = renderLayer(1);\n\n const style = new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n text: new Text({\n text: 'text name',\n font: 'normal 18px Arial',\n rotation: 0.5,\n backgroundFill: new Fill({\n color: 'rgba(255,255,255,0.01)',\n }),\n }),\n });\n\n extendedLayer.olLayer.getSource().forEachFeature((f) => {\n f.setStyle(style);\n f.set('foo', 'bar');\n });\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"textBackgroundFillColor\"><value>rgba(255,255,255,0.01)</value></Data>' +\n '<Data name=\"textFont\"><value>normal 18px Arial</value></Data>' +\n '<Data name=\"textRotation\"><value>0.5</value></Data></ExtendedData>';\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n\n test('should export lineStartIcon and lineEndIcon style.', () => {\n const extendedLayer = renderLayer(1);\n const line = new Feature({\n geometry: new LineString([\n [0, 1],\n [2, 3],\n [4, 5],\n ]),\n });\n extendedLayer.olLayer.getSource().addFeatures([line]);\n\n const style = [\n new Style({\n stroke: new Stroke({\n color: [0, 0, 0, 1],\n lineDash: [40, 40],\n }),\n }),\n new Style({\n geometry: () => {\n return new Point([4, 5]);\n },\n image: new Icon({\n src: 'fooarrowend.png',\n }),\n }),\n new Style({\n geometry: () => {\n return new Point([0, 1]);\n },\n image: new Icon({\n src: 'fooarrowstart.png',\n }),\n }),\n ];\n line.setStyle(style);\n\n const exportString = FeatureExportButton.createFeatureString(\n extendedLayer,\n FeatureExportButton.defaultProps.projection,\n FeatureExportButton.defaultProps.format,\n );\n const expectedStyle =\n '<ExtendedData><Data name=\"lineDash\"><value>40,40</value></Data>' +\n '<Data name=\"lineEndIcon\">' +\n '<value>{\"url\":\"fooarrowend.png\",\"scale\":1,\"size\":null}</value></Data>' +\n '<Data name=\"lineStartIcon\">' +\n '<value>{\"url\":\"fooarrowstart.png\",\"scale\":1,\"size\":null}</value></Data>' +\n '</ExtendedData>';\n\n expect(\n exportString.match(/<ExtendedData>(.*?)<\\/ExtendedData>/g)[0],\n ).toBe(expectedStyle);\n });\n });\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
3
  import { configure, shallow } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
  import { MdFilterList } from 'react-icons/md';
6
6
  import { TrajservLayer } from 'mobility-toolbox-js/ol';
7
7
  import FilterButton from '.';
@@ -1 +1 @@
1
- {"version":3,"file":"FilterButton.test.js","sources":["../../../src/components/FilterButton/FilterButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { MdFilterList } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FilterButton from '.';\n\nconfigure({ adapter: new Adapter() });\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FilterButton\n className=\"rt-filter-button\"\n title=\"Filter up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let filterActive = false;\n const setFilterActive = () => {\n filterActive = !filterActive;\n };\n const bt = shallow(\n <FilterButton\n className=\"rt-filter-button\"\n routeIdentifier=\"test\"\n active={filterActive}\n onClick={(active) => {\n return setFilterActive(active);\n }}\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n\n expect(filterActive).toBe(false);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(true);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtCA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,iBAAgB,MAAM,EACtB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"FilterButton.test.js","sources":["../../../src/components/FilterButton/FilterButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport { MdFilterList } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FilterButton from '.';\n\nconfigure({ adapter: new Adapter() });\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FilterButton\n className=\"rt-filter-button\"\n title=\"Filter up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let filterActive = false;\n const setFilterActive = () => {\n filterActive = !filterActive;\n };\n const bt = shallow(\n <FilterButton\n className=\"rt-filter-button\"\n routeIdentifier=\"test\"\n active={filterActive}\n onClick={(active) => {\n return setFilterActive(active);\n }}\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n\n expect(filterActive).toBe(false);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(true);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtCA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,iBAAgB,MAAM,EACtB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
3
  import { configure, shallow } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
  import OLView from 'ol/View';
6
6
  import OLMap from 'ol/Map';
7
7
  import FitExtent from './FitExtent';
@@ -1 +1 @@
1
- {"version":3,"file":"FitExtent.test.js","sources":["../../../src/components/FitExtent/FitExtent.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport OLView from 'ol/View';\nimport OLMap from 'ol/Map';\nimport FitExtent from './FitExtent';\n\nconfigure({ adapter: new Adapter() });\n\nconst extent = [1, 2, 3, 4];\n\ntest('Button should match snapshot.', () => {\n const map = new OLMap({});\n const component = renderer.create(\n <FitExtent map={map} extent={extent}>\n FitExtent\n </FitExtent>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('Should fit the extent.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', {});\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n\ntest('Should fit the extent on return.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', { which: 13 });\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n"],"names":["const"],"mappings":"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"}
1
+ {"version":3,"file":"FitExtent.test.js","sources":["../../../src/components/FitExtent/FitExtent.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport OLView from 'ol/View';\nimport OLMap from 'ol/Map';\nimport FitExtent from './FitExtent';\n\nconfigure({ adapter: new Adapter() });\n\nconst extent = [1, 2, 3, 4];\n\ntest('Button should match snapshot.', () => {\n const map = new OLMap({});\n const component = renderer.create(\n <FitExtent map={map} extent={extent}>\n FitExtent\n </FitExtent>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('Should fit the extent.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', {});\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n\ntest('Should fit the extent on return.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', { which: 13 });\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n"],"names":["const"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
3
  import { configure, shallow } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
  import { MdNavigation } from 'react-icons/md';
6
6
  import { TrajservLayer } from 'mobility-toolbox-js/ol';
7
7
  import FollowButton from '.';
@@ -1 +1 @@
1
- {"version":3,"file":"FollowButton.test.js","sources":["../../../src/components/FollowButton/FollowButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { MdNavigation } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FollowButton from '.';\n\nconfigure({ adapter: new Adapter() });\n\nconst funcs = {\n onClick: () => {},\n};\n\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let followActive = false;\n const setFollowActive = () => {\n followActive = !followActive;\n };\n const bt = shallow(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={followActive}\n onClick={(active) => {\n return setFollowActive(active);\n }}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n\n expect(followActive).toBe(false);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(true);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,KAAK,GAAG;AACd,EAAE,OAAO,WAAE,GAAM,EAAE;AACnB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"FollowButton.test.js","sources":["../../../src/components/FollowButton/FollowButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport { MdNavigation } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FollowButton from '.';\n\nconfigure({ adapter: new Adapter() });\n\nconst funcs = {\n onClick: () => {},\n};\n\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let followActive = false;\n const setFollowActive = () => {\n followActive = !followActive;\n };\n const bt = shallow(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={followActive}\n onClick={(active) => {\n return setFollowActive(active);\n }}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n\n expect(followActive).toBe(false);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(true);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,KAAK,GAAG;AACd,EAAE,OAAO,WAAE,GAAM,EAAE;AACnB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import renderer from 'react-test-renderer';
3
3
  import { configure, mount, shallow } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
 
6
6
  import 'jest-canvas-mock';
7
7
  import Map from 'ol/Map';
@@ -1 +1 @@
1
- {"version":3,"file":"Geolocation.test.js","sources":["../../../src/components/Geolocation/Geolocation.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\n\nimport 'jest-canvas-mock';\nimport Map from 'ol/Map';\nimport View from 'ol/View';\nimport MapEvent from 'ol/MapEvent';\nimport Geolocation from './Geolocation';\n\nconfigure({ adapter: new Adapter() });\n\nconst geolocationBackup = global.navigator.geolocation;\n\nconst mockGeolocation = () => {\n const mock = {\n clearWatch: jest.fn(),\n getCurrentPosition: jest.fn(),\n watchPosition: (onSuccess) => {\n onSuccess({\n coords: {\n latitude: 47.9913611,\n longitude: 7.84868,\n accuracy: 55,\n },\n timestamp: 1552660077044,\n });\n },\n };\n\n global.navigator.geolocation = mock;\n};\n\nconst mockMissingGeolocation = () => {\n delete global.navigator.geolocation;\n};\n\nconst restoreGeolocation = () => {\n global.navigator.geolocation = geolocationBackup;\n};\n\nclass CallbackHandler {\n static onError() {}\n\n static onSuccess() {}\n\n static onActivate() {}\n\n static onDeactivate() {}\n}\n\ndescribe('Geolocation', () => {\n let map;\n\n beforeEach(() => {\n const target = document.createElement('div');\n const { style } = target;\n style.position = 'absolute';\n style.left = '-1000px';\n style.top = '-1000px';\n style.width = '100px';\n style.height = '100px';\n document.body.appendChild(target);\n\n map = new Map({\n target,\n view: new View({\n center: [0, 0],\n resolutions: [1],\n zoom: 0,\n }),\n });\n map.renderSync();\n });\n\n afterEach(() => {\n const target = map.getTarget();\n map.setTarget(null);\n if (target && target.parentNode) {\n target.parentNode.removeChild(target);\n }\n map.dispose();\n });\n\n describe('should match snapshot', () => {\n test('minimum props', () => {\n const component = renderer.create(<Geolocation map={map} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with title', () => {\n const component = renderer.create(\n <Geolocation map={map} title=\"Lokalisieren\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with class name', () => {\n const component = renderer.create(\n <Geolocation map={map} className=\"my-class-name\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n test('should use children', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map}>test</Geolocation>);\n\n const text = wrapper.find('.rs-geolocation').first().text();\n\n expect(text).toBe('test');\n\n restoreGeolocation();\n });\n\n describe('button classes', () => {\n test('class should be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(basic.className).toBe('rs-geolocation rs-active');\n\n restoreGeolocation();\n });\n\n test('class should not be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper\n .find('.rs-geolocation')\n .first()\n .simulate('click')\n .simulate('click');\n\n expect(basic.className).toBe('rs-geolocation ');\n\n restoreGeolocation();\n });\n });\n\n test(`highlight on first toggle`, () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} />);\n const instance = component.instance();\n const spy = jest.spyOn(instance, 'highlight');\n instance.toggle();\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`success/activate/deactivate callback functions should be called`, () => {\n mockGeolocation();\n const spyOnSuccess = jest.spyOn(CallbackHandler, 'onSuccess');\n const spyOnActivate = jest.spyOn(CallbackHandler, 'onActivate');\n const spyOnDeactivate = jest.spyOn(CallbackHandler, 'onDeactivate');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onSuccess={() => {\n return CallbackHandler.onSuccess();\n }}\n onActivate={() => {\n return CallbackHandler.onActivate();\n }}\n onDeactivate={() => {\n return CallbackHandler.onDeactivate();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnActivate).toHaveBeenCalled();\n expect(spyOnSuccess).toHaveBeenCalled();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnDeactivate).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`error function should be called`, () => {\n mockMissingGeolocation();\n\n const spy = jest.spyOn(CallbackHandler, 'onError');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onError={() => {\n return CallbackHandler.onError();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n describe('map centering', () => {\n test('centers map', () => {\n mockGeolocation();\n\n const center1 = [742952.8821531708, 6330118.608483334];\n map.getView().setCenter(center1);\n\n const component = shallow(<Geolocation map={map} />);\n component.instance().toggle();\n\n const center2 = map.getView().getCenter();\n expect(center1).not.toEqual(center2);\n\n restoreGeolocation();\n });\n\n test('sets isRecenteringToPosition=false after pointerdrag event with the noCenterAfterDrag prop', () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} noCenterAfterDrag />);\n component.instance().toggle();\n\n expect(component.instance().isRecenteringToPosition).toEqual(true);\n\n map.dispatchEvent(new MapEvent('pointerdrag', map));\n expect(component.instance().isRecenteringToPosition).toEqual(false);\n\n restoreGeolocation();\n });\n });\n\n test('custom style function', () => {\n mockGeolocation();\n\n const styleFunc = jest.fn();\n\n const component = shallow(\n <Geolocation map={map} colorOrStyleFunc={styleFunc} />,\n );\n const instance = component.instance();\n instance.toggle();\n const style = instance.layer.getSource().getFeatures()[0].getStyle();\n\n expect(style).toBe(styleFunc);\n\n restoreGeolocation();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"Geolocation.test.js","sources":["../../../src/components/Geolocation/Geolocation.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount, shallow } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\n\nimport 'jest-canvas-mock';\nimport Map from 'ol/Map';\nimport View from 'ol/View';\nimport MapEvent from 'ol/MapEvent';\nimport Geolocation from './Geolocation';\n\nconfigure({ adapter: new Adapter() });\n\nconst geolocationBackup = global.navigator.geolocation;\n\nconst mockGeolocation = () => {\n const mock = {\n clearWatch: jest.fn(),\n getCurrentPosition: jest.fn(),\n watchPosition: (onSuccess) => {\n onSuccess({\n coords: {\n latitude: 47.9913611,\n longitude: 7.84868,\n accuracy: 55,\n },\n timestamp: 1552660077044,\n });\n },\n };\n\n global.navigator.geolocation = mock;\n};\n\nconst mockMissingGeolocation = () => {\n delete global.navigator.geolocation;\n};\n\nconst restoreGeolocation = () => {\n global.navigator.geolocation = geolocationBackup;\n};\n\nclass CallbackHandler {\n static onError() {}\n\n static onSuccess() {}\n\n static onActivate() {}\n\n static onDeactivate() {}\n}\n\ndescribe('Geolocation', () => {\n let map;\n\n beforeEach(() => {\n const target = document.createElement('div');\n const { style } = target;\n style.position = 'absolute';\n style.left = '-1000px';\n style.top = '-1000px';\n style.width = '100px';\n style.height = '100px';\n document.body.appendChild(target);\n\n map = new Map({\n target,\n view: new View({\n center: [0, 0],\n resolutions: [1],\n zoom: 0,\n }),\n });\n map.renderSync();\n });\n\n afterEach(() => {\n const target = map.getTarget();\n map.setTarget(null);\n if (target && target.parentNode) {\n target.parentNode.removeChild(target);\n }\n map.dispose();\n });\n\n describe('should match snapshot', () => {\n test('minimum props', () => {\n const component = renderer.create(<Geolocation map={map} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with title', () => {\n const component = renderer.create(\n <Geolocation map={map} title=\"Lokalisieren\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('with class name', () => {\n const component = renderer.create(\n <Geolocation map={map} className=\"my-class-name\" />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n });\n\n test('should use children', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map}>test</Geolocation>);\n\n const text = wrapper.find('.rs-geolocation').first().text();\n\n expect(text).toBe('test');\n\n restoreGeolocation();\n });\n\n describe('button classes', () => {\n test('class should be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(basic.className).toBe('rs-geolocation rs-active');\n\n restoreGeolocation();\n });\n\n test('class should not be active', () => {\n mockGeolocation();\n\n const wrapper = mount(<Geolocation map={map} />);\n const basic = wrapper.getDOMNode();\n\n wrapper\n .find('.rs-geolocation')\n .first()\n .simulate('click')\n .simulate('click');\n\n expect(basic.className).toBe('rs-geolocation ');\n\n restoreGeolocation();\n });\n });\n\n test(`highlight on first toggle`, () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} />);\n const instance = component.instance();\n const spy = jest.spyOn(instance, 'highlight');\n instance.toggle();\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`success/activate/deactivate callback functions should be called`, () => {\n mockGeolocation();\n const spyOnSuccess = jest.spyOn(CallbackHandler, 'onSuccess');\n const spyOnActivate = jest.spyOn(CallbackHandler, 'onActivate');\n const spyOnDeactivate = jest.spyOn(CallbackHandler, 'onDeactivate');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onSuccess={() => {\n return CallbackHandler.onSuccess();\n }}\n onActivate={() => {\n return CallbackHandler.onActivate();\n }}\n onDeactivate={() => {\n return CallbackHandler.onDeactivate();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnActivate).toHaveBeenCalled();\n expect(spyOnSuccess).toHaveBeenCalled();\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spyOnDeactivate).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n test(`error function should be called`, () => {\n mockMissingGeolocation();\n\n const spy = jest.spyOn(CallbackHandler, 'onError');\n\n const wrapper = mount(\n <Geolocation\n map={map}\n onError={() => {\n return CallbackHandler.onError();\n }}\n />,\n );\n\n wrapper.find('.rs-geolocation').first().simulate('click');\n\n expect(spy).toHaveBeenCalled();\n\n restoreGeolocation();\n });\n\n describe('map centering', () => {\n test('centers map', () => {\n mockGeolocation();\n\n const center1 = [742952.8821531708, 6330118.608483334];\n map.getView().setCenter(center1);\n\n const component = shallow(<Geolocation map={map} />);\n component.instance().toggle();\n\n const center2 = map.getView().getCenter();\n expect(center1).not.toEqual(center2);\n\n restoreGeolocation();\n });\n\n test('sets isRecenteringToPosition=false after pointerdrag event with the noCenterAfterDrag prop', () => {\n mockGeolocation();\n\n const component = shallow(<Geolocation map={map} noCenterAfterDrag />);\n component.instance().toggle();\n\n expect(component.instance().isRecenteringToPosition).toEqual(true);\n\n map.dispatchEvent(new MapEvent('pointerdrag', map));\n expect(component.instance().isRecenteringToPosition).toEqual(false);\n\n restoreGeolocation();\n });\n });\n\n test('custom style function', () => {\n mockGeolocation();\n\n const styleFunc = jest.fn();\n\n const component = shallow(\n <Geolocation map={map} colorOrStyleFunc={styleFunc} />,\n );\n const instance = component.instance();\n instance.toggle();\n const style = instance.layer.getSource().getFeatures()[0].getStyle();\n\n expect(style).toBe(styleFunc);\n\n restoreGeolocation();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -67,6 +67,16 @@ var propTypes = {
67
67
  */
68
68
  renderAfterItem: PropTypes.func,
69
69
 
70
+ /**
71
+ * Custom function to render custom content after the list of children of an item.
72
+ *
73
+ * @param {object} item The item to render.
74
+ * @param {LayerTree} comp The LayerTree component.
75
+ *
76
+ * @return {node} A jsx node.
77
+ */
78
+ renderLabel: PropTypes.func,
79
+
70
80
  /**
71
81
  * Object holding title for the layer tree's buttons.
72
82
  */
@@ -117,6 +127,11 @@ var defaultProps = {
117
127
  renderItemContent: null,
118
128
  renderBeforeItem: null,
119
129
  renderAfterItem: null,
130
+ renderLabel: function (layer, layerComp) {
131
+ var ref = layerComp.props;
132
+ var t = ref.t;
133
+ return t(layer.name);
134
+ },
120
135
  titles: {
121
136
  layerShow: 'Show layer',
122
137
  layerHide: 'Hide layer',
@@ -348,6 +363,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
348
363
  var t = ref.t;
349
364
  var titles = ref.titles;
350
365
  var isItemHidden = ref.isItemHidden;
366
+ var renderLabel = ref.renderLabel;
351
367
  var ref$1 = this.state;
352
368
  var expandedLayers = ref$1.expandedLayers;
353
369
  var onInputClick = function () {
@@ -364,7 +380,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
364
380
  return (
365
381
  React.createElement( 'div', {
366
382
  role: "button", tabIndex: 0, className: "rs-layer-tree-toggle", title: title, 'aria-expanded': expandedLayers.includes(layer), 'aria-label': title, onClick: onInputClick, onKeyPress: onInputClick },
367
- React.createElement( 'div', null, t(layer.name) ),
383
+ React.createElement( 'div', null, renderLabel(layer, this) ),
368
384
  this.renderArrow(layer)
369
385
  )
370
386
  );