Преглед изворни кода

Merge pull request #19411 from overleaf/ii-split-tests-helpers

[web] Move split test helper methods to a separate file

GitOrigin-RevId: 9bcb429f2debf8f7ff4b071e32c9cf0038459b97
ilkin-overleaf пре 2 година
родитељ
комит
c005e99a3e
1 измењених фајлова са 60 додато и 0 уклоњено
  1. 60 0
      services/web/test/acceptance/src/helpers/SplitTestHelper.js

+ 60 - 0
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,
+}