UNPKG

@jmarcelof/leaflet-ng2

Version:
289 lines 12.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var chai_1 = require("chai"); var leaflet_1 = require("leaflet"); var index_1 = require("./index"); var path_directives_spec_1 = require("./path-directives.spec"); var spec_1 = require("./spec"); describe("Circle Directive", function () { var map; var layer; beforeEach(function () { map = new index_1.MapComponent({ nativeElement: document.createElement("div") }, new index_1.LayerGroupProvider(), new index_1.MapProvider()); map._size = leaflet_1.point(100, 100); map._pixelOrigin = leaflet_1.point(50, 50); map._renderer = map._renderer || new leaflet_1.SVG(); layer = new index_1.CircleDirective({ ref: map }, {}); layer.ngAfterContentInit(); }); path_directives_spec_1.createPathTests(index_1.CircleDirective); describe("[(display)]", function () { it("should set DOM container style to display:none when not displaying", function () { layer.display = false; chai_1.expect(layer.getElement().style.display).to.equal("none"); }); it("should reset DOM container style when display is true again", function () { layer.display = false; layer.display = true; chai_1.expect(layer.getElement().style.display).to.not.equal("none"); }); it("should set to false by removing from map", function (done) { layer.displayChange.subscribe(function (val) { chai_1.expect(val).to.equal(false); chai_1.expect(layer.display).to.equal(false); done(); }); map.removeLayer(layer); }); it("should set to true when adding to map again", function (done) { map.removeLayer(layer); layer.displayChange.subscribe(function (val) { chai_1.expect(val).to.equal(true); chai_1.expect(layer.display).to.equal(true); done(); }); map.addLayer(layer); }); }); describe("[(position)]", function () { var TEST_VALUE = leaflet_1.latLng(0, 1); it("should be changed in Leaflet when changing in Angular", function () { layer.position = TEST_VALUE; chai_1.expect(layer._latlng).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", function () { layer.position = TEST_VALUE; chai_1.expect(layer.position).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", function () { layer.setLatLng(TEST_VALUE); chai_1.expect(layer.position).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", function (done) { layer.positionChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.position = TEST_VALUE; }); it("should fire an event when changing in Leaflet", function (done) { layer.positionChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setLatLng(TEST_VALUE); }); it("should fire geoJSON-change event when changing in Angular", function (done) { layer.geoJSONChange.subscribe(function () { return done(); }); layer.position = TEST_VALUE; }); it("should fire geoJSON-change event when changing in Leaflet", function (done) { layer.geoJSONChange.subscribe(function () { return done(); }); layer.setLatLng(TEST_VALUE); }); }); describe("[(lat)]", function () { it("should be changed in Leaflet when changing in Angular", function () { var val = spec_1.randomLat(); layer.lat = val; chai_1.expect(layer.getLatLng().lat).to.equal(val); }); it("should be changed in Angular when changing in Angular", function () { var val = spec_1.randomLat(); layer.lat = val; chai_1.expect(layer.lat).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", function () { var val = spec_1.randomLat(); layer.setLatLng([val, 0]); chai_1.expect(layer.lat).to.equal(val); }); it("should fire an event when changing in Angular", function (done) { var val = spec_1.randomLat(); layer.latChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.lat = val; }); it("should fire an event when changing in Leaflet", function (done) { var val = spec_1.randomLat(); layer.latChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setLatLng([val, 0]); }); }); describe("[(lng)]", function () { it("should be changed in Leaflet when changing in Angular", function () { var val = spec_1.randomLng(); layer.lng = val; chai_1.expect(layer.getLatLng().lng).to.equal(val); }); it("should be changed in Angular when changing in Angular", function () { var val = spec_1.randomLng(); layer.lng = val; chai_1.expect(layer.lng).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", function () { var val = spec_1.randomLng(); layer.setLatLng([0, val]); chai_1.expect(layer.lng).to.equal(val); }); it("should fire an event when changing in Angular", function (done) { var val = spec_1.randomLng(); layer.lngChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.lng = val; }); it("should fire an event when changing in Leaflet", function (done) { var val = spec_1.randomLng(); layer.lngChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setLatLng([0, val]); }); }); describe("[(radius)]", function () { it("should be changed in Leaflet when changing in Angular", function () { var val = spec_1.randomNumber(100); layer.radius = val; chai_1.expect(layer.getRadius()).to.equal(val); }); it("should be changed in Angular when changing in Angular", function () { var val = spec_1.randomNumber(100); layer.radius = val; chai_1.expect(layer.radius).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", function () { var val = spec_1.randomNumber(100); layer.setRadius(val); chai_1.expect(layer.radius).to.equal(val); }); it("should fire an event when changing in Angular", function (done) { var val = spec_1.randomNumber(100); layer.radiusChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.radius = val; }); it("should fire an event when changing in Leaflet", function (done) { var val = spec_1.randomNumber(100); layer.radiusChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setRadius(val); }); }); describe("[(geoJSON)]", function () { var TEST_VALUE = { geometry: { coordinates: [1, 3], type: "Point", }, properties: {}, type: "Feature", }; var TEST_POINT = [3, 4]; it("should be changed in Leaflet when changing in Angular", function () { layer.geoJSON = TEST_VALUE; chai_1.expect(layer.position.lng).to.equal(TEST_VALUE.geometry.coordinates[0]); chai_1.expect(layer.position.lat).to.equal(TEST_VALUE.geometry.coordinates[1]); }); it("should be changed in Angular when changing in Angular", function () { layer.geoJSON = TEST_VALUE; chai_1.expect(layer.geoJSON).to.deep.equal(TEST_VALUE); }); it("should be changed geoJSON in Angular when changing in latlngs Leaflet", function () { layer.setLatLng(TEST_POINT); chai_1.expect(layer.geoJSON.geometry.coordinates[0]).to.equal(TEST_POINT[1]); chai_1.expect(layer.geoJSON.geometry.coordinates[1]).to.equal(TEST_POINT[0]); }); it("should fire an event when changing in Angular", function (done) { layer.geoJSONChange.subscribe(function (eventVal) { chai_1.expect(eventVal).to.deep.equal(TEST_VALUE); return done(); }); layer.geoJSON = TEST_VALUE; }); it("should fire an event when changing in Leaflet", function (done) { layer.geoJSONChange.subscribe(function (eventVal) { chai_1.expect(eventVal.geometry.coordinates[0]).to.equal(TEST_POINT[1]); chai_1.expect(eventVal.geometry.coordinates[1]).to.equal(TEST_POINT[0]); return done(); }); layer.setLatLng(TEST_POINT); }); }); describe("[properties]", function () { var TEST_OBJECT = { test: "OK", }; it("should be changed in Leaflet when changing in Angular", function () { layer.properties = TEST_OBJECT; chai_1.expect(layer.feature.properties).to.equal(TEST_OBJECT); }); it("should be changed in Angular when changing in Angular", function () { layer.properties = TEST_OBJECT; chai_1.expect(layer.properties).to.equal(TEST_OBJECT); }); it("should emit an event for GeoJSONChange when changing in Angular", function (done) { /* tslint:disable:max-line-length */ layer.geoJSONChange.subscribe(function (eventVal) { chai_1.expect(eventVal.properties).to.equal(TEST_OBJECT); return done(); }); /* tslint:enable */ layer.properties = TEST_OBJECT; }); }); describe("Popup in Circle Directive", function () { var layerWithPopup; var popup; var testDiv; before(function () { testDiv = document.createElement("div"); layerWithPopup = new index_1.CircleDirective({ ref: map }, {}); popup = new index_1.PopupDirective({ nativeElement: testDiv }, { ref: layerWithPopup }); }); it("should bind popup", function () { chai_1.expect(layerWithPopup._popup).to.equal(popup); }); }); describe("Tooltip in Circle Directive", function () { var layerWithTooltip; var tooltip; var testDiv; before(function () { map = new index_1.MapComponent({ nativeElement: document.createElement("div") }, new index_1.LayerGroupProvider(), new index_1.MapProvider()); map._size = leaflet_1.point(100, 100); map._pixelOrigin = leaflet_1.point(50, 50); map._renderer = map._renderer || new leaflet_1.SVG(); testDiv = document.createElement("div"); layerWithTooltip = new index_1.CircleDirective({ ref: map }, {}); tooltip = new index_1.TooltipDirective({ ref: layerWithTooltip }, { nativeElement: testDiv }); layerWithTooltip.ngAfterContentInit(); }); it("should bind tooltip", function () { chai_1.expect(layerWithTooltip._tooltip).to.equal(tooltip); }); }); describe("Destroying a Circle Directive", function () { it("should remove Circle Directive from map on destroy", function () { chai_1.expect(map.hasLayer(layer)).to.equal(true); layer.ngOnDestroy(); chai_1.expect(map.hasLayer(layer)).to.equal(false); }); }); }); //# sourceMappingURL=circle.directive.spec.js.map