Add test to check the headers exist while instantiating a map
This commit is contained in:
parent
ddefb1a6ca
commit
aff5c9a614
11
lib/api/middlewares/client-header.js
Normal file
11
lib/api/middlewares/client-header.js
Normal file
@ -0,0 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function clientHeader () {
|
||||
return function clientHeaderMiddleware (req, res, next) {
|
||||
const { client } = req.query;
|
||||
|
||||
res.set('Carto-Client', client);
|
||||
|
||||
return next();
|
||||
};
|
||||
};
|
97
test/acceptance/map-view-headers-test.js
Normal file
97
test/acceptance/map-view-headers-test.js
Normal file
@ -0,0 +1,97 @@
|
||||
'use strict';
|
||||
|
||||
require('../support/test-helper');
|
||||
|
||||
const assert = require('../support/assert');
|
||||
const TestClient = require('../support/test-client');
|
||||
|
||||
const defaultLayers = [{
|
||||
type: 'cartodb',
|
||||
options: {
|
||||
sql: TestClient.SQL.ONE_POINT
|
||||
}
|
||||
}];
|
||||
const defaultStatTag = 'wadus';
|
||||
|
||||
function createMapConfig (layers = defaultLayers, statTag = defaultStatTag) {
|
||||
return {
|
||||
version: '1.8.0',
|
||||
layers: layers,
|
||||
stat_tag: defaultStatTag
|
||||
};
|
||||
}
|
||||
|
||||
describe('map view headers', function () {
|
||||
it('anonymous map instantiation should respond with map-view headers', function (done) {
|
||||
const mapConfig = createMapConfig();
|
||||
const testClient = new TestClient(mapConfig);
|
||||
const params = { client: 'test' };
|
||||
|
||||
testClient.getLayergroup(params, (err, body, res) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
assert.strictEqual(res.headers['carto-stat-tag'], defaultStatTag);
|
||||
assert.strictEqual(res.headers['carto-client'], params.client);
|
||||
assert.strictEqual(res.headers['carto-user-id'], '1');
|
||||
|
||||
testClient.drain(done);
|
||||
});
|
||||
});
|
||||
|
||||
it('named map instantiation should respond with map-view headers', function (done) {
|
||||
const templateid = `map-view-headers-test-${Date.now()}`;
|
||||
const template = {
|
||||
version: '0.0.1',
|
||||
name: templateid,
|
||||
layergroup: createMapConfig()
|
||||
};
|
||||
|
||||
const testClient = new TestClient(template, 1234);
|
||||
const params = { client: 'test' };
|
||||
|
||||
testClient.getLayergroup(params, (err, body, res) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
assert.strictEqual(res.headers['carto-stat-tag'], defaultStatTag);
|
||||
assert.strictEqual(res.headers['carto-client'], params.client);
|
||||
assert.strictEqual(res.headers['carto-user-id'], '1');
|
||||
|
||||
testClient.drain(done);
|
||||
});
|
||||
});
|
||||
|
||||
it('preview should respond with map-view headers', function (done) {
|
||||
const templateid = `map-view-headers-test-${Date.now()}`;
|
||||
const template = {
|
||||
version: '0.0.1',
|
||||
name: templateid,
|
||||
layergroup: createMapConfig([{
|
||||
type: 'cartodb',
|
||||
options: {
|
||||
sql: TestClient.SQL.ONE_POINT,
|
||||
cartocss: TestClient.CARTOCSS.POINTS,
|
||||
cartocss_version: '2.3.0'
|
||||
}
|
||||
}])
|
||||
};
|
||||
|
||||
const testClient = new TestClient(template, 1234);
|
||||
const params = { client: 'test' };
|
||||
|
||||
testClient.getPreview(640, 480, params, (err, res) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
assert.strictEqual(res.headers['carto-stat-tag'], defaultStatTag);
|
||||
assert.strictEqual(res.headers['carto-client'], params.client);
|
||||
assert.strictEqual(res.headers['carto-user-id'], '1');
|
||||
|
||||
testClient.drain(done);
|
||||
});
|
||||
});
|
||||
});
|
@ -1033,9 +1033,13 @@ TestClient.prototype.getLayergroup = function (params, callback) {
|
||||
queryParams.aggregation = params.aggregation;
|
||||
}
|
||||
|
||||
if (params.client !== undefined) {
|
||||
queryParams.client = params.client;
|
||||
}
|
||||
|
||||
const path = templateId
|
||||
? urlNamed + '/' + templateId + '?' + qs.stringify(queryParams)
|
||||
: url;
|
||||
? `${urlNamed}/${templateId}?${qs.stringify(queryParams)}`
|
||||
: `${url}?${qs.stringify(queryParams)}`;
|
||||
|
||||
assert.response(self.server,
|
||||
{
|
||||
@ -1058,12 +1062,15 @@ TestClient.prototype.getLayergroup = function (params, callback) {
|
||||
if (res.statusCode === 200 && self.template && self.template.layergroup && self.template.layergroup.stat_tag) {
|
||||
self.keysToDelete[`user:localhost:mapviews:stat_tag:${self.template.layergroup.stat_tag}`] = 5;
|
||||
}
|
||||
if (res.statusCode === 200 && self.mapConfig && self.mapConfig.stat_tag) {
|
||||
self.keysToDelete[`user:localhost:mapviews:stat_tag:${self.mapConfig.stat_tag}`] = 5;
|
||||
}
|
||||
}
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
return callback(null, parsedBody);
|
||||
return callback(null, parsedBody, res);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user