60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
require('../../support/test_helper');
|
|
|
|
var assert = require('../../support/assert');
|
|
var TestClient = require('../../support/test-client');
|
|
|
|
describe('aggregations', function() {
|
|
|
|
afterEach(function(done) {
|
|
if (this.testClient) {
|
|
this.testClient.drain(done);
|
|
} else {
|
|
done();
|
|
}
|
|
});
|
|
|
|
function aggregationOperationMapConfig(operation) {
|
|
return {
|
|
version: '1.5.0',
|
|
layers: [
|
|
{
|
|
type: 'mapnik',
|
|
options: {
|
|
sql: 'select * from populated_places_simple_reduced',
|
|
cartocss: '#layer0 { marker-fill: red; marker-width: 10; }',
|
|
cartocss_version: '2.0.1',
|
|
widgets: {
|
|
adm0name: {
|
|
type: 'aggregation',
|
|
options: {
|
|
column: 'adm0name',
|
|
aggregation: operation,
|
|
aggregationColumn: 'pop_max'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
};
|
|
}
|
|
|
|
var operations = ['count', 'sum', 'avg', 'max', 'min'];
|
|
|
|
operations.forEach(function(operation) {
|
|
it('should be able to use "' + operation + '" as aggregation operation', function(done) {
|
|
|
|
this.testClient = new TestClient(aggregationOperationMapConfig(operation));
|
|
this.testClient.getDataview('adm0name', { own_filter: 0 }, function (err, aggregation) {
|
|
assert.ok(!err, err);
|
|
assert.ok(aggregation);
|
|
|
|
assert.equal(aggregation.type, 'aggregation');
|
|
assert.equal(aggregation.aggregation, operation);
|
|
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|