diff --git a/test/acceptance/multilayer_server.js b/test/acceptance/multilayer_server.js index 24640631..ee013eeb 100644 --- a/test/acceptance/multilayer_server.js +++ b/test/acceptance/multilayer_server.js @@ -24,21 +24,27 @@ describe('tests from old api translated to multilayer', function() { }); }); - it("layergroup creation fails if CartoCSS is bogus", function(done) { - var layergroup = { + var wadusSql = 'select 1 as cartodb_id, null::geometry as the_geom_webmercator'; + + function singleLayergroupConfig(sql, cartocss) { + return { stat_tag: 'random_tag', version: '1.0.0', layers: [ { type: 'mapnik', options: { - sql: 'select 1 as cartodb_id, null::geometry as the_geom_webmercator', - cartocss: '#my_table3{', + sql: sql, + cartocss: cartocss, cartocss_version: '2.0.1' } } ] }; + } + + it("layergroup creation fails if CartoCSS is bogus", function(done) { + var layergroup = singleLayergroupConfig(wadusSql, '#my_table3{'); assert.response(server, { url: layergroupUrl, method: 'POST', @@ -53,4 +59,22 @@ describe('tests from old api translated to multilayer', function() { }); }); + it("multiple bad styles returns 400 with all errors", function(done) { + var layergroup = singleLayergroupConfig(wadusSql, '#my_table4{backgxxxxxround-color:#fff;foo:bar}'); + assert.response(server, { + url: layergroupUrl, + method: 'POST', + headers: {host: 'localhost', 'Content-Type': 'application/json' }, + data: JSON.stringify(layergroup) + }, {}, function(res) { + assert.equal(res.statusCode, 400, res.body); + var parsed = JSON.parse(res.body); + assert.equal(parsed.errors.length, 1); + assert.ok(parsed.errors[0].match(/^style0/)); + assert.ok(parsed.errors[0].match(/Unrecognized rule: backgxxxxxround-color/)); + assert.ok(parsed.errors[0].match(/Unrecognized rule: foo/)); + done(); + }); + }); + }); diff --git a/test/acceptance/server.js b/test/acceptance/server.js index 692d11a3..528d9641 100644 --- a/test/acceptance/server.js +++ b/test/acceptance/server.js @@ -115,28 +115,6 @@ suite.skip('server old_api', function() { var test_style_black_200 = "#test_table{marker-fill:black;marker-line-color:red;marker-width:10}"; var test_style_black_210 = "#test_table{marker-fill:black;marker-line-color:red;marker-width:20}"; - ///////////////////////////////////////////////////////////////////////////////// - // - // POST STYLE - // - ///////////////////////////////////////////////////////////////////////////////// - - test("post'ing multiple bad styles returns 400 with error array", function(done){ - assert.response(server, { - url: '/tiles/my_table4/style?map_key=1234', - method: 'POST', - headers: {host: 'localhost', 'Content-Type': 'application/x-www-form-urlencoded' }, - data: querystring.stringify({style: '#my_table4{backgxxxxxround-color:#fff;foo:bar}'}) - },{ - status: 400 - }, function(res) { - var parsed = JSON.parse(res.body); - assert.equal(parsed.length, 2); - assert.ok( new RegExp(/Unrecognized rule: backgxxxxxround-color/).test(parsed[0]) ); - assert.ok( new RegExp(/Unrecognized rule: foo/).test(parsed[1]) ); - done(); - }); - }); test("post'ing good style returns 200", function(done){ assert.response(server, {