From 2c4cb6d42e4025ea11ec524a7900a76add4e29e8 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 29 Oct 2015 17:18:14 +0100 Subject: [PATCH] Adds some tests for per widget bbox filters --- test/acceptance/widgets.js | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 2ad3417e..1fe3ae20 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -399,6 +399,67 @@ describe('widgets', function() { done(); }); }); + + it("should allow to filter by bounding box a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], {"count":96,"adm0_a3":"RUS"}); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); + + it("should allow to filter by bounding box a filtered aggregation, with reject", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['RUS'] }, + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], {"count":77,"adm0_a3":"TUR"}); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); }); });