93 lines
3.8 KiB
JavaScript
93 lines
3.8 KiB
JavaScript
require('../support/test_helper');
|
|
|
|
var assert = require('assert');
|
|
var _ = require('underscore');
|
|
var RedisPool = require('redis-mpool');
|
|
var cartodbRedis = require('cartodb-redis');
|
|
var PgConnection = require(__dirname + '/../../lib/cartodb/backends/pg_connection');
|
|
var PgQueryRunner = require('../../lib/cartodb/backends/pg_query_runner');
|
|
var OverviewsApi = require('../../lib/cartodb/api/overviews_api');
|
|
var MapConfigOverviewsAdapter = require('../../lib/cartodb/models/mapconfig_overviews_adapter');
|
|
|
|
// configure redis pool instance to use in tests
|
|
var redisPool = new RedisPool(global.environment.redis);
|
|
var pgConnection = new PgConnection(require('cartodb-redis')({ pool: redisPool }));
|
|
|
|
var redisPool = new RedisPool(global.environment.redis);
|
|
var metadataBackend = cartodbRedis({pool: redisPool});
|
|
var pgConnection = new PgConnection(metadataBackend);
|
|
var pgQueryRunner = new PgQueryRunner(pgConnection);
|
|
var overviewsApi = new OverviewsApi(pgQueryRunner);
|
|
|
|
|
|
var mapConfigOverviewsAdapter = new MapConfigOverviewsAdapter(overviewsApi);
|
|
|
|
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
|
|
}
|
|
};
|
|
|
|
mapConfigOverviewsAdapter.getLayers('localhost', [layer_without_overviews], function(err, layers) {
|
|
assert.ok(!err);
|
|
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';
|
|
var layer_without_overviews = {
|
|
type: 'cartodb',
|
|
options: {
|
|
sql: sql,
|
|
cartocss: cartocss,
|
|
cartocss_version: cartocss_version
|
|
}
|
|
};
|
|
|
|
mapConfigOverviewsAdapter.getLayers('localhost', [layer_without_overviews], function(err, layers) {
|
|
assert.ok(!err);
|
|
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.ok(layers[0].options.overviews);
|
|
assert.ok(layers[0].options.overviews.test_table_overviews);
|
|
assert.deepEqual(_.keys(layers[0].options.overviews), ['test_table_overviews']);
|
|
assert.equal(_.keys(layers[0].options.overviews.test_table_overviews).length, 2);
|
|
assert.ok(layers[0].options.overviews.test_table_overviews[1]);
|
|
assert.ok(layers[0].options.overviews.test_table_overviews[2]);
|
|
assert.equal(
|
|
layers[0].options.overviews.test_table_overviews[1].table,
|
|
'_vovw_1_test_table_overviews'
|
|
);
|
|
assert.equal(
|
|
layers[0].options.overviews.test_table_overviews[2].table,
|
|
'_vovw_2_test_table_overviews'
|
|
);
|
|
done();
|
|
});
|
|
});
|
|
});
|