81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
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();
|
|
});
|
|
});
|
|
});
|
|
});
|