From f235dcdeda9394fb8de195d537bf5ab9f376e920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Tue, 9 Jun 2020 13:05:39 +0200 Subject: [PATCH] Add test --- test/acceptance/layergroupid-test.js | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/acceptance/layergroupid-test.js diff --git a/test/acceptance/layergroupid-test.js b/test/acceptance/layergroupid-test.js new file mode 100644 index 00000000..2cb8d2ca --- /dev/null +++ b/test/acceptance/layergroupid-test.js @@ -0,0 +1,66 @@ +'use strict'; + +require('../support/test-helper'); + +const assert = require('../support/assert'); +const TestClient = require('../support/test-client'); +const { parse: parseLayergroupToken } = require('../../lib/models/layergroup-token'); + +describe('layergroup id', function () { + const suites = [ + { + description: 'with empty layers should respond with cache buster equal to 0', + expectedCacheBuster: '0', + mapConfig: { + version: '1.8.0', + layers: [] + } + }, + { + description: 'with layer and dumb query (no affected tables) should respond with cache buster equal to 0', + expectedCacheBuster: '0', + mapConfig: { + version: '1.8.0', + layers: [{ + type: 'cartodb', + options: { + sql: TestClient.SQL.ONE_POINT + } + }] + } + }, + { + description: 'with layer and legit query should respond with cache buster', + expectedCacheBuster: '1234567890123', + mapConfig: { + version: '1.8.0', + layers: [{ + type: 'cartodb', + options: { + sql: 'SELECT * FROM test_table' + } + }] + } + } + ]; + + suites.forEach(({ description, expectedCacheBuster, mapConfig }) => { + it(description, function (done) { + const testClient = new TestClient(mapConfig); + + testClient.getLayergroup((err, body) => { + if (err) { + return done(err); + } + + const { layergroupid } = body; + assert.ok(typeof layergroupid === 'string'); + + const { cacheBuster } = parseLayergroupToken(layergroupid); + assert.strictEqual(cacheBuster, expectedCacheBuster); + + testClient.drain(done); + }); + }); + }); +});