diff --git a/NEWS.md b/NEWS.md index c1405f11..95bd17f4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,9 @@ Released 2016-mm-dd +Bug fixes: + - Nicer error message when missing sql from layer options #446 + ## 2.41.0 diff --git a/lib/cartodb/api/overviews_metadata_api.js b/lib/cartodb/api/overviews_metadata_api.js index af3a1294..2cec6bbb 100644 --- a/lib/cartodb/api/overviews_metadata_api.js +++ b/lib/cartodb/api/overviews_metadata_api.js @@ -13,7 +13,7 @@ var affectedTableRegexCache = { }; function prepareSql(sql) { - return sql + return sql && sql .replace(affectedTableRegexCache.bbox, 'ST_MakeEnvelope(0,0,0,0)') .replace(affectedTableRegexCache.scale_denominator, '0') .replace(affectedTableRegexCache.pixel_width, '1') diff --git a/test/acceptance/regressions.js b/test/acceptance/regressions.js new file mode 100644 index 00000000..43dad070 --- /dev/null +++ b/test/acceptance/regressions.js @@ -0,0 +1,40 @@ +require('../support/test_helper'); + +var assert = require('../support/assert'); +var TestClient = require('../support/test-client'); + +describe('regressions', function() { + + var ERROR_RESPONSE = { + status: 400, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }; + + it('should expose a nice error when missing sql option', function(done) { + var mapConfig = { + version: '1.5.0', + layers: [ + { + "type": "cartodb", + "options": { + "cartocss": '#polygons { polygon-fill: red; }', + "cartocss_version": "2.3.0" + } + } + ] + }; + + var testClient = new TestClient(mapConfig, 1234); + + testClient.getLayergroup(ERROR_RESPONSE, function(err, layergroupResult) { + assert.ok(!err, err); + + assert.equal(layergroupResult.errors.length, 1); + assert.equal(layergroupResult.errors[0], 'Missing sql for layer 0 options'); + + testClient.drain(done); + }); + }); +});