From c005e99a3e29d02bf407c756028c6e6e0136fdba Mon Sep 17 00:00:00 2001 From: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:28:43 +0300 Subject: [PATCH] Merge pull request #19411 from overleaf/ii-split-tests-helpers [web] Move split test helper methods to a separate file GitOrigin-RevId: 9bcb429f2debf8f7ff4b071e32c9cf0038459b97 --- .../acceptance/src/helpers/SplitTestHelper.js | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 services/web/test/acceptance/src/helpers/SplitTestHelper.js 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, +}