Windshaft-cartodb/test/unit/mapconfig/dataviews-widgets-adapter-test.js
2019-10-24 18:38:37 +02:00

260 lines
9.6 KiB
JavaScript

'use strict';
// require('../../../support/test-helper');
var assert = require('assert');
var DataviewsMapConfigAdapter = require('../../../lib/models/mapconfig/adapter/dataviews-widgets-adapter');
describe('dataviews-widgets-adapter', function () {
var widgetsMapConfigs = [
{
input: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
sql: 'select * from populated_places_simple_reduced',
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
widgets: {
country_places_count: {
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
}
}
}
}
]
},
expected: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
source: {
id: 'cdb-layer-source-0'
},
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
// keep them for now
widgets: {
country_places_count: {
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
}
}
}
}
],
analyses: [
{
id: 'cdb-layer-source-0',
type: 'source',
params: {
query: 'select * from populated_places_simple_reduced'
}
}
],
dataviews: {
country_places_count: {
source: {
id: 'cdb-layer-source-0'
},
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
}
}
}
},
{
input: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
sql: 'select * from populated_places_simple_reduced',
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
widgets: {
pop_max: {
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
}
]
},
expected: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
source: {
id: 'cdb-layer-source-0'
},
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
// keep them for now
widgets: {
pop_max: {
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
}
],
analyses: [
{
id: 'cdb-layer-source-0',
type: 'source',
params: {
query: 'select * from populated_places_simple_reduced'
}
}
],
dataviews: {
pop_max: {
source: {
id: 'cdb-layer-source-0'
},
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
},
{
input: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
sql: 'select * from populated_places_simple_reduced',
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
widgets: {
country_places_count: {
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
},
country_places_histogram: {
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
}
]
},
expected: {
version: '1.4.0',
layers: [
{
type: 'mapnik',
options: {
source: {
id: 'cdb-layer-source-0'
},
cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }',
cartocss_version: '2.3.0',
// keep them for now
widgets: {
country_places_count: {
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
},
country_places_histogram: {
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
}
],
analyses: [
{
id: 'cdb-layer-source-0',
type: 'source',
params: {
query: 'select * from populated_places_simple_reduced'
}
}
],
dataviews: {
country_places_count: {
source: {
id: 'cdb-layer-source-0'
},
type: 'aggregation',
options: {
column: 'adm0_a3',
aggregation: 'count'
}
},
country_places_histogram: {
source: {
id: 'cdb-layer-source-0'
},
type: 'histogram',
options: {
column: 'pop_max'
}
}
}
}
}
];
var user = 'wadus';
function params () {
return {};
}
function context () {
return {};
}
var dataviewsMapConfigAdapter = new DataviewsMapConfigAdapter();
widgetsMapConfigs.forEach(function (mapConfig, index) {
it('should adapt widgets ' + index, function (done) {
dataviewsMapConfigAdapter.getMapConfig(user, mapConfig.input, params(), context(), function (err, result) {
assert.ifError(err);
assert.deepStrictEqual(result, mapConfig.expected);
done();
});
});
});
});