Ports tile stats tests from windshaft
This commit is contained in:
parent
d071fe6d0c
commit
725ff41fb1
81
test/unit/cartodb/ported/tile_stats.test.js
Normal file
81
test/unit/cartodb/ported/tile_stats.test.js
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
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('windshaft').stats.Client;
|
||||||
|
|
||||||
|
var MapController = require('../../../../lib/cartodb/controllers/map');
|
||||||
|
|
||||||
|
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 ws = cartodbServer(serverOptions);
|
||||||
|
ws.sendError = function(){};
|
||||||
|
|
||||||
|
var mapController = new MapController(ws, null);
|
||||||
|
|
||||||
|
var reqMock = {
|
||||||
|
params: {
|
||||||
|
format: invalidFormat
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mapController.finalizeGetTileOrGrid('Unsupported format png2', reqMock, {}, 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 ws = cartodbServer(serverOptions);
|
||||||
|
ws.sendError = function(){};
|
||||||
|
|
||||||
|
var mapController = new MapController(ws, null);
|
||||||
|
|
||||||
|
mapController.finalizeGetTileOrGrid('Another error happened', reqMock, {}, 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user