|
|
@@ -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,
|
|
|
+}
|