geospatialdraw
Version:
Geospatial Map Drawing Library
124 lines • 4.89 kB
JavaScript
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
;