Merge branch 'master' into mapconfig-extension
This commit is contained in:
@@ -310,8 +310,8 @@ describe('tests from old api translated to multilayer', function() {
|
||||
it("creates layergroup fails when postgresql queries fail to figure affected tables in query", function(done) {
|
||||
|
||||
var runQueryFn = PgQueryRunner.prototype.run;
|
||||
PgQueryRunner.prototype.run = function(username, query, queryHandler, callback) {
|
||||
return queryHandler(new Error('fake error message'), [], callback);
|
||||
PgQueryRunner.prototype.run = function(username, query, callback) {
|
||||
return callback(new Error('fake error message'), []);
|
||||
};
|
||||
|
||||
var layergroup = singleLayergroupConfig('select * from gadm4', '#gadm4 { marker-fill: red; }');
|
||||
@@ -365,8 +365,8 @@ describe('tests from old api translated to multilayer', function() {
|
||||
keysToDelete['user:localhost:mapviews:global'] = 5;
|
||||
|
||||
var runQueryFn = PgQueryRunner.prototype.run;
|
||||
PgQueryRunner.prototype.run = function(username, query, queryHandler, callback) {
|
||||
return queryHandler(new Error('failed to query database for affected tables'), [], callback);
|
||||
PgQueryRunner.prototype.run = function(username, query, callback) {
|
||||
return callback(new Error('failed to query database for affected tables'), []);
|
||||
};
|
||||
|
||||
// reset internal cacheChannel cache
|
||||
|
||||
@@ -86,7 +86,7 @@ describe('blend http fallback', function() {
|
||||
};
|
||||
|
||||
var filteredLayersSuite = [
|
||||
['all'], // layers displayed: 2 + 4, skipping 3 as it fails
|
||||
//['all'], // layers displayed: 2 + 4, skipping 3 as it fails
|
||||
[0, 4],
|
||||
[0, 3], // skips layer 3 as it fails
|
||||
[1, 2],
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
require('../support/test_helper');
|
||||
|
||||
var assert = require('assert');
|
||||
|
||||
var RedisPool = require('redis-mpool');
|
||||
var cartodbRedis = require('cartodb-redis');
|
||||
|
||||
var PgConnection = require('../../lib/cartodb/backends/pg_connection');
|
||||
var PgQueryRunner = require('../../lib/cartodb/backends/pg_query_runner');
|
||||
|
||||
|
||||
describe('PgQueryRunner', function() {
|
||||
|
||||
var queryRunner;
|
||||
|
||||
before(function() {
|
||||
var redisPool = new RedisPool(global.environment.redis);
|
||||
var metadataBackend = cartodbRedis({pool: redisPool});
|
||||
var pgConnection = new PgConnection(metadataBackend);
|
||||
queryRunner = new PgQueryRunner(pgConnection);
|
||||
});
|
||||
|
||||
it('should work for happy case', function(done) {
|
||||
var query = 'select cartodb_id from test_table limit 3';
|
||||
queryRunner.run('localhost', query, function(err, result) {
|
||||
assert.ok(!err, err);
|
||||
|
||||
assert.ok(Array.isArray(result));
|
||||
assert.equal(result.length, 3);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should receive rows array even on error', function(done) {
|
||||
var query = 'select __error___ from test_table';
|
||||
queryRunner.run('localhost', query, function(err, result) {
|
||||
assert.ok(err);
|
||||
|
||||
assert.ok(Array.isArray(result));
|
||||
assert.equal(result.length, 0);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,55 @@
|
||||
require('../support/test_helper');
|
||||
|
||||
var assert = require('assert');
|
||||
|
||||
var RedisPool = require('redis-mpool');
|
||||
var cartodbRedis = require('cartodb-redis');
|
||||
|
||||
var PgConnection = require('../../lib/cartodb/backends/pg_connection');
|
||||
var PgQueryRunner = require('../../lib/cartodb/backends/pg_query_runner');
|
||||
var QueryTablesApi = require('../../lib/cartodb/api/query_tables_api');
|
||||
|
||||
|
||||
describe('QueryTablesApi', function() {
|
||||
|
||||
var queryTablesApi;
|
||||
|
||||
before(function() {
|
||||
var redisPool = new RedisPool(global.environment.redis);
|
||||
var metadataBackend = cartodbRedis({pool: redisPool});
|
||||
var pgConnection = new PgConnection(metadataBackend);
|
||||
var pgQueryRunner = new PgQueryRunner(pgConnection);
|
||||
queryTablesApi = new QueryTablesApi(pgQueryRunner);
|
||||
});
|
||||
|
||||
// Check test/support/sql/windshaft.test.sql to understand where the values come from.
|
||||
|
||||
it('should return an object with affected tables array and last updated time', function(done) {
|
||||
var query = 'select * from test_table';
|
||||
queryTablesApi.getAffectedTablesAndLastUpdatedTime('localhost', query, function(err, result) {
|
||||
assert.ok(!err, err);
|
||||
|
||||
assert.deepEqual(result, {
|
||||
affectedTables: [ 'public.test_table' ],
|
||||
lastUpdatedTime: 1234567890123
|
||||
});
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should work with private tables', function(done) {
|
||||
var query = 'select * from test_table_private_1';
|
||||
queryTablesApi.getAffectedTablesAndLastUpdatedTime('localhost', query, function(err, result) {
|
||||
assert.ok(!err, err);
|
||||
|
||||
assert.deepEqual(result, {
|
||||
affectedTables: [ 'public.test_table_private_1' ],
|
||||
lastUpdatedTime: 1234567890123
|
||||
});
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
@@ -0,0 +1,78 @@
|
||||
require('../support/test_helper');
|
||||
|
||||
var assert = require('assert');
|
||||
var redis = require('redis');
|
||||
var RedisPool = require('redis-mpool');
|
||||
var TemplateMaps = require('../../lib/cartodb/backends/template_maps');
|
||||
|
||||
|
||||
describe('TemplateMaps limits', function() {
|
||||
|
||||
var OWNER = 'username';
|
||||
var templateCounter = 0;
|
||||
function templateUniqueName() {
|
||||
return 'tpl_' + templateCounter++;
|
||||
}
|
||||
function createTemplate() {
|
||||
return {
|
||||
version: '0.0.1',
|
||||
name: templateUniqueName(),
|
||||
layergroup: {
|
||||
layers: [
|
||||
{
|
||||
type: 'plain',
|
||||
options: {
|
||||
color: 'blue'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var redisClient = redis.createClient(global.environment.redis.port);
|
||||
var redisPool = new RedisPool(global.environment.redis);
|
||||
|
||||
afterEach(function(done) {
|
||||
redisClient.del('map_tpl|' + OWNER, done);
|
||||
});
|
||||
|
||||
it('should allow to create templates when there is no limit in options', function(done) {
|
||||
var templateMaps = new TemplateMaps(redisPool);
|
||||
|
||||
templateMaps.addTemplate(OWNER, createTemplate(), function(err, templateName, template) {
|
||||
assert.ok(!err, err);
|
||||
assert.ok(template);
|
||||
|
||||
templateMaps.addTemplate(OWNER, createTemplate(), function(err, templateName, template) {
|
||||
assert.ok(!err, err);
|
||||
assert.ok(template);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should allow to create templates with limit in options', function(done) {
|
||||
var templateMaps = new TemplateMaps(redisPool, {max_user_templates: 1});
|
||||
|
||||
templateMaps.addTemplate(OWNER, createTemplate(), function(err, templateName, template) {
|
||||
assert.ok(!err, err);
|
||||
assert.ok(template);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should fail to create more templates than allowed by options', function(done) {
|
||||
var templateMaps = new TemplateMaps(redisPool, {max_user_templates: 1});
|
||||
|
||||
templateMaps.addTemplate(OWNER, createTemplate(), function(err, templateName, template) {
|
||||
assert.ok(!err, err);
|
||||
assert.ok(template);
|
||||
templateMaps.addTemplate(OWNER, createTemplate(), function(err) {
|
||||
assert.ok(err);
|
||||
assert.equal(err.http_status, 409);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -78,9 +78,9 @@ if test x"$PREPARE_PGSQL" = xyes; then
|
||||
sed "s/:TESTPASS/${TESTPASS}/" |
|
||||
psql -v ON_ERROR_STOP=1 ${TEST_DB} || exit 1
|
||||
|
||||
psql -c "CREATE EXTENSION plpythonu;" ${TEST_DB}
|
||||
# curl -L -s https://github.com/CartoDB/cartodb-postgresql/raw/cdb/scripts-available/CDB_QueryStatements.sql -o sql/CDB_QueryStatements.sql
|
||||
# curl -L -s https://github.com/CartoDB/cartodb-postgresql/raw/cdb/scripts-available/CDB_QueryTables.sql -o sql/CDB_QueryTables.sql
|
||||
psql -c "CREATE LANGUAGE plpythonu;" ${TEST_DB}
|
||||
curl -L -s https://github.com/CartoDB/cartodb-postgresql/raw/cdb/scripts-available/CDB_QueryStatements.sql -o sql/CDB_QueryStatements.sql
|
||||
curl -L -s https://github.com/CartoDB/cartodb-postgresql/raw/cdb/scripts-available/CDB_QueryTables.sql -o sql/CDB_QueryTables.sql
|
||||
cat sql/CDB_QueryStatements.sql sql/CDB_QueryTables.sql |
|
||||
psql -v ON_ERROR_STOP=1 ${TEST_DB} || exit 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user