UNPKG

@yaga/leaflet-ng2

Version:
743 lines 34.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPathTests = void 0; const chai_1 = require("chai"); const leaflet_1 = require("leaflet"); const index_1 = require("./index"); const spec_1 = require("./spec"); /** * Basic test for all path layers * @private */ function createPathTests(Constr) { describe("Path compatibility tests", () => { 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 Constr({ ref: map }, {}); }); describe("[(display)]", () => { it("should remove DOM container when not displaying", () => { layer.display = false; chai_1.expect(layer.getElement().style.display).to.equal("none"); }); it("should re-add DOM container when display is true again", () => { layer.display = false; layer.display = true; chai_1.expect(layer.getElement().style.display).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("[(color)]", () => { const TEST_VALUE = "#123456"; it("should be changed in Leaflet when changing in Angular", () => { layer.color = TEST_VALUE; chai_1.expect(layer.options.color).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.color = TEST_VALUE; chai_1.expect(layer.color).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ color: TEST_VALUE }); chai_1.expect(layer.color).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.colorChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.color = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.colorChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ color: TEST_VALUE }); }); }); describe("[(lineCap)]", () => { const TEST_VALUE = "butt"; it("should be changed in Leaflet when changing in Angular", () => { layer.lineCap = TEST_VALUE; chai_1.expect(layer.options.lineCap).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.lineCap = TEST_VALUE; chai_1.expect(layer.lineCap).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ lineCap: TEST_VALUE }); chai_1.expect(layer.lineCap).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.lineCapChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.lineCap = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.lineCap = TEST_VALUE; layer.lineCapChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ lineCap: TEST_VALUE }); }); }); describe("[(lineJoin)]", () => { const TEST_VALUE = "bevel"; it("should be changed in Leaflet when changing in Angular", () => { layer.lineJoin = TEST_VALUE; chai_1.expect(layer.options.lineJoin).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.lineJoin = TEST_VALUE; chai_1.expect(layer.lineJoin).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ lineJoin: TEST_VALUE }); chai_1.expect(layer.lineJoin).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.lineJoinChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.lineJoin = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.lineJoin = TEST_VALUE; layer.lineJoinChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ lineJoin: TEST_VALUE }); }); }); describe("[(dashArray)]", () => { const TEST_VALUE = "1, 2"; it("should be changed in Leaflet when changing in Angular", () => { layer.dashArray = TEST_VALUE; chai_1.expect(layer.options.dashArray).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.dashArray = TEST_VALUE; chai_1.expect(layer.dashArray).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ dashArray: TEST_VALUE }); chai_1.expect(layer.dashArray).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.dashArrayChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.dashArray = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.dashArray = TEST_VALUE; layer.dashArrayChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ dashArray: TEST_VALUE }); }); }); describe("[(dashOffset)]", () => { const TEST_VALUE = "7px"; it("should be changed in Leaflet when changing in Angular", () => { layer.dashOffset = TEST_VALUE; chai_1.expect(layer.options.dashOffset).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.dashOffset = TEST_VALUE; chai_1.expect(layer.dashOffset).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ dashOffset: TEST_VALUE }); chai_1.expect(layer.dashOffset).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.dashOffsetChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.dashOffset = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.dashOffset = TEST_VALUE; layer.dashOffsetChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ dashOffset: TEST_VALUE }); }); }); describe("[(fillColor)]", () => { const TEST_VALUE = "#123456"; it("should be changed in Leaflet when changing in Angular", () => { layer.fillColor = TEST_VALUE; chai_1.expect(layer.options.fillColor).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.fillColor = TEST_VALUE; chai_1.expect(layer.fillColor).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ fillColor: TEST_VALUE }); chai_1.expect(layer.fillColor).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.fillColorChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.fillColor = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.fillColor = TEST_VALUE; layer.fillColorChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ fillColor: TEST_VALUE }); }); }); describe("[(fillRule)]", () => { const TEST_VALUE = "nonzero"; it("should be changed in Leaflet when changing in Angular", () => { layer.fillRule = TEST_VALUE; chai_1.expect(layer.options.fillRule).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.fillRule = TEST_VALUE; chai_1.expect(layer.fillRule).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ fillRule: TEST_VALUE }); chai_1.expect(layer.fillRule).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.fillRuleChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.fillRule = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.fillRule = TEST_VALUE; layer.fillRuleChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ fillRule: TEST_VALUE }); }); }); describe("[(className)]", () => { const TEST_VALUE = "testclass"; it("should be changed in Leaflet when changing in Angular", () => { layer.className = TEST_VALUE; chai_1.expect(layer.options.className).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Angular", () => { layer.className = TEST_VALUE; chai_1.expect(layer.className).to.equal(TEST_VALUE); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle({ className: TEST_VALUE }); chai_1.expect(layer.className).to.equal(TEST_VALUE); }); it("should fire an event when changing in Angular", (done) => { layer.classNameChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.className = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { layer.className = TEST_VALUE; layer.classNameChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(TEST_VALUE); return done(); }); layer.setStyle({ className: TEST_VALUE }); }); }); describe("[(opacity)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const val = spec_1.randomNumber(); layer.opacity = val; chai_1.expect(layer.options.opacity).to.equal(val); }); it("should be changed in Angular when changing in Angular", () => { const val = spec_1.randomNumber(); layer.opacity = val; chai_1.expect(layer.opacity).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", () => { const val = spec_1.randomNumber(); layer.setStyle({ opacity: val }); chai_1.expect(layer.opacity).to.equal(val); }); it("should fire an event when changing in Angular", (done) => { const val = spec_1.randomNumber(); layer.opacityChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.opacity = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomNumber(); layer.opacityChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setStyle({ opacity: val }); }); }); describe("[(weight)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const val = spec_1.randomNumber(10, 0, 0); layer.weight = val; chai_1.expect(layer.options.weight).to.equal(val); }); it("should be changed in Angular when changing in Angular", () => { const val = spec_1.randomNumber(10, 0, 0); layer.weight = val; chai_1.expect(layer.weight).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", () => { const val = spec_1.randomNumber(10, 0, 0); layer.setStyle({ weight: val }); chai_1.expect(layer.weight).to.equal(val); }); it("should fire an event when changing in Angular", (done) => { const val = spec_1.randomNumber(10, 0, 0); layer.weightChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.weight = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomNumber(10, 0, 0); layer.weightChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setStyle({ weight: val }); }); }); describe("[(fillOpacity)]", () => { it("should be changed in Leaflet when changing in Angular", () => { const val = spec_1.randomNumber(); layer.fillOpacity = val; chai_1.expect(layer.options.fillOpacity).to.equal(val); }); it("should be changed in Angular when changing in Angular", () => { const val = spec_1.randomNumber(); layer.fillOpacity = val; chai_1.expect(layer.fillOpacity).to.equal(val); }); it("should be changed in Angular when changing in Leaflet", () => { const val = spec_1.randomNumber(); layer.setStyle({ fillOpacity: val }); chai_1.expect(layer.fillOpacity).to.equal(val); }); it("should fire an event when changing in Angular", (done) => { const val = spec_1.randomNumber(); layer.fillOpacityChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.fillOpacity = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = spec_1.randomNumber(); layer.fillOpacityChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setStyle({ fillOpacity: val }); }); }); describe("[(stroke)]", () => { it("should be changed in Leaflet when changing in Angular to false", () => { const val = false; layer.stroke = val; chai_1.expect(layer.options.stroke).to.equal(val); }); it("should be changed in Leaflet when changing in Angular to true", () => { layer.options.stroke = false; const val = true; layer.stroke = val; chai_1.expect(layer.stroke).to.equal(val); }); it("should be changed in Angular when changing in Angular to false", () => { const val = false; layer.stroke = val; chai_1.expect(layer.stroke).to.equal(val); }); it("should be changed in Angular when changing in Angular to true", () => { layer.options.stroke = false; const val = true; layer.stroke = val; chai_1.expect(layer.stroke).to.equal(val); }); it("should be changed in Angular when changing in Leaflet to false", () => { const val = false; layer.setStyle({ stroke: val }); chai_1.expect(layer.stroke).to.equal(val); }); it("should be changed in Angular when changing in Leaflet to true", () => { layer.options.stroke = false; const val = true; layer.setStyle({ stroke: val }); chai_1.expect(layer.stroke).to.equal(val); }); it("should fire an event when changing in Angular", (done) => { const val = false; layer.strokeChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.stroke = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = false; layer.strokeChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setStyle({ stroke: val }); }); }); describe("[(fill)]", () => { it("should be changed in Leaflet when changing in Angular to false", () => { const val = false; layer.fill = val; chai_1.expect(layer.options.fill).to.equal(val); }); it("should be changed in Leaflet when changing in Angular to true", () => { layer.options.fill = false; const val = true; layer.fill = val; chai_1.expect(layer.fill).to.equal(val); }); it("should be changed in Angular when changing in Angular to false", () => { const val = false; layer.fill = val; chai_1.expect(layer.fill).to.equal(val); }); it("should be changed in Angular when changing in Angular to true", () => { layer.options.fill = false; const val = true; layer.fill = val; chai_1.expect(layer.fill).to.equal(val); }); it("should be changed in Angular when changing in Leaflet to false", () => { const val = false; layer.setStyle({ fill: val }); chai_1.expect(layer.fill).to.equal(val); }); it("should be changed in Angular when changing in Leaflet to true", () => { layer.options.fill = false; const val = true; layer.setStyle({ fill: val }); chai_1.expect(layer.fill).to.equal(val); }); it("should fire an event when changing in Angular", (done) => { const val = false; layer.fillChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.fill = val; }); it("should fire an event when changing in Leaflet", (done) => { const val = false; layer.fillChange.subscribe((eventVal) => { chai_1.expect(eventVal).to.equal(val); return done(); }); layer.setStyle({ fill: val }); }); }); describe("[(style)]", () => { const TEST_VALUE = { opacity: 0.5, weight: 3, dashArray: "1, 2" }; it("should be changed in Leaflet when changing in Angular", () => { layer.style = TEST_VALUE; chai_1.expect(layer.options.opacity).to.equal(TEST_VALUE.opacity); }); it("should be changed in Angular when changing in Angular", () => { layer.style = TEST_VALUE; chai_1.expect(layer.style.opacity).to.equal(TEST_VALUE.opacity); }); it("should be changed in Angular when changing in Leaflet", () => { layer.setStyle(TEST_VALUE); chai_1.expect(layer.style.opacity).to.equal(TEST_VALUE.opacity); }); it("should fire an event when changing in Angular", (done) => { Promise.all([ new Promise((fulfill, reject) => { layer.styleChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.opacityChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.opacity) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.weightChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.weight) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.dashArrayChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.dashArray) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), ]).then(() => { done(); }).catch(done); layer.style = TEST_VALUE; }); it("should fire an event when changing in Leaflet", (done) => { Promise.all([ new Promise((fulfill, reject) => { layer.styleChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.opacityChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.opacity) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.weightChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.weight) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), new Promise((fulfill, reject) => { layer.dashArrayChange.subscribe((eventVal) => { /* istanbul ignore if */ if (eventVal !== TEST_VALUE.dashArray) { return reject(new Error("Received wrong value")); } return fulfill(); }); }), ]).then(() => { done(); }).catch(done); layer.setStyle(TEST_VALUE); }); }); // Events describe("(add)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.addEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("add", testEvent); }); }); describe("(remove)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.removeEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("remove", testEvent); }); }); describe("(popupopen)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.popupopenEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("popupopen", testEvent); }); }); describe("(popupclose)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.popupcloseEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("popupclose", testEvent); }); }); describe("(tooltipopen)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.tooltipopenEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("tooltipopen", testEvent); }); }); describe("(tooltipclose)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.tooltipcloseEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("tooltipclose", testEvent); }); }); describe("(click)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.clickEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("click", testEvent); }); }); describe("(dblclick)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.dblclickEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("dblclick", testEvent); }); }); describe("(mousedown)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.mousedownEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("mousedown", testEvent); }); }); describe("(mouseover)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.mouseoverEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("mouseover", testEvent); }); }); describe("(mouseout)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.mouseoutEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("mouseout", testEvent); }); }); describe("(contextmenu)", () => { it("should fire event in Angular when firing event in Leaflet", (done) => { const testHandle = {}; const testEvent = { testHandle }; layer.contextmenuEvent.subscribe((event) => { chai_1.expect(event.testHandle).to.equal(testEvent.testHandle); return done(); }); layer.fire("contextmenu", testEvent); }); }); describe("[interactive]", () => { it("should be changed to false in Leaflet when changing in Angular to false", () => { layer.interactive = false; chai_1.expect(layer.options.interactive).to.equal(false); }); it("should be changed to true in Leaflet when changing in Angular to true", () => { layer.options.interactive = false; layer.interactive = true; chai_1.expect(layer.options.interactive).to.equal(true); }); it("should be changed in Angular to false when changing in Angular to false", () => { layer.interactive = false; chai_1.expect(layer.interactive).to.equal(false); }); it("should be changed in Angular to true when changing in Angular to true", () => { layer.interactive = true; chai_1.expect(layer.interactive).to.equal(true); }); }); }); } exports.createPathTests = createPathTests; //# sourceMappingURL=path-directives.spec.js.map