UNPKG

@yaga/leaflet-ng2

Version:
289 lines 12.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const leaflet_1 = require("leaflet"); const index_1 = require("./index"); const path_directives_spec_1 = require("./path-directives.spec"); const spec_1 = require("./spec"); describe("Circle Directive", () => { let map; let layer; beforeEach(() => { 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)]", () => { it("should set DOM container style to display:none when not displaying", () => { layer.display = false; chai_1.expect(layer.getElement().style.display).to.equal("none"); }); it("should reset DOM container style when display is true again", () => { 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", (done) => { layer.displayChange.subscribe((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", (done) => { map.removeLayer(layer); layer.displayChange.subscribe((val) => { chai_1.expect(val).to.equal(true); chai_1.expect(layer.display).to.equal(true); done(); }); map.addLayer(layer); }); }); describe("[(position)]", () => { const TEST_VALUE = leaflet_1.latLng(0, 1); it("should be changed in Leaflet when changing in Angular", () => { layer.position = TEST_VALUE; chai_1.expect(layer._latlng).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.position = TEST_VALUE; chai_1.expect(layer.position).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setLatLng(TEST_VALUE); chai_1.expect(layer.position).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.positionChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.position = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.positionChange.subscribe((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", (done) => { layer.geoJSONChange.subscribe(() => { return done(); }); layer.position = TEST_VALUE; }); it("should fire geoJSON-change event when changing in Leaflet", (done) => { layer.geoJSONChange.subscribe(() => { return done(); }); layer.setLatLng(TEST_VALUE); }); }); describe("[(lat)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const 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", () => { const 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", () => { const 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", (done) => { const val = spec_1.randomLat(); layer.latChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.lat = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomLat(); layer.latChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setLatLng([val, 0]); }); }); describe("[(lng)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const 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", () => { const 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", () => { const 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", (done) => { const val = spec_1.randomLng(); layer.lngChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.lng = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomLng(); layer.lngChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setLatLng([0, val]); }); }); describe("[(radius)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const 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", () => { const 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", () => { const 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", (done) => { const val = spec_1.randomNumber(100); layer.radiusChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.radius = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomNumber(100); layer.radiusChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setRadius(val); }); }); describe("[(geoJSON)]", () => { const TEST_VALUE = { geometry: { coordinates: [1, 3], type: "Point", }, properties: {}, type: "Feature", }; const TEST_POINT = [3, 4]; it("should be changed in Leaflet when changing in Angular", () => { 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", () => { 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", () => { 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", (done) => { layer.geoJSONChange.subscribe((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", (done) => { layer.geoJSONChange.subscribe((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]", () => { const TEST_OBJECT = { test: "OK", }; it("should be changed in Leaflet when changing in Angular", () => { layer.properties = TEST_OBJECT; chai_1.expect(layer.feature.properties).to.equal(TEST_OBJECT); }); it("should be changed in Angular when changing in Angular", () => { layer.properties = TEST_OBJECT; chai_1.expect(layer.properties).to.equal(TEST_OBJECT); }); it("should emit an event for GeoJSONChange when changing in Angular", (done) => { /* tslint:disable:max-line-length */ layer.geoJSONChange.subscribe((eventVal) => { chai_1.expect(eventVal.properties).to.equal(TEST_OBJECT); return done(); }); /* tslint:enable */ layer.properties = TEST_OBJECT; }); }); describe("Popup in Circle Directive", () => { let layerWithPopup; let popup; let testDiv; before(() => { testDiv = document.createElement("div"); layerWithPopup = new index_1.CircleDirective({ ref: map }, {}); popup = new index_1.PopupDirective({ nativeElement: testDiv }, { ref: layerWithPopup }); }); it("should bind popup", () => { chai_1.expect(layerWithPopup._popup).to.equal(popup); }); }); describe("Tooltip in Circle Directive", () => { let layerWithTooltip; let tooltip; let testDiv; before(() => { 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", () => { chai_1.expect(layerWithTooltip._tooltip).to.equal(tooltip); }); }); describe("Destroying a Circle Directive", () => { it("should remove Circle Directive from map on destroy", () => { 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