Skip to content

Commit

Permalink
finish test for layerToggle + some auto formatting + version bump
Browse files Browse the repository at this point in the history
  • Loading branch information
mmnoo committed Apr 24, 2020
1 parent 87532af commit c5eb5d6
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 5,320 deletions.
14 changes: 13 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "leaflet-declarative-layers",
"version": "0.4.1",
"version": "0.5.0",
"description": "",
"private": false,
"scripts": {
Expand Down
109 changes: 58 additions & 51 deletions test/unitAndIntegration/toggleDeclarativeLayers.spec.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import { Mock } from 'ts-mocks';
import * as leaflet from 'leaflet';
import * as dataTypes from '../../src/dataTypes';
import {
DeclarativeLayers,
ILayerReference,
} from '../../src/DeclarativeLayers';
import { Mock } from 'ts-mocks'
import * as leaflet from 'leaflet'
import * as dataTypes from '../../src/dataTypes'
import { DeclarativeLayers, ILayerReference } from '../../src/DeclarativeLayers'
import {
FeatureCollection as geoJsonFeatureCollection,
Feature as geoJsonFeature,
} from '../../node_modules/@types/geojson/index';
} from '../../node_modules/@types/geojson/index'
const geojsonFeatureCollection: geoJsonFeatureCollection = {
type: 'FeatureCollection',
features: [
Expand All @@ -33,7 +30,7 @@ const geojsonFeatureCollection: geoJsonFeatureCollection = {
},
},
],
};
}
const layers: dataTypes.ILayersMetadata = [
{
id: 'testTileLayer1',
Expand All @@ -57,60 +54,70 @@ const layers: dataTypes.ILayersMetadata = [
[40.773941, -74.12544],
],
},
];
]

let map: leaflet.Map;
let MockMap: Mock<leaflet.Map>;
let declarativeLayers: DeclarativeLayers;
let testTileLayer1: leaflet.TileLayer;
let testGeoJsonLayer1: leaflet.GeoJSON;
let testImageOverlay: leaflet.ImageOverlay;
let declarativeLayers: DeclarativeLayers
let testTileLayer1: leaflet.TileLayer
let testGeoJsonLayer1: leaflet.GeoJSON
let testImageOverlay: leaflet.ImageOverlay

const initializateDeclarativeLayers = () => {
declarativeLayers = new DeclarativeLayers(leaflet, map, layers);
const initializateDeclarativeLayers = (mockMap) => {
declarativeLayers = new DeclarativeLayers(leaflet, mockMap, layers)
testTileLayer1 = declarativeLayers.getLayerReferences()
.testTileLayer1 as leaflet.TileLayer;
.testTileLayer1 as leaflet.TileLayer
testGeoJsonLayer1 = declarativeLayers.getLayerReferences()
.testGeoJsonLayer1 as leaflet.GeoJSON;
.testGeoJsonLayer1 as leaflet.GeoJSON
testImageOverlay = declarativeLayers.getLayerReferences()
.testImageOverlay1 as leaflet.ImageOverlay;
};
.testImageOverlay1 as leaflet.ImageOverlay
}
describe('toggling layers on and off with toggleLayer function', () => {
let layersForToggling: dataTypes.ILeafletLayer[];
beforeEach(() => {
initializateDeclarativeLayers();
layersForToggling = [testTileLayer1, testGeoJsonLayer1, testImageOverlay];
});
let layersForToggling: dataTypes.ILeafletLayer[]

xit("toggles layers on", () => {
MockMap = new Mock<leaflet.Map>({
it('toggles layers on', () => {
const MockMap = new Mock<leaflet.Map>({
addLayer: Mock.ANY_FUNC,
removeLayer: Mock.ANY_FUNC,
hasLayer: () => {
console.log("HERE");
return false;
return false
},
});
map = MockMap.Object;
})
const map = MockMap.Object

initializateDeclarativeLayers(map)
layersForToggling = [testTileLayer1, testGeoJsonLayer1, testImageOverlay]
expect(map.addLayer).toHaveBeenCalledTimes(0) // because visibleInitially set to false

layersForToggling.forEach((layer) => {
declarativeLayers.toggleLayer(layer);
});
expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[0]);
// expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[1]);
// expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[2]);
});
xit("toggles layers off", () => {
(MockMap = new Mock<leaflet.Map>({
declarativeLayers.toggleLayer(layer)
})

expect(map.addLayer).toHaveBeenCalledTimes(3)
expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[0])
expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[1])
expect(map.addLayer).toHaveBeenCalledWith(layersForToggling[2])
})
it('foodfsps', () => {
const MockMap = new Mock<leaflet.Map>({
addLayer: Mock.ANY_FUNC,
removeLayer: Mock.ANY_FUNC,
hasLayer: (layer) => true,
})),
(map = MockMap.Object);
hasLayer: () => {
return true // the map pretends the layer exists already (Prob a less fragile way to do this, but I picked this WIP test up after 6 months and just want to get it done)
},
})
const map = MockMap.Object

initializateDeclarativeLayers(map)
layersForToggling = [testTileLayer1, testGeoJsonLayer1, testImageOverlay]
expect(map.removeLayer).toHaveBeenCalledTimes(0)

layersForToggling.forEach((layer) => {
declarativeLayers.toggleLayer(layer);
});
expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[0]);
//expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[1]);
// expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[2]);
});
});
declarativeLayers.toggleLayer(layer)
})

expect(map.removeLayer).toHaveBeenCalledTimes(3)

expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[0])
expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[1])
expect(map.removeLayer).toHaveBeenCalledWith(layersForToggling[2])
})
})
Loading

0 comments on commit c5eb5d6

Please sign in to comment.