Initial commit
This commit is contained in:
+110
@@ -0,0 +1,110 @@
|
||||
var Backbone = require('backbone');
|
||||
var AnalysisService = require('../../../../../src/analysis/analysis-service.js');
|
||||
var CartoDBLayer = require('../../../../../src/geo/map/cartodb-layer');
|
||||
var DataviewModelBase = require('../../../../../src/dataviews/dataview-model-base');
|
||||
var AnonymousMapSerializer = require('../../../../../src/windshaft/map-serializer/anonymous-map-serializer/anonymous-map-serializer');
|
||||
|
||||
var MyDataviewModel = DataviewModelBase.extend({
|
||||
toJSON: function () {
|
||||
return {};
|
||||
}
|
||||
});
|
||||
|
||||
describe('anonymous-map-serializer', function () {
|
||||
describe('.serialize', function () {
|
||||
var engineMock;
|
||||
var mapModel;
|
||||
var layersCollection;
|
||||
var dataviewsCollection;
|
||||
var analysisService;
|
||||
var analysisModel;
|
||||
var payload;
|
||||
|
||||
beforeEach(function () {
|
||||
mapModel = new Backbone.Model();
|
||||
engineMock = new Backbone.Model();
|
||||
layersCollection = new Backbone.Collection();
|
||||
dataviewsCollection = new Backbone.Collection();
|
||||
|
||||
// Analyses
|
||||
analysisService = new AnalysisService({
|
||||
engine: engineMock,
|
||||
camshaftReference: fakeCamshaftReference
|
||||
});
|
||||
analysisModel = analysisService.analyse({
|
||||
id: 'ANALYSIS_ID',
|
||||
type: 'source',
|
||||
params: {
|
||||
query: 'select * from subway_stops'
|
||||
}
|
||||
});
|
||||
|
||||
// Layers
|
||||
var cartoDBLayer = new CartoDBLayer({
|
||||
id: 'LAYER_ID',
|
||||
source: analysisModel,
|
||||
cartocss: 'cartocssMock',
|
||||
cartocss_version: '2.0'
|
||||
}, {
|
||||
engine: engineMock
|
||||
});
|
||||
layersCollection.add(cartoDBLayer);
|
||||
|
||||
// Dataviews
|
||||
var dataview = new MyDataviewModel({
|
||||
id: 'DATAVIEW_ID',
|
||||
source: analysisModel
|
||||
}, {
|
||||
map: mapModel,
|
||||
engine: engineMock
|
||||
});
|
||||
dataviewsCollection.add(dataview);
|
||||
|
||||
// Serialized payload
|
||||
payload = AnonymousMapSerializer.serialize(layersCollection, dataviewsCollection);
|
||||
});
|
||||
|
||||
it('should include buffersize', function () {
|
||||
expect(payload.buffersize).toEqual({
|
||||
mvt: 0
|
||||
});
|
||||
});
|
||||
|
||||
it('should include one layer', function () {
|
||||
expect(payload.layers.length).toEqual(1);
|
||||
expect(payload.layers[0].id).toEqual('LAYER_ID');
|
||||
});
|
||||
|
||||
it('should include one dataview', function () {
|
||||
expect(Object.keys(payload.dataviews).length).toEqual(1);
|
||||
expect(payload.dataviews['DATAVIEW_ID']).toBeDefined();
|
||||
});
|
||||
|
||||
it('should include one analysis', function () {
|
||||
expect(payload.analyses.length).toEqual(1);
|
||||
expect(payload.analyses[0].id).toEqual('ANALYSIS_ID');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
var fakeCamshaftReference = {
|
||||
getSourceNamesForAnalysisType: function (analysisType) {
|
||||
var map = {
|
||||
'source': []
|
||||
};
|
||||
if (!map[analysisType]) {
|
||||
throw new Error('analysis type ' + analysisType + ' not supported');
|
||||
}
|
||||
return map[analysisType];
|
||||
},
|
||||
|
||||
getParamNamesForAnalysisType: function (analysisType) {
|
||||
var map = {
|
||||
'source': ['query']
|
||||
};
|
||||
if (!map[analysisType]) {
|
||||
throw new Error('analysis type ' + analysisType + ' not supported');
|
||||
}
|
||||
return map[analysisType];
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user