diff --git a/tests/unit/specs/components/attributeTable/AttributeTableWin.spec.js b/tests/unit/specs/components/attributeTable/AttributeTableWin.spec.js index b37e59dd..0d727df4 100644 --- a/tests/unit/specs/components/attributeTable/AttributeTableWin.spec.js +++ b/tests/unit/specs/components/attributeTable/AttributeTableWin.spec.js @@ -36,10 +36,10 @@ describe('attributeTable/AttributeTableWin.vue', () => { }); it('has correct default data', () => { - expect(vm.layers).to.be.an('array'); - expect(vm.layers).to.have.lengthOf(0); - expect(vm.displayedLayers).to.be.an('array'); - expect(vm.displayedLayers).to.have.lengthOf(0); + // expect(vm.layers).to.be.an('array'); + // expect(vm.layers).to.have.lengthOf(0); + // expect(vm.displayedLayers).to.be.an('array'); + // expect(vm.displayedLayers).to.have.lengthOf(0); expect(vm.selLayerLid).to.be.null; }); @@ -48,18 +48,18 @@ describe('attributeTable/AttributeTableWin.vue', () => { }); }); - describe('methods', () => { - beforeEach(() => { - comp = createWrapper(); - vm = comp.vm; - }); + // describe('methods', () => { + // beforeEach(() => { + // comp = createWrapper(); + // vm = comp.vm; + // }); - it('are implemented', () => { - expect(vm.onMapBound).to.be.a('function'); - }); + // it('are implemented', () => { + // expect(vm.onMapBound).to.be.a('function'); + // }); - afterEach(() => { - comp.unmount(); - }); - }); + // afterEach(() => { + // comp.unmount(); + // }); + // }); }); diff --git a/tests/unit/specs/components/bglayerswitcher/BgLayerList.spec.js b/tests/unit/specs/components/bglayerswitcher/BgLayerList.spec.js index 7686f11a..fcd880a1 100644 --- a/tests/unit/specs/components/bglayerswitcher/BgLayerList.spec.js +++ b/tests/unit/specs/components/bglayerswitcher/BgLayerList.spec.js @@ -1,6 +1,6 @@ -// import { reactive, toRaw } from 'vue'; import { toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import BgLayerList from '@/components/bglayerswitcher/BgLayerList'; import OlMap from 'ol/Map'; import VectorLayer from 'ol/layer/Vector'; @@ -21,6 +21,7 @@ function createWrapper (props = moduleProps) { describe('bglayerswitcher/BgLayerList.vue', () => { let comp; let vm; + let map; it('is defined', () => { expect(BgLayerList).to.not.be.an('undefined'); @@ -43,23 +44,6 @@ describe('bglayerswitcher/BgLayerList.vue', () => { }); }); - describe('data', () => { - beforeEach(() => { - comp = createWrapper(); - vm = comp.vm; - }); - - it('has correct default data', () => { - expect(typeof BgLayerList.data).to.equal('function'); - expect(vm.layers).to.be.an('array'); - expect(vm.layers.length).to.eql(0); - }); - - afterEach(() => { - comp.unmount(); - }); - }); - describe('computed properties', () => { beforeEach(() => { comp = createWrapper(); @@ -79,12 +63,12 @@ describe('bglayerswitcher/BgLayerList.vue', () => { isBaseLayer: false, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn, layerOut] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(vm.displayedLayers.length).to.equal(1); const li = vm.displayedLayers[0]; @@ -109,9 +93,9 @@ describe('bglayerswitcher/BgLayerList.vue', () => { const map = new OlMap({ layers: [layerIn] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(vm.displayedLayers.length).to.equal(1); @@ -121,6 +105,8 @@ describe('bglayerswitcher/BgLayerList.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); @@ -132,7 +118,7 @@ describe('bglayerswitcher/BgLayerList.vue', () => { }); it('are implemented', () => { - expect(typeof vm.onMapBound).to.equal('function'); + // expect(typeof vm.onMapBound).to.equal('function'); expect(typeof vm.onSelectLayer).to.equal('function'); }); @@ -149,12 +135,12 @@ describe('bglayerswitcher/BgLayerList.vue', () => { isBaseLayer: true, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn, layerOut] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(layerIn.getVisible()).to.equal(true); expect(layerOut.getVisible()).to.equal(false); @@ -168,6 +154,8 @@ describe('bglayerswitcher/BgLayerList.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/bglayerswitcher/BgLayerSwitcher.spec.js b/tests/unit/specs/components/bglayerswitcher/BgLayerSwitcher.spec.js index 9e0fd936..21a9e70f 100644 --- a/tests/unit/specs/components/bglayerswitcher/BgLayerSwitcher.spec.js +++ b/tests/unit/specs/components/bglayerswitcher/BgLayerSwitcher.spec.js @@ -1,5 +1,6 @@ import { nextTick } from 'vue'; import { mount, shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import BgLayerSwitcher from '@/components/bglayerswitcher/BgLayerSwitcher'; import OlMap from 'ol/Map'; import VectorLayer from 'ol/layer/Vector'; @@ -16,6 +17,7 @@ function createWrapper (stubChildrenComponents = true) { describe('bglayerswitcher/BgLayerSwitcher.vue', () => { let comp; let vm; + let map; it('is defined', () => { expect(BgLayerSwitcher).to.not.be.an('undefined'); @@ -46,8 +48,8 @@ describe('bglayerswitcher/BgLayerSwitcher.vue', () => { it('has correct default data', () => { expect(vm.open).to.equal(false); - expect(vm.layers).to.be.an('array'); - expect(vm.layers.length).to.eql(0); + // expect(vm.layers).to.be.an('array'); + // expect(vm.layers.length).to.eql(0); }); afterEach(() => { @@ -74,12 +76,12 @@ describe('bglayerswitcher/BgLayerSwitcher.vue', () => { isBaseLayer: true, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(vm.show).to.equal(false); @@ -89,6 +91,8 @@ describe('bglayerswitcher/BgLayerSwitcher.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); @@ -120,12 +124,12 @@ describe('bglayerswitcher/BgLayerSwitcher.vue', () => { isBaseLayer: true, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn, layerOut] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); await nextTick() expect(vm.open).to.equal(false); @@ -137,6 +141,8 @@ describe('bglayerswitcher/BgLayerSwitcher.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/geocoder/Geocoder.spec.js b/tests/unit/specs/components/geocoder/Geocoder.spec.js index 87c0972f..c4811447 100644 --- a/tests/unit/specs/components/geocoder/Geocoder.spec.js +++ b/tests/unit/specs/components/geocoder/Geocoder.spec.js @@ -1,4 +1,5 @@ import { mount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import Geocoder from '@/components/geocoder/Geocoder'; import { OpenStreetMap } from '@/components/geocoder/providers/osm'; import { Photon } from '@/components/geocoder/providers/photon'; @@ -103,6 +104,7 @@ describe('geocoder/Geocoder.vue', () => { }); describe('methods - search', () => { + let map; let axiosMock; let onQueryResultsSpy; let onQueryErrorSpy; @@ -220,7 +222,9 @@ describe('geocoder/Geocoder.vue', () => { it('selected item watcher assigns result and zooms/centers Map at result', async () => { applyAxiosMock(); - vm.map = new OlMap(); + // vm.map = new OlMap(); + map = new OlMap(); + bindMap(map); const comboBox = comp.findComponent({ name: 'v-combobox' }); comboBox.vm.$emit('update:search', queryString); @@ -261,7 +265,10 @@ describe('geocoder/Geocoder.vue', () => { expect(onQueryErrorSpy).to.have.been.called; }); - afterEach(function () { + afterEach(() => { + unbindMap(); + map = undefined; + if (axiosMock) { axiosMock.restore(); } diff --git a/tests/unit/specs/components/infoclick/InfoClickWin.spec.js b/tests/unit/specs/components/infoclick/InfoClickWin.spec.js index a19e3c81..96f1fdad 100644 --- a/tests/unit/specs/components/infoclick/InfoClickWin.spec.js +++ b/tests/unit/specs/components/infoclick/InfoClickWin.spec.js @@ -1,5 +1,6 @@ import { toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import InfoClickWin from '@/components/infoclick/InfoClickWin'; import OlMap from 'ol/Map'; import Feature from 'ol/Feature'; @@ -20,9 +21,9 @@ describe('infoclick/InfoClickWin.vue', () => { expect(typeof InfoClickWin).to.not.equal('undefined'); }); - it('has a created hook', () => { - expect(typeof InfoClickWin.created).to.equal('function'); - }); + // it('has a created hook', () => { + // expect(typeof InfoClickWin.created).to.equal('function'); + // }); describe('props', () => { beforeEach(() => { @@ -52,6 +53,8 @@ describe('infoclick/InfoClickWin.vue', () => { }); describe('methods', () => { + let map; + beforeEach(() => { comp = createWrapper(); vm = comp.vm; @@ -66,8 +69,9 @@ describe('infoclick/InfoClickWin.vue', () => { pixel: [0, 0], coordinate: [8, 8] }; - const map = new OlMap(); - vm.map = map; + map = new OlMap(); + bindMap(map); + // vm.map = map; vm.onMapClick(mockEvt); expect(vm.attributeData).to.equal(null); expect(toRaw(vm.coordsData.coordinate)).to.equal(mockEvt.coordinate); @@ -88,13 +92,14 @@ describe('infoclick/InfoClickWin.vue', () => { features: [feat] }) }); - const map = new OlMap({ + map = new OlMap({ layers: [layer] }); map.forEachFeatureAtPixel = () => { vm.features.push([feat, layer]); }; - vm.map = map; + // vm.map = map; + bindMap(map); vm.onMapClick(mockEvt); expect(vm.attributeData.foo).to.equal('bar'); expect(toRaw(vm.coordsData.coordinate)).to.equal(mockEvt.coordinate); @@ -102,7 +107,9 @@ describe('infoclick/InfoClickWin.vue', () => { }); it('show resets data when module is closed', () => { - vm.map = new OlMap({}); + // vm.map = new OlMap({}); + map = new OlMap(); + bindMap(map); vm.show(true); vm.show(false); expect(vm.attributeData).to.equal(null); @@ -110,8 +117,9 @@ describe('infoclick/InfoClickWin.vue', () => { }); it('show registers map click when module is opened', () => { - const map = new OlMap(); - vm.map = map; + map = new OlMap(); + bindMap(map); + // vm.map = map; const onSPy = sinon.replace(map, 'on', sinon.fake(map.on)); vm.show(false); @@ -121,8 +129,9 @@ describe('infoclick/InfoClickWin.vue', () => { }); it('show unregisters map click when module is closed', () => { - const map = new OlMap(); - vm.map = map; + map = new OlMap(); + bindMap(map); + // vm.map = map; const unSPy = sinon.replace(map, 'un', sinon.fake(map.un)); vm.show(true); @@ -130,5 +139,11 @@ describe('infoclick/InfoClickWin.vue', () => { expect(unSPy).to.have.been.calledOnceWithExactly('singleclick', vm.onMapClick); }); + + afterEach(() => { + unbindMap(); + map = undefined; + comp.unmount(); + }); }); }); diff --git a/tests/unit/specs/components/layerlist/LayerList.spec.js b/tests/unit/specs/components/layerlist/LayerList.spec.js index 42dce865..2889ad82 100644 --- a/tests/unit/specs/components/layerlist/LayerList.spec.js +++ b/tests/unit/specs/components/layerlist/LayerList.spec.js @@ -1,6 +1,6 @@ -// import { reactive, toRaw } from 'vue'; import { toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import LayerList from '@/components/layerlist/LayerList'; import OlMap from 'ol/Map'; import VectorLayer from 'ol/layer/Vector'; @@ -25,24 +25,26 @@ describe('layerlist/LayerList.vue', () => { expect(LayerList).to.not.be.an('undefined'); }); - describe('data', () => { - beforeEach(() => { - comp = createWrapper(); - vm = comp.vm; - }); + // describe('data', () => { + // beforeEach(() => { + // comp = createWrapper(); + // vm = comp.vm; + // }); - it('has correct default data', () => { - expect(typeof LayerList.data).to.equal('function'); - expect(vm.layers).to.be.an('array'); - expect(vm.layers.length).to.eql(0); - }); + // it('has correct default data', () => { + // expect(typeof LayerList.data).to.equal('function'); + // expect(vm.layers).to.be.an('array'); + // expect(vm.layers.length).to.eql(0); + // }); - afterEach(() => { - comp.unmount(); - }); - }); + // afterEach(() => { + // comp.unmount(); + // }); + // }); describe('computed properties', () => { + let map; + beforeEach(() => { comp = createWrapper(); vm = comp.vm; @@ -61,12 +63,12 @@ describe('layerlist/LayerList.vue', () => { displayInLayerList: false, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn, layerOut] }); - // map.setLayers(reactive(map.getLayers())) - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(vm.displayedLayers.length).to.equal(1); const li = vm.displayedLayers[0]; @@ -79,9 +81,9 @@ describe('layerlist/LayerList.vue', () => { const map = new OlMap({ layers: [layerIn] }); - // map.setLayers(reactive(map.getLayers())); - vm.map = map; - vm.onMapBound(); + // vm.map = map; + // vm.onMapBound(); + bindMap(map); expect(vm.displayedLayers.length).to.equal(1); @@ -91,18 +93,20 @@ describe('layerlist/LayerList.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); - describe('methods', () => { - beforeEach(() => { - comp = createWrapper(); - vm = comp.vm; - }); + // describe('methods', () => { + // beforeEach(() => { + // comp = createWrapper(); + // vm = comp.vm; + // }); - it('are implemented', () => { - expect(typeof vm.onMapBound).to.equal('function'); - }); - }); + // it('are implemented', () => { + // expect(typeof vm.onMapBound).to.equal('function'); + // }); + // }); }); diff --git a/tests/unit/specs/components/maprecorder/MapRecorderWin.spec.js b/tests/unit/specs/components/maprecorder/MapRecorderWin.spec.js index 1b9233dd..6ea27995 100644 --- a/tests/unit/specs/components/maprecorder/MapRecorderWin.spec.js +++ b/tests/unit/specs/components/maprecorder/MapRecorderWin.spec.js @@ -1,4 +1,5 @@ import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import MapRecorderWin from '@/components/maprecorder/MapRecorderWin'; import OlMap from 'ol/Map'; import VectorLayer from 'ol/layer/Vector'; @@ -59,6 +60,8 @@ describe('maprecorder/MapRecorderWin.vue', () => { }); describe('methods', () => { + let map; + beforeEach(() => { comp = createWrapper(); vm = comp.vm; @@ -77,11 +80,12 @@ describe('maprecorder/MapRecorderWin.vue', () => { visible: true, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layer] }); map.setSize([1024, 768]); - vm.map = map; + bindMap(map); + // vm.map = map; vm.startRecording(); expect(vm.mapCanvas).not.to.be.null; @@ -103,6 +107,8 @@ describe('maprecorder/MapRecorderWin.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/maxextentbutton/ZoomToMaxExtentButton.spec.js b/tests/unit/specs/components/maxextentbutton/ZoomToMaxExtentButton.spec.js index 171b58a3..9e1ecac5 100644 --- a/tests/unit/specs/components/maxextentbutton/ZoomToMaxExtentButton.spec.js +++ b/tests/unit/specs/components/maxextentbutton/ZoomToMaxExtentButton.spec.js @@ -1,4 +1,5 @@ import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import ZoomToMaxExtentButton from '@/components/maxextentbutton/ZoomToMaxExtentButton'; import OlMap from 'ol/Map'; import OlView from 'ol/View'; @@ -21,6 +22,7 @@ function createWrapper ($appConfig = {}) { describe('maxextentbutton/ZoomToMaxExtentButton.vue', () => { let comp; let vm; + let map; beforeEach(() => { comp = createWrapper(appConfig); @@ -33,12 +35,13 @@ describe('maxextentbutton/ZoomToMaxExtentButton.vue', () => { }); it('onClick sets correct center and zoom', () => { - vm.map = new OlMap({ + map = new OlMap({ view: new OlView({ center: [1, 1], zoom: 1 }) }); + bindMap(map); // Remarks: This works synchronously, if no animation is used. vm.onClick(); @@ -49,6 +52,8 @@ describe('maxextentbutton/ZoomToMaxExtentButton.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/measuretool/MeasureResult.spec.js b/tests/unit/specs/components/measuretool/MeasureResult.spec.js index 5c2d76ee..b336e309 100644 --- a/tests/unit/specs/components/measuretool/MeasureResult.spec.js +++ b/tests/unit/specs/components/measuretool/MeasureResult.spec.js @@ -1,6 +1,7 @@ import { shallowMount } from '@vue/test-utils'; import { createI18n } from 'vue-i18n'; import i18nMessages from '@/locales/en.json'; +import { bindMap, unbindMap } from '@/composables/Map'; import MeasureResult from '@/components/measuretool/MeasureResult'; import PolygonGeom from 'ol/geom/Polygon'; import LineStringGeom from 'ol/geom/LineString'; @@ -25,7 +26,7 @@ function createWrapper (assignMap = false) { warnHtmlMessage: false }) - return shallowMount(MeasureResult, { + const wrapper = shallowMount(MeasureResult, { data () { return { map @@ -40,6 +41,11 @@ function createWrapper (assignMap = false) { plugins: [i18nInstance] } }); + + if (map) { + bindMap(map) + } + return wrapper; } describe('measuretool/MeasureResult.vue', () => { @@ -117,6 +123,7 @@ describe('measuretool/MeasureResult.vue', () => { }); afterEach(() => { + unbindMap(); comp.unmount(); }); }); @@ -155,6 +162,7 @@ describe('measuretool/MeasureResult.vue', () => { }); afterEach(() => { + unbindMap(); comp.unmount(); }); }); diff --git a/tests/unit/specs/components/measuretool/MeasureWin.spec.js b/tests/unit/specs/components/measuretool/MeasureWin.spec.js index f2d7f4f2..24144939 100644 --- a/tests/unit/specs/components/measuretool/MeasureWin.spec.js +++ b/tests/unit/specs/components/measuretool/MeasureWin.spec.js @@ -1,5 +1,6 @@ import { nextTick, toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import MeasureWin from '@/components/measuretool/MeasureWin'; import OlMap from 'ol/Map'; import LineStringGeom from 'ol/geom/LineString'; @@ -11,6 +12,7 @@ function createWrapper () { describe('measuretool/MeasureWin.vue', () => { let comp; let vm; + let map; it('is defined', () => { expect(typeof MeasureWin).to.not.equal('undefined'); @@ -56,8 +58,10 @@ describe('measuretool/MeasureWin.vue', () => { }); it('watches measureType resets old data', async () => { - vm.map = new OlMap({}); - vm.onMapBound(); + // vm.map = new OlMap({}); + // vm.onMapBound(); + map = new OlMap({}); + bindMap(map); vm.measureType = 'area'; await nextTick(); @@ -65,6 +69,8 @@ describe('measuretool/MeasureWin.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); @@ -75,14 +81,17 @@ describe('measuretool/MeasureWin.vue', () => { vm = comp.vm; }); - it('show resets map interaction when module is closed', () => { + it('show resets map interaction when module is closed', async () => { let cnt = 0; const mockFn = () => { cnt++; }; - vm.map = new OlMap({}); - vm.onMapBound(); + // vm.map = new OlMap({}); + // vm.onMapBound(); + map = new OlMap({}); + bindMap(map); + await nextTick(); vm.olMapCtrl.removeInteraction = mockFn; vm.show(true); @@ -90,13 +99,17 @@ describe('measuretool/MeasureWin.vue', () => { expect(cnt).to.equal(1); }); - it('show registers map interaction when module is opened', () => { + it('show registers map interaction when module is opened', async () => { let cnt = 0; const mockFn = () => { cnt++; }; - vm.map = new OlMap({}); - vm.onMapBound(); + + // vm.map = new OlMap({}); + // vm.onMapBound(); + map = new OlMap({}); + bindMap(map); + await nextTick(); vm.olMapCtrl.addInteraction = mockFn; vm.show(false); @@ -121,6 +134,8 @@ describe('measuretool/MeasureWin.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/modulecore/MapOverlay.spec.js b/tests/unit/specs/components/modulecore/MapOverlay.spec.js index 078697a9..997008f1 100644 --- a/tests/unit/specs/components/modulecore/MapOverlay.spec.js +++ b/tests/unit/specs/components/modulecore/MapOverlay.spec.js @@ -1,5 +1,6 @@ import { nextTick, toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import MapOverlay from '@/components/modulecore/MapOverlay'; import { WguEventBus } from '@/WguEventBus'; import OlMap from 'ol/Map'; @@ -28,6 +29,7 @@ function createWrapper (props = overlayProps) { describe('modulecore/MapOverlay.vue', () => { let comp; let vm; + let map; it('is defined', () => { expect(MapOverlay).to.not.be.an('undefined'); @@ -70,7 +72,7 @@ describe('modulecore/MapOverlay.vue', () => { it('has correct default data', () => { expect(vm.show).to.equal(true); expect(vm.position).to.be.an('undefined'); - expect(vm.olOverlay).to.equal(null); + expect(vm.olOverlay).to.be.an('undefined'); expect(toRaw(vm.contentData)).to.deep.equal({}); }); @@ -83,8 +85,10 @@ describe('modulecore/MapOverlay.vue', () => { beforeEach(() => { comp = createWrapper(); vm = comp.vm; - vm.map = new OlMap({}); - vm.onMapBound(); + map = new OlMap({}); + bindMap(map); + // vm.map = new OlMap({}); + // vm.onMapBound(); }); it('createOlOverlay adds an OL overlay to map', () => { @@ -100,16 +104,21 @@ describe('modulecore/MapOverlay.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); describe('watchers', () => { - beforeEach(() => { + beforeEach(async () => { comp = createWrapper(); vm = comp.vm; - vm.map = new OlMap({}); - vm.onMapBound(); + map = new OlMap({}); + bindMap(map); + await nextTick(); + // vm.map = new OlMap({}); + // vm.onMapBound(); }); it('watches show', async () => { @@ -132,16 +141,21 @@ describe('modulecore/MapOverlay.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); describe('events', () => { - beforeEach(() => { + beforeEach(async () => { comp = createWrapper(); vm = comp.vm; - vm.map = new OlMap({}); - vm.onMapBound(); + map = new OlMap({}); + bindMap(map); + await nextTick(); + // vm.map = new OlMap({}); + // vm.onMapBound(); }); it('update-overlay event creates, positions and populates overlay', async () => { @@ -173,6 +187,8 @@ describe('modulecore/MapOverlay.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); }); diff --git a/tests/unit/specs/components/overviewmap/OverviewMapPanel.spec.js b/tests/unit/specs/components/overviewmap/OverviewMapPanel.spec.js index 7628100e..1f9b1231 100644 --- a/tests/unit/specs/components/overviewmap/OverviewMapPanel.spec.js +++ b/tests/unit/specs/components/overviewmap/OverviewMapPanel.spec.js @@ -1,6 +1,6 @@ -// import { reactive, toRaw } from 'vue'; import { toRaw } from 'vue'; import { shallowMount } from '@vue/test-utils'; +import { bindMap, unbindMap } from '@/composables/Map'; import OverviewMapPanel from '@/components/overviewmap/OverviewMapPanel'; import OlMap from 'ol/Map'; import VectorLayer from 'ol/layer/Vector'; @@ -47,24 +47,26 @@ describe('overviewmap/OverviewMapPanel.vue', () => { }); }); - describe('data', () => { - beforeEach(() => { - comp = createWrapper(); - vm = comp.vm; - }); + // describe('data', () => { + // beforeEach(() => { + // comp = createWrapper(); + // vm = comp.vm; + // }); - it('has correct default data', () => { - expect(typeof OverviewMapPanel.data).to.equal('function'); - expect(vm.layers).to.be.an('array'); - expect(vm.layers.length).to.eql(0); - }); + // it('has correct default data', () => { + // expect(typeof OverviewMapPanel.data).to.equal('function'); + // expect(vm.layers).to.be.an('array'); + // expect(vm.layers.length).to.eql(0); + // }); - afterEach(() => { - comp.unmount(); - }); - }); + // afterEach(() => { + // comp.unmount(); + // }); + // }); describe('computed properties', () => { + let map; + beforeEach(() => { comp = createWrapper(); vm = comp.vm; @@ -83,12 +85,12 @@ describe('overviewmap/OverviewMapPanel.vue', () => { isBaseLayer: false, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn, layerOut] }); - // map.setLayers(reactive(map.getLayers())); - vm.map = map; - vm.onMapBound(); + bindMap(map); + // vm.map = map; + // vm.onMapBound(); expect(toRaw(vm.selectedBgLayer)).to.equal(layerIn); }); @@ -106,12 +108,12 @@ describe('overviewmap/OverviewMapPanel.vue', () => { isBaseLayer: true, source: new VectorSource() }); - const map = new OlMap({ + map = new OlMap({ layers: [layerIn] }); - // map.setLayers(reactive(map.getLayers())); - vm.map = map; - vm.onMapBound(); + bindMap(map); + // vm.map = map; + // vm.onMapBound(); expect(toRaw(vm.selectedBgLayer)).to.equal(layerIn); @@ -122,6 +124,8 @@ describe('overviewmap/OverviewMapPanel.vue', () => { }); afterEach(() => { + unbindMap(); + map = undefined; comp.unmount(); }); });