'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(); }); }); }); });