Merge pull request #512 from CartoDB/turbo-carto-datasource-fixes

Use an empty array as default value for falsy ramps
This commit is contained in:
Raul Ochoa 2016-06-20 13:33:02 +02:00 committed by GitHub
commit 8a1cda159c
2 changed files with 82 additions and 1 deletions

View File

@ -81,7 +81,7 @@ PostgresDatasource.prototype.getRamp = function (column, buckets, method, callba
} }
var strategy = method2strategy[methodName]; var strategy = method2strategy[methodName];
var ramp = result[0][methodName]; var ramp = result[0][methodName] || [];
if (strategy !== STRATEGY.EXACT) { if (strategy !== STRATEGY.EXACT) {
ramp = ramp.sort(function(a, b) { ramp = ramp.sort(function(a, b) {
return a - b; return a - b;

View File

@ -24,6 +24,8 @@ describe('turbo-carto regressions', function() {
afterEach(function (done) { afterEach(function (done) {
if (this.testClient) { if (this.testClient) {
this.testClient.drain(done); this.testClient.drain(done);
} else {
done();
} }
}); });
@ -167,4 +169,83 @@ describe('turbo-carto regressions', function() {
done(); done();
}); });
}); });
describe('empty datasource results', function() {
afterEach(function (done) {
if (this.testClient) {
this.testClient.drain(done);
} else {
done();
}
});
function emptyResultMapConfig(markerFillRule) {
var cartocss = [
"#county_points_with_population {",
" marker-placement: point;",
" marker-allow-overlap: true;",
" marker-fill-opacity: 1.0;",
" marker-fill: " + markerFillRule + ';',
" marker-line-width: 0;",
"}"
].join('\n');
return {
"version": "1.5.0",
"layers": [
{
"type": 'mapnik',
"options": {
"cartocss_version": '2.3.0',
"source": {
"id": "head"
},
"cartocss": cartocss
}
}
],
"analyses": [
{
"id": "head",
"type": "source",
"params": {
"query": "SELECT * FROM populated_places_simple_reduced limit 0"
}
}
]
};
}
it('should work for numeric ramps', function(done) {
var makerFillRule = 'ramp([pop_max], (#E5F5F9,#99D8C9,#2CA25F), jenks)';
this.testClient = new TestClient(emptyResultMapConfig(makerFillRule), 1234);
this.testClient.getLayergroup(function(err, layergroup) {
assert.ok(!err, err);
assert.ok(layergroup.hasOwnProperty('layergroupid'));
assert.ok(!layergroup.hasOwnProperty('errors'));
done();
});
});
it('should work for category ramps', function(done) {
var makerFillRule = 'ramp([adm0name], (#E5F5F9,#99D8C9,#2CA25F), category)';
this.testClient = new TestClient(emptyResultMapConfig(makerFillRule), 1234);
this.testClient.getLayergroup(function(err, layergroup) {
assert.ok(!err, err);
assert.ok(layergroup.hasOwnProperty('layergroupid'));
assert.ok(!layergroup.hasOwnProperty('errors'));
done();
});
});
});
}); });