beabe48aec
- basic changes in server - basic changes in unit tests
88 lines
3.0 KiB
JavaScript
88 lines
3.0 KiB
JavaScript
require('../../../support/test_helper.js');
|
|
|
|
var assert = require('assert');
|
|
var cartodbServer = require('../../../../lib/cartodb/server');
|
|
var serverOptions = require('../../../../lib/cartodb/server_options');
|
|
var StatsClient = require('../../../../lib/cartodb/stats/client');
|
|
|
|
var LayergroupController = require('../../../../lib/cartodb/controllers/layergroup');
|
|
|
|
describe('tile stats', function() {
|
|
|
|
var statsClientGetInstanceFn = StatsClient.getInstance;
|
|
|
|
after(function() {
|
|
StatsClient.getInstance = statsClientGetInstanceFn;
|
|
});
|
|
|
|
|
|
it('finalizeGetTileOrGrid does not call statsClient when format is not supported', function() {
|
|
var expectedCalls = 2, // it will call increment once for the general error
|
|
invalidFormat = 'png2',
|
|
invalidFormatRegexp = new RegExp('invalid'),
|
|
formatMatched = false;
|
|
mockStatsClientGetInstance({
|
|
increment: function(label) {
|
|
formatMatched = formatMatched || !!label.match(invalidFormatRegexp);
|
|
expectedCalls--;
|
|
}
|
|
});
|
|
|
|
var layergroupController = new LayergroupController(cartodbServer(serverOptions));
|
|
|
|
var reqMock = {
|
|
params: {
|
|
format: invalidFormat
|
|
}
|
|
};
|
|
var resMock = {
|
|
status: function() { return this; },
|
|
json: function() {},
|
|
jsonp: function() {},
|
|
send: function() {}
|
|
};
|
|
layergroupController.finalizeGetTileOrGrid('Unsupported format png2', reqMock, resMock, null, null);
|
|
|
|
assert.ok(formatMatched, 'Format was never matched in increment method');
|
|
assert.equal(expectedCalls, 0, 'Unexpected number of calls to increment method');
|
|
});
|
|
|
|
it('finalizeGetTileOrGrid calls statsClient when format is supported', function() {
|
|
var expectedCalls = 2, // general error + format error
|
|
validFormat = 'png',
|
|
validFormatRegexp = new RegExp(validFormat),
|
|
formatMatched = false;
|
|
mockStatsClientGetInstance({
|
|
increment: function(label) {
|
|
formatMatched = formatMatched || !!label.match(validFormatRegexp);
|
|
expectedCalls--;
|
|
}
|
|
});
|
|
var reqMock = {
|
|
params: {
|
|
format: validFormat
|
|
}
|
|
};
|
|
var resMock = {
|
|
status: function() { return this; },
|
|
json: function() {},
|
|
jsonp: function() {},
|
|
send: function() {}
|
|
};
|
|
|
|
var layergroupController = new LayergroupController(cartodbServer(serverOptions));
|
|
|
|
layergroupController.finalizeGetTileOrGrid('Another error happened', reqMock, resMock, null, null);
|
|
|
|
assert.ok(formatMatched, 'Format was never matched in increment method');
|
|
assert.equal(expectedCalls, 0, 'Unexpected number of calls to increment method');
|
|
});
|
|
|
|
function mockStatsClientGetInstance(instance) {
|
|
StatsClient.getInstance = function() {
|
|
return instance;
|
|
};
|
|
}
|
|
|
|
});
|