diff --git a/services/web/test/acceptance/src/helpers/SplitTestHelper.js b/services/web/test/acceptance/src/helpers/SplitTestHelper.js new file mode 100644 index 0000000000..f29ddc0f16 --- /dev/null +++ b/services/web/test/acceptance/src/helpers/SplitTestHelper.js @@ -0,0 +1,60 @@ +const { assert } = require('chai') +const { CacheFlow } = require('cache-flow') + +const sendStaffRequest = async function ( + staffUser, + { method, path, payload, clearCache = true } +) { + const response = await staffUser.doRequest(method, { + uri: path, + json: payload, + }) + if (clearCache) { + await CacheFlow.reset('split-test') + } + return response +} + +const createTest = async function (staffUser, payload) { + const response = await sendStaffRequest(staffUser, { + method: 'POST', + path: '/admin/api/split-test/create', + payload, + }) + return response.body +} + +const updateTestConfig = async function (staffUser, payload) { + const response = await sendStaffRequest(staffUser, { + method: 'POST', + path: '/admin/api/split-test/update-config', + payload, + }) + return response.body +} + +const expectResponse = async function ( + staffUser, + { method, path, payload }, + { status, body, excluding, excludingEvery } +) { + const result = await sendStaffRequest(staffUser, { method, path, payload }) + + assert.equal(result.response.statusCode, status) + if (body) { + if (excludingEvery) { + assert.deepEqualExcludingEvery(result.body, body, excludingEvery) + } else if (excluding) { + assert.deepEqualExcludingEvery(result.body, body, excluding) + } else { + assert.deepEqual(result.body, body) + } + } +} + +module.exports = { + sendStaffRequest, + createTest, + updateTestConfig, + expectResponse, +}