cartodb/carto.js/test/helpers/mockFactory.js
2020-06-15 10:58:47 +08:00

60 lines
1.5 KiB
JavaScript

var _ = require('underscore');
var VisModel = require('../../src/vis/vis');
var AnalysisModel = require('../../src/analysis/analysis-model');
// We use a "fake" reference instead of the one in src/analysis/camshaft-reference
// to ensure that tests won't break if the real thing changes
var fakeCamshaftReference = {
getSourceNamesForAnalysisType: function (analysisType) {
var map = {
'source': [],
'trade-area': ['source'],
'estimated-population': ['source'],
'point-in-polygon': ['points_source', 'polygons_source'],
'union': ['source']
};
if (!map[analysisType]) {
throw new Error('analysis type ' + analysisType + ' not supported');
}
return map[analysisType];
},
getParamNamesForAnalysisType: function (analysisType) {
var map = {
'source': ['query'],
'trade-area': ['kind', 'time'],
'estimated-population': ['columnName'],
'point-in-polygon': [],
'union': ['join_on']
};
if (!map[analysisType]) {
throw new Error('analysis type ' + analysisType + ' not supported');
}
return map[analysisType];
}
};
var createAnalysisModel = function (attrs) {
if (!_.has(attrs, 'type')) {
attrs.type = 'source';
}
var model = new AnalysisModel(attrs, {
camshaftReference: fakeCamshaftReference,
engine: {
reload: function () {}
}
});
return model;
};
function createVisModel () {
return new VisModel();
}
module.exports = {
createAnalysisModel: createAnalysisModel,
createVisModel: createVisModel
};