Initial commit
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
var Backbone = require('backbone');
|
||||
var _ = require('underscore');
|
||||
var ConfigModel = require('builder/data/config-model');
|
||||
var MapDefinitionModel = require('builder/data/map-definition-model');
|
||||
var LayerDefinitionsCollection = require('builder/data/layer-definitions-collection');
|
||||
|
||||
describe('data/map-definition-model', function () {
|
||||
beforeEach(function () {
|
||||
var configModel = new ConfigModel({
|
||||
base_url: '/u/pepe'
|
||||
});
|
||||
this.layerDefinitionsCollection = new LayerDefinitionsCollection([
|
||||
{
|
||||
kind: 'tiled',
|
||||
options: {
|
||||
name: 'Positron',
|
||||
category: 'CartoDB',
|
||||
minZoom: 0,
|
||||
maxZoom: 40
|
||||
}
|
||||
}
|
||||
], {
|
||||
configModel: {},
|
||||
userModel: {},
|
||||
analysisDefinitionNodesCollection: {},
|
||||
mapId: {},
|
||||
stateDefinitionModel: {}
|
||||
});
|
||||
|
||||
spyOn(_, 'debounce').and.callFake(function (func) {
|
||||
return function () {
|
||||
func.apply(this, arguments);
|
||||
};
|
||||
});
|
||||
|
||||
this.model = new MapDefinitionModel({
|
||||
id: 'm-123'
|
||||
}, {
|
||||
parse: true,
|
||||
userModel: new Backbone.Model(),
|
||||
vis: {
|
||||
map: new Backbone.Model()
|
||||
},
|
||||
configModel: configModel,
|
||||
layerDefinitionsCollection: this.layerDefinitionsCollection
|
||||
});
|
||||
});
|
||||
|
||||
it('should have a url', function () {
|
||||
expect(this.model.url()).toEqual('/u/pepe/api/v2/maps/m-123');
|
||||
});
|
||||
|
||||
it('should have a layerDefinitionsCollection', function () {
|
||||
expect(this.model._layerDefinitionsCollection).toBe(this.layerDefinitionsCollection);
|
||||
});
|
||||
|
||||
describe('when the base layer is changed', function () {
|
||||
beforeEach(function () {
|
||||
spyOn(this.model, 'save');
|
||||
});
|
||||
|
||||
it('should save maxZoom and minZoom', function () {
|
||||
this.layerDefinitionsCollection.trigger('baseLayerChanged');
|
||||
|
||||
expect(this.model.save).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
minZoom: 0,
|
||||
maxZoom: 40
|
||||
}));
|
||||
});
|
||||
|
||||
it('should save the provider', function () {
|
||||
this.layerDefinitionsCollection.trigger('baseLayerChanged');
|
||||
|
||||
expect(this.model.save).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
provider: 'leaflet'
|
||||
}));
|
||||
});
|
||||
|
||||
it('should save the provider', function () {
|
||||
this.layerDefinitionsCollection.reset({
|
||||
type: 'GMapsBase',
|
||||
baseType: 'roadmap',
|
||||
minZoom: 0,
|
||||
maxZoom: 40
|
||||
}, { parse: false });
|
||||
|
||||
this.layerDefinitionsCollection.trigger('baseLayerChanged');
|
||||
|
||||
expect(this.model.save).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
provider: 'googlemaps'
|
||||
}));
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user