UNPKG

@a7gm/js-marker-clusterer

Version:

Angular Google Maps (AGM) extension for js-marker-clusterer support

170 lines 8.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var testing_1 = require("@angular/core/testing"); var marker_1 = require("../../../core/directives/marker"); var google_maps_api_wrapper_1 = require("../../../core/services/google-maps-api-wrapper"); var cluster_manager_1 = require("./cluster-manager"); describe('ClusterManager', function () { beforeEach(function () { testing_1.TestBed.configureTestingModule({ providers: [ { provide: core_1.NgZone, useFactory: function () { return new core_1.NgZone({ enableLongStackTrace: true }); } }, cluster_manager_1.ClusterManager, { provide: google_maps_api_wrapper_1.GoogleMapsAPIWrapper, useValue: { createMarker: jest.fn() } } ] }); }); describe('Create a new marker', function () { it('should call the mapsApiWrapper when creating a new marker', testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (clusterManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(clusterManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; clusterManager.addMarker(newMarker); expect(apiWrapper.createMarker).toHaveBeenCalledWith({ position: { lat: 34.4, lng: 22.3 }, label: 'A', draggable: false, icon: undefined, opacity: 1, visible: true, zIndex: 1, title: undefined, clickable: true }, false); })); }); describe('Delete a marker', function () { it('should set the map to null when deleting a existing marker', testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (clusterManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(clusterManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; var markerInstance = { setMap: jest.fn(), }; apiWrapper.createMarker.mockReturnValue(Promise.resolve(markerInstance)); clusterManager.addMarker(newMarker); clusterManager.deleteMarker(newMarker).then(function () { expect(markerInstance.setMap).toHaveBeenCalledWith(null); }); })); }); describe('set marker icon', function () { it('should update that marker via setIcon method when the markerUrl changes', testing_1.async(testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (markerManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(markerManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; var markerInstance = { setMap: jest.fn(), setIcon: jest.fn() }; apiWrapper.createMarker.mockReturnValue(Promise.resolve(markerInstance)); markerManager.addMarker(newMarker); expect(apiWrapper.createMarker).toHaveBeenCalledWith({ position: { lat: 34.4, lng: 22.3 }, label: 'A', draggable: false, icon: undefined, opacity: 1, visible: true, zIndex: 1, title: undefined, clickable: true }, false); var iconUrl = 'http://angular-maps.com/icon.png'; newMarker.iconUrl = iconUrl; return markerManager.updateIcon(newMarker).then(function () { expect(markerInstance.setIcon).toHaveBeenCalledWith(iconUrl); }); }))); }); describe('set marker opacity', function () { it('should update that marker via setOpacity method when the markerOpacity changes', testing_1.async(testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (markerManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(markerManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; var markerInstance = { setMap: jest.fn(), setOpacity: jest.fn() }; apiWrapper.createMarker.mockReturnValue(Promise.resolve(markerInstance)); markerManager.addMarker(newMarker); expect(apiWrapper.createMarker).toHaveBeenCalledWith({ position: { lat: 34.4, lng: 22.3 }, label: 'A', draggable: false, icon: undefined, visible: true, opacity: 1, zIndex: 1, title: undefined, clickable: true }, false); var opacity = 0.4; newMarker.opacity = opacity; return markerManager.updateOpacity(newMarker).then(function () { expect(markerInstance.setOpacity).toHaveBeenCalledWith(opacity); }); }))); }); describe('set visible option', function () { it('should update that marker via setVisible method when the visible changes', testing_1.async(testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (markerManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(markerManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; newMarker.visible = false; var markerInstance = { setMap: jest.fn(), setVisible: jest.fn() }; apiWrapper.createMarker.mockReturnValue(Promise.resolve(markerInstance)); markerManager.addMarker(newMarker); expect(apiWrapper.createMarker).toHaveBeenCalledWith({ position: { lat: 34.4, lng: 22.3 }, label: 'A', draggable: false, icon: undefined, visible: false, opacity: 1, zIndex: 1, title: undefined, clickable: true }, false); newMarker.visible = true; return markerManager.updateVisible(newMarker).then(function () { expect(markerInstance.setVisible).toHaveBeenCalledWith(true); }); }))); }); describe('set zIndex option', function () { it('should update that marker via setZIndex method when the zIndex changes', testing_1.async(testing_1.inject([cluster_manager_1.ClusterManager, google_maps_api_wrapper_1.GoogleMapsAPIWrapper], function (markerManager, apiWrapper) { var newMarker = new marker_1.AgmMarker(markerManager); newMarker.latitude = 34.4; newMarker.longitude = 22.3; newMarker.label = 'A'; newMarker.visible = false; var markerInstance = { setMap: jest.fn(), setZIndex: jest.fn() }; apiWrapper.createMarker.mockReturnValue(Promise.resolve(markerInstance)); markerManager.addMarker(newMarker); expect(apiWrapper.createMarker).toHaveBeenCalledWith({ position: { lat: 34.4, lng: 22.3 }, label: 'A', draggable: false, icon: undefined, visible: false, opacity: 1, zIndex: 1, title: undefined, clickable: true }, false); var zIndex = 10; newMarker.zIndex = zIndex; return markerManager.updateZIndex(newMarker).then(function () { expect(markerInstance.setZIndex).toHaveBeenCalledWith(zIndex); }); }))); }); }); //# sourceMappingURL=cluster-manager.spec.js.map