260 lines
9.6 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
});
|
|
});
|