2018-10-24 00:39:02 +08:00
|
|
|
'use strict';
|
|
|
|
|
2016-01-21 22:44:22 +08:00
|
|
|
require('../support/test_helper');
|
|
|
|
|
|
|
|
var assert = require('assert');
|
|
|
|
var RedisPool = require('redis-mpool');
|
|
|
|
var cartodbRedis = require('cartodb-redis');
|
2019-10-07 15:40:50 +08:00
|
|
|
var PgConnection = require(__dirname + '/../../lib/backends/pg_connection');
|
|
|
|
var PgQueryRunner = require('../../lib/backends/pg_query_runner');
|
|
|
|
var OverviewsMetadataBackend = require('../../lib/backends/overviews-metadata');
|
|
|
|
var FilterStatsBackend = require('../../lib/backends/filter-stats');
|
|
|
|
var MapConfigOverviewsAdapter = require('../../lib/models/mapconfig/adapter/mapconfig-overviews-adapter');
|
2016-01-21 22:44:22 +08:00
|
|
|
|
|
|
|
var redisPool = new RedisPool(global.environment.redis);
|
|
|
|
var metadataBackend = cartodbRedis({pool: redisPool});
|
|
|
|
var pgConnection = new PgConnection(metadataBackend);
|
|
|
|
var pgQueryRunner = new PgQueryRunner(pgConnection);
|
2018-04-10 01:47:24 +08:00
|
|
|
var overviewsMetadataBackend = new OverviewsMetadataBackend(pgQueryRunner);
|
2018-04-10 00:56:01 +08:00
|
|
|
var filterStatsBackend = new FilterStatsBackend(pgQueryRunner);
|
2016-01-21 22:44:22 +08:00
|
|
|
|
2018-04-10 01:47:24 +08:00
|
|
|
var mapConfigOverviewsAdapter = new MapConfigOverviewsAdapter(overviewsMetadataBackend, filterStatsBackend);
|
2016-01-21 22:44:22 +08:00
|
|
|
|
|
|
|
describe('MapConfigOverviewsAdapter', function() {
|
|
|
|
|
|
|
|
it('should not modify layers for which no overviews are available', function(done) {
|
|
|
|
var sql = 'SELECT * FROM test_table';
|
|
|
|
var cartocss = '#layer { marker-fill: black; }';
|
|
|
|
var cartocss_version = '2.3.0';
|
|
|
|
var layer_without_overviews = {
|
|
|
|
type: 'cartodb',
|
|
|
|
options: {
|
|
|
|
sql: sql,
|
|
|
|
cartocss: cartocss,
|
|
|
|
cartocss_version: cartocss_version
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2016-05-23 21:52:31 +08:00
|
|
|
var _mapConfig = {
|
|
|
|
layers: [layer_without_overviews]
|
|
|
|
};
|
|
|
|
|
2016-05-24 00:35:16 +08:00
|
|
|
var params = {};
|
|
|
|
var context = {};
|
|
|
|
|
|
|
|
mapConfigOverviewsAdapter.getMapConfig('localhost', _mapConfig, params, context, function(err, mapConfig) {
|
2016-01-21 22:44:22 +08:00
|
|
|
assert.ok(!err);
|
2016-05-23 21:52:31 +08:00
|
|
|
var layers = mapConfig.layers;
|
2016-01-21 22:44:22 +08:00
|
|
|
assert.equal(layers.length, 1);
|
|
|
|
assert.equal(layers[0].type, 'cartodb');
|
|
|
|
assert.equal(layers[0].options.sql, sql);
|
|
|
|
assert.equal(layers[0].options.cartocss, cartocss);
|
|
|
|
assert.equal(layers[0].options.cartocss_version, cartocss_version);
|
|
|
|
assert.equal(layers[0].options.overviews, undefined);
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('MapConfigOverviewsAdapter', function() {
|
|
|
|
|
|
|
|
it('should add overviews metadata for layers using tables with overviews', function(done) {
|
|
|
|
var sql = 'SELECT * FROM test_table_overviews';
|
|
|
|
var cartocss = '#layer { marker-fill: black; }';
|
|
|
|
var cartocss_version = '2.3.0';
|
2016-05-23 21:52:31 +08:00
|
|
|
var layer_with_overviews = {
|
2016-01-21 22:44:22 +08:00
|
|
|
type: 'cartodb',
|
|
|
|
options: {
|
|
|
|
sql: sql,
|
|
|
|
cartocss: cartocss,
|
|
|
|
cartocss_version: cartocss_version
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2016-05-23 21:52:31 +08:00
|
|
|
var _mapConfig = {
|
|
|
|
layers: [layer_with_overviews]
|
|
|
|
};
|
|
|
|
|
2016-05-24 00:35:16 +08:00
|
|
|
var params = {};
|
|
|
|
var context = {};
|
|
|
|
|
|
|
|
mapConfigOverviewsAdapter.getMapConfig('localhost', _mapConfig, params, context, function(err, mapConfig) {
|
2016-01-21 22:44:22 +08:00
|
|
|
assert.ok(!err);
|
2016-05-23 21:52:31 +08:00
|
|
|
var layers = mapConfig.layers;
|
2016-01-21 22:44:22 +08:00
|
|
|
assert.equal(layers.length, 1);
|
|
|
|
assert.equal(layers[0].type, 'cartodb');
|
|
|
|
assert.equal(layers[0].options.sql, sql);
|
|
|
|
assert.equal(layers[0].options.cartocss, cartocss);
|
|
|
|
assert.equal(layers[0].options.cartocss_version, cartocss_version);
|
2016-02-04 17:26:31 +08:00
|
|
|
assert.ok(layers[0].options.query_rewrite_data);
|
|
|
|
var expected_data = {
|
2016-04-20 23:47:43 +08:00
|
|
|
overviews: {
|
|
|
|
test_table_overviews: {
|
|
|
|
schema: 'public',
|
|
|
|
1: { table: '_vovw_1_test_table_overviews' },
|
|
|
|
2: { table: '_vovw_2_test_table_overviews' }
|
|
|
|
}
|
2016-02-04 17:26:31 +08:00
|
|
|
}
|
|
|
|
};
|
|
|
|
assert.deepEqual(layers[0].options.query_rewrite_data, expected_data);
|
2016-01-21 22:44:22 +08:00
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|