@a7gm/js-marker-clusterer
Version:
Angular Google Maps (AGM) extension for js-marker-clusterer support
170 lines • 8.19 kB
JavaScript
"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