UNPKG

geospatialdraw

Version:
124 lines 4.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var turf = require("@turf/turf"); var ol_1 = require("ol"); var geom_1 = require("ol/geom"); var chai_1 = require("chai"); var point_radius_drawing_control_1 = require("./point-radius-drawing-control"); var mock_drawing_context_1 = require("./test/mock-drawing-context"); describe('PointRadiusDrawingControl', function () { var makeCoordinates = function () { return [ [50, 50], // @ts-ignore turf.rhumbDestination([50, 50], 70, 90, { units: 'meters', }).geometry.coordinates, ]; }; var makeFeature = function () { return new ol_1.Feature({ geometry: new geom_1.LineString(makeCoordinates()), color: '#996600', shape: 'Point Radius', buffer: 70, bufferUnit: 'meters', id: '', }); }; var makeGeoJSON = function () { return ({ type: 'Feature', properties: { color: '#996600', shape: 'Point Radius', buffer: 70, bufferUnit: 'meters', id: '', }, geometry: { type: 'Point', coordinates: [50, 50], }, bbox: [50, 50, 50, 50], }); }; var context = new mock_drawing_context_1.default(); var recievedGeo = null; var receiver = function (geoJSON) { recievedGeo = geoJSON; recievedGeo.properties.buffer = Math.round(recievedGeo.properties.buffer); }; var control = new point_radius_drawing_control_1.default(context, receiver); beforeEach(function () { recievedGeo = null; context = new mock_drawing_context_1.default(); control = new point_radius_drawing_control_1.default(context, receiver); }); describe('constructor', function () { it('default', function () { (0, chai_1.expect)(control).to.not.equal(undefined); (0, chai_1.expect)(control).to.not.equal(null); }); }); describe('onCompleteDrawing', function () { it('default', function () { // @ts-ignore control.setGeo(makeGeoJSON()); control.onCompleteDrawing({ feature: makeFeature(), }); var expected = makeGeoJSON(); (0, chai_1.expect)(recievedGeo).to.deep.equal(expected); (0, chai_1.expect)(context.getMethodCalls().updateFeature.length).to.not.equal(0); }); it('startDrawing -> onCompleteDrawing', function () { control.startDrawing(); // @ts-ignore control.setGeo(makeGeoJSON()); control.onCompleteDrawing({ feature: makeFeature(), }); var expected = makeGeoJSON(); (0, chai_1.expect)(recievedGeo).to.deep.equal(expected); }); }); describe('onCompleteModify', function () { it('default', function () { // @ts-ignore control.setGeo(makeGeoJSON()); control.onCompleteModify({ features: { getArray: function () { return [makeFeature()]; }, }, }); var expected = makeGeoJSON(); (0, chai_1.expect)(recievedGeo).to.deep.equal(expected); }); }); describe('setGeo', function () { it('default', function () { // @ts-ignore control.setGeo(makeGeoJSON()); (0, chai_1.expect)(context.getMethodCalls().updateFeature.length).to.equal(1); (0, chai_1.expect)(context.getMethodCalls().removeFeature.length).to.equal(0); (0, chai_1.expect)(control.isDrawing()).to.equal(true); }); }); describe('startDrawing', function () { it('default', function () { control.startDrawing(); (0, chai_1.expect)(context.getMethodCalls().addInteractions.length).to.equal(1); (0, chai_1.expect)(context.getMethodCalls().setEvent.length).to.equal(4); (0, chai_1.expect)(context.getMethodCalls().setDrawInteraction.length).to.equal(1); (0, chai_1.expect)(context.getMethodCalls().updateFeature.length).to.equal(0); (0, chai_1.expect)(context.getMethodCalls().removeFeature.length).to.equal(1); (0, chai_1.expect)(control.isDrawing()).to.equal(true); }); }); describe('cancelDrawing', function () { it('default', function () { control.cancelDrawing(); (0, chai_1.expect)(context.getMethodCalls().removeListeners.length).to.equal(1); (0, chai_1.expect)(context.getMethodCalls().removeInteractions.length).to.equal(1); (0, chai_1.expect)(control.isDrawing()).to.equal(false); }); }); }); //# sourceMappingURL=point-radius-drawing-control.spec.js.map