@tellescope/sdk 1.67.0 → 1.67.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/sdk.d.ts +1 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +1 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +530 -57
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/cjs/tests/webhooks_tests.js +11 -8
- package/lib/cjs/tests/webhooks_tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +1 -0
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +2 -0
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +1 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +530 -57
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/esm/tests/webhooks_tests.js +11 -8
- package/lib/esm/tests/webhooks_tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/sdk.ts +4 -0
- package/src/tests/tests.ts +411 -1
- package/src/tests/webhooks_tests.ts +1 -1
- package/test_generated.pdf +0 -0
package/lib/cjs/tests/tests.js
CHANGED
|
@@ -6044,16 +6044,486 @@ var nextReminderInMS_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
6044
6044
|
}
|
|
6045
6045
|
});
|
|
6046
6046
|
}); };
|
|
6047
|
+
var pollForResults = function (f, evaluate, intervalInMS, iterations) {
|
|
6048
|
+
if (intervalInMS === void 0) { intervalInMS = 500; }
|
|
6049
|
+
if (iterations === void 0) { iterations = 20; }
|
|
6050
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
6051
|
+
var i, result;
|
|
6052
|
+
return __generator(this, function (_a) {
|
|
6053
|
+
switch (_a.label) {
|
|
6054
|
+
case 0:
|
|
6055
|
+
i = 0;
|
|
6056
|
+
_a.label = 1;
|
|
6057
|
+
case 1:
|
|
6058
|
+
if (!(i < iterations)) return [3 /*break*/, 5];
|
|
6059
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, intervalInMS)];
|
|
6060
|
+
case 2:
|
|
6061
|
+
_a.sent();
|
|
6062
|
+
return [4 /*yield*/, f()];
|
|
6063
|
+
case 3:
|
|
6064
|
+
result = _a.sent();
|
|
6065
|
+
if (evaluate(result))
|
|
6066
|
+
return [2 /*return*/, result];
|
|
6067
|
+
_a.label = 4;
|
|
6068
|
+
case 4:
|
|
6069
|
+
i++;
|
|
6070
|
+
return [3 /*break*/, 1];
|
|
6071
|
+
case 5: throw new Error("failed pollForResults");
|
|
6072
|
+
}
|
|
6073
|
+
});
|
|
6074
|
+
});
|
|
6075
|
+
};
|
|
6047
6076
|
var test_ticket_automation_assignment_and_optimization = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
6048
|
-
var _a, _b;
|
|
6077
|
+
var users, journey, foregroundTestCounter, testForegroundTicket, backgroundTestCounter, testBackgroundTicket, enduser, _a, _b;
|
|
6049
6078
|
return __generator(this, function (_c) {
|
|
6050
6079
|
switch (_c.label) {
|
|
6051
6080
|
case 0:
|
|
6052
|
-
|
|
6053
|
-
return [4 /*yield*/, sdk.api.users.getSome(
|
|
6081
|
+
(0, testing_1.log_header)("Ticket Automation / Assignment Tests");
|
|
6082
|
+
return [4 /*yield*/, sdk.api.users.getSome()];
|
|
6054
6083
|
case 1:
|
|
6055
|
-
|
|
6056
|
-
|
|
6084
|
+
users = _c.sent();
|
|
6085
|
+
if (users.length < 3)
|
|
6086
|
+
throw new Error("Must have at least 3 users to detect invalid assignment");
|
|
6087
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, { tags: ['tag1', 'tag2'] })];
|
|
6088
|
+
case 2:
|
|
6089
|
+
_c.sent();
|
|
6090
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['tag1', 'tag3'] })];
|
|
6091
|
+
case 3:
|
|
6092
|
+
_c.sent();
|
|
6093
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: "Testing" })];
|
|
6094
|
+
case 4:
|
|
6095
|
+
journey = _c.sent();
|
|
6096
|
+
foregroundTestCounter = 0;
|
|
6097
|
+
testForegroundTicket = function (_a) {
|
|
6098
|
+
var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser, closedForReason = _a.closedForReason, testDelayedChild = _a.testDelayedChild;
|
|
6099
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
6100
|
+
var e, _b, step, statusStep, child, ticket;
|
|
6101
|
+
var _c;
|
|
6102
|
+
return __generator(this, function (_d) {
|
|
6103
|
+
switch (_d.label) {
|
|
6104
|
+
case 0:
|
|
6105
|
+
_b = enduser;
|
|
6106
|
+
if (_b) return [3 /*break*/, 2];
|
|
6107
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ assignedTo: assignedTo, journeys: (_c = {}, _c[journey.id] = '', _c) })];
|
|
6108
|
+
case 1:
|
|
6109
|
+
_b = (_d.sent());
|
|
6110
|
+
_d.label = 2;
|
|
6111
|
+
case 2:
|
|
6112
|
+
e = _b;
|
|
6113
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
6114
|
+
action: { type: 'createTicket', info: __assign(__assign({}, info), { title: 'background ticket' }) },
|
|
6115
|
+
events: [{
|
|
6116
|
+
type: 'ticketCompleted',
|
|
6117
|
+
info: closedForReason ? { automationStepId: constants_1.PLACEHOLDER_ID, closedForReason: closedForReason } : { automationStepId: constants_1.PLACEHOLDER_ID }
|
|
6118
|
+
}],
|
|
6119
|
+
journeyId: journey.id,
|
|
6120
|
+
})];
|
|
6121
|
+
case 3:
|
|
6122
|
+
step = _d.sent();
|
|
6123
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
6124
|
+
action: { type: 'setEnduserStatus', info: { status: 'Test Status' } },
|
|
6125
|
+
events: [{
|
|
6126
|
+
type: 'ticketCompleted',
|
|
6127
|
+
info: closedForReason ? { automationStepId: constants_1.PLACEHOLDER_ID, closedForReason: closedForReason } : { automationStepId: constants_1.PLACEHOLDER_ID }
|
|
6128
|
+
}],
|
|
6129
|
+
journeyId: journey.id,
|
|
6130
|
+
})];
|
|
6131
|
+
case 4:
|
|
6132
|
+
statusStep = _d.sent();
|
|
6133
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
6134
|
+
action: { type: 'setEnduserStatus', info: { status: 'Test Status' } },
|
|
6135
|
+
events: [{
|
|
6136
|
+
type: 'afterAction',
|
|
6137
|
+
info: {
|
|
6138
|
+
automationStepId: step.id,
|
|
6139
|
+
delay: 0, delayInMS: 0, unit: 'Days',
|
|
6140
|
+
}
|
|
6141
|
+
}],
|
|
6142
|
+
journeyId: journey.id,
|
|
6143
|
+
})];
|
|
6144
|
+
case 5:
|
|
6145
|
+
child = _d.sent();
|
|
6146
|
+
return [4 /*yield*/, sdk.api.tickets.createOne({
|
|
6147
|
+
title: 'foreground ticket',
|
|
6148
|
+
enduserId: e.id,
|
|
6149
|
+
automationStepId: constants_1.PLACEHOLDER_ID,
|
|
6150
|
+
journeyId: journey.id,
|
|
6151
|
+
owner: validOwners[0],
|
|
6152
|
+
closedForReason: closedForReason,
|
|
6153
|
+
})];
|
|
6154
|
+
case 6:
|
|
6155
|
+
ticket = _d.sent();
|
|
6156
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Foreground ticket assignment ".concat(++foregroundTestCounter), function () { return sdk.api.tickets.close_ticket({ ticketId: ticket.id, closedForReason: closedForReason }); }, { onResult: function (_a) {
|
|
6157
|
+
var generated = _a.generated;
|
|
6158
|
+
return !!(generated === null || generated === void 0 ? void 0 : generated.owner) && validOwners.includes(generated.owner);
|
|
6159
|
+
} })];
|
|
6160
|
+
case 7:
|
|
6161
|
+
_d.sent();
|
|
6162
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Foreground ticket nop, no duplicates", function () { return sdk.api.automated_actions.getSome({ filter: { automationStepId: step.id } }); }, { onResult: function (steps) { return steps.length === 1 && !!steps[0].isNOP; } })];
|
|
6163
|
+
case 8:
|
|
6164
|
+
_d.sent();
|
|
6165
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Background action queued, no duplicates", function () { return sdk.api.automated_actions.getSome({ filter: { automationStepId: statusStep.id } }); }, {
|
|
6166
|
+
onResult: function (steps) { return steps.length === 1 && !steps[0].isNOP; }
|
|
6167
|
+
})
|
|
6168
|
+
// verify that ticket generated by close_ticket goes on to generate its own delayed actions
|
|
6169
|
+
];
|
|
6170
|
+
case 9:
|
|
6171
|
+
_d.sent();
|
|
6172
|
+
if (!testDelayedChild) return [3 /*break*/, 11];
|
|
6173
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Delayed child ticket", function () { return pollForResults(function () { return sdk.api.automated_actions.getSome({ filter: { automationStepId: child.id } }); }, function (t) { return !!t.length; }); }, { onResult: function (steps) { return steps.length === 1 && !steps[0].isNOP; } })];
|
|
6174
|
+
case 10:
|
|
6175
|
+
_d.sent();
|
|
6176
|
+
_d.label = 11;
|
|
6177
|
+
case 11: return [4 /*yield*/, Promise.all([
|
|
6178
|
+
sdk.api.endusers.deleteOne(e.id),
|
|
6179
|
+
sdk.api.automation_steps.deleteOne(step.id),
|
|
6180
|
+
sdk.api.automation_steps.deleteOne(statusStep.id),
|
|
6181
|
+
sdk.api.automation_steps.deleteOne(child.id),
|
|
6182
|
+
])];
|
|
6183
|
+
case 12:
|
|
6184
|
+
_d.sent();
|
|
6185
|
+
return [2 /*return*/];
|
|
6186
|
+
}
|
|
6187
|
+
});
|
|
6188
|
+
});
|
|
6189
|
+
};
|
|
6190
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6191
|
+
assignedTo: [],
|
|
6192
|
+
info: {
|
|
6193
|
+
assignmentStrategy: { type: 'default', info: {} },
|
|
6194
|
+
defaultAssignee: sdk.userInfo.id
|
|
6195
|
+
},
|
|
6196
|
+
validOwners: [sdk.userInfo.id],
|
|
6197
|
+
testDelayedChild: true,
|
|
6198
|
+
})];
|
|
6199
|
+
case 5:
|
|
6200
|
+
_c.sent();
|
|
6201
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6202
|
+
assignedTo: [],
|
|
6203
|
+
info: {
|
|
6204
|
+
assignmentStrategy: { type: 'default', info: {} },
|
|
6205
|
+
defaultAssignee: sdk.userInfo.id
|
|
6206
|
+
},
|
|
6207
|
+
validOwners: [sdk.userInfo.id],
|
|
6208
|
+
closedForReason: "closedForReason test",
|
|
6209
|
+
testDelayedChild: true,
|
|
6210
|
+
})];
|
|
6211
|
+
case 6:
|
|
6212
|
+
_c.sent();
|
|
6213
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6214
|
+
assignedTo: [],
|
|
6215
|
+
info: {
|
|
6216
|
+
assignmentStrategy: { type: 'default', info: {} },
|
|
6217
|
+
defaultAssignee: sdkNonAdmin.userInfo.id
|
|
6218
|
+
},
|
|
6219
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6220
|
+
})];
|
|
6221
|
+
case 7:
|
|
6222
|
+
_c.sent();
|
|
6223
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6224
|
+
assignedTo: [],
|
|
6225
|
+
info: {
|
|
6226
|
+
assignmentStrategy: { type: 'previous-owner', info: {} },
|
|
6227
|
+
defaultAssignee: sdk.userInfo.id
|
|
6228
|
+
},
|
|
6229
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6230
|
+
})];
|
|
6231
|
+
case 8:
|
|
6232
|
+
_c.sent();
|
|
6233
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6234
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6235
|
+
info: {
|
|
6236
|
+
assignmentStrategy: { type: 'care-team-primary', info: {} },
|
|
6237
|
+
defaultAssignee: sdk.userInfo.id
|
|
6238
|
+
},
|
|
6239
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6240
|
+
})];
|
|
6241
|
+
case 9:
|
|
6242
|
+
_c.sent();
|
|
6243
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6244
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6245
|
+
info: {
|
|
6246
|
+
assignmentStrategy: { type: 'care-team-random', info: {} },
|
|
6247
|
+
defaultAssignee: sdk.userInfo.id
|
|
6248
|
+
},
|
|
6249
|
+
validOwners: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6250
|
+
})];
|
|
6251
|
+
case 10:
|
|
6252
|
+
_c.sent();
|
|
6253
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6254
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6255
|
+
info: {
|
|
6256
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag1'] } },
|
|
6257
|
+
defaultAssignee: sdkNonAdmin.userInfo.id,
|
|
6258
|
+
},
|
|
6259
|
+
validOwners: [sdk.userInfo.id, sdkNonAdmin.userInfo.id,],
|
|
6260
|
+
})];
|
|
6261
|
+
case 11:
|
|
6262
|
+
_c.sent();
|
|
6263
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6264
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6265
|
+
info: {
|
|
6266
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag2'] } },
|
|
6267
|
+
defaultAssignee: sdkNonAdmin.userInfo.id
|
|
6268
|
+
},
|
|
6269
|
+
validOwners: [sdk.userInfo.id],
|
|
6270
|
+
})];
|
|
6271
|
+
case 12:
|
|
6272
|
+
_c.sent();
|
|
6273
|
+
return [4 /*yield*/, testForegroundTicket({
|
|
6274
|
+
assignedTo: [],
|
|
6275
|
+
info: {
|
|
6276
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag3'] } },
|
|
6277
|
+
defaultAssignee: sdk.userInfo.id
|
|
6278
|
+
},
|
|
6279
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6280
|
+
})];
|
|
6281
|
+
case 13:
|
|
6282
|
+
_c.sent();
|
|
6283
|
+
backgroundTestCounter = 0;
|
|
6284
|
+
testBackgroundTicket = function (_a) {
|
|
6285
|
+
var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser;
|
|
6286
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
6287
|
+
var e, _b;
|
|
6288
|
+
return __generator(this, function (_c) {
|
|
6289
|
+
switch (_c.label) {
|
|
6290
|
+
case 0:
|
|
6291
|
+
_b = enduser;
|
|
6292
|
+
if (_b) return [3 /*break*/, 2];
|
|
6293
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ assignedTo: assignedTo })];
|
|
6294
|
+
case 1:
|
|
6295
|
+
_b = (_c.sent());
|
|
6296
|
+
_c.label = 2;
|
|
6297
|
+
case 2:
|
|
6298
|
+
e = _b;
|
|
6299
|
+
return [4 /*yield*/, sdk.api.automated_actions.createOne({
|
|
6300
|
+
action: { type: 'createTicket', info: __assign(__assign({}, info), { title: 'background ticket' }) },
|
|
6301
|
+
automationStepId: constants_1.PLACEHOLDER_ID,
|
|
6302
|
+
enduserId: e.id,
|
|
6303
|
+
event: { type: 'afterAction', info: { automationStepId: constants_1.PLACEHOLDER_ID, delay: 0, delayInMS: 0, unit: 'Days' } },
|
|
6304
|
+
journeyId: journey.id,
|
|
6305
|
+
status: 'active',
|
|
6306
|
+
processAfter: Date.now(),
|
|
6307
|
+
})];
|
|
6308
|
+
case 3:
|
|
6309
|
+
_c.sent();
|
|
6310
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Background ticket assignment ".concat(++backgroundTestCounter), function () { return pollForResults(function () { return sdk.api.tickets.getSome({ filter: { enduserId: e.id, title: 'background ticket' } }); }, function (t) { return !!t.length; }); }, { onResult: function (ts) { return ts.length === 1 && !!ts[0].owner && validOwners.includes(ts[0].owner); } })];
|
|
6311
|
+
case 4:
|
|
6312
|
+
_c.sent();
|
|
6313
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(e.id)];
|
|
6314
|
+
case 5:
|
|
6315
|
+
_c.sent();
|
|
6316
|
+
return [2 /*return*/];
|
|
6317
|
+
}
|
|
6318
|
+
});
|
|
6319
|
+
});
|
|
6320
|
+
};
|
|
6321
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6322
|
+
assignedTo: [],
|
|
6323
|
+
info: {
|
|
6324
|
+
assignmentStrategy: { type: 'default', info: {} },
|
|
6325
|
+
defaultAssignee: sdk.userInfo.id
|
|
6326
|
+
},
|
|
6327
|
+
validOwners: [sdk.userInfo.id],
|
|
6328
|
+
})];
|
|
6329
|
+
case 14:
|
|
6330
|
+
_c.sent();
|
|
6331
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6332
|
+
assignedTo: [],
|
|
6333
|
+
info: {
|
|
6334
|
+
assignmentStrategy: { type: 'default', info: {} },
|
|
6335
|
+
defaultAssignee: sdkNonAdmin.userInfo.id
|
|
6336
|
+
},
|
|
6337
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6338
|
+
})
|
|
6339
|
+
// ticket needs existing enduser, previous owner for test to work
|
|
6340
|
+
];
|
|
6341
|
+
case 15:
|
|
6342
|
+
_c.sent();
|
|
6343
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'previous-owner-test' })];
|
|
6344
|
+
case 16:
|
|
6345
|
+
enduser = _c.sent();
|
|
6346
|
+
return [4 /*yield*/, sdk.api.tickets.createOne({
|
|
6347
|
+
// title should be different than 'background test' so it doesn't create false positive test
|
|
6348
|
+
title: 'previous-owner-test', enduserId: enduser.id, journeyId: journey.id, owner: sdkNonAdmin.userInfo.id
|
|
6349
|
+
})];
|
|
6350
|
+
case 17:
|
|
6351
|
+
_c.sent();
|
|
6352
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6353
|
+
assignedTo: [],
|
|
6354
|
+
enduser: enduser,
|
|
6355
|
+
info: {
|
|
6356
|
+
assignmentStrategy: { type: 'previous-owner', info: {} },
|
|
6357
|
+
defaultAssignee: sdk.userInfo.id
|
|
6358
|
+
},
|
|
6359
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6360
|
+
})];
|
|
6361
|
+
case 18:
|
|
6362
|
+
_c.sent();
|
|
6363
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6364
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6365
|
+
info: {
|
|
6366
|
+
assignmentStrategy: { type: 'care-team-primary', info: {} },
|
|
6367
|
+
defaultAssignee: sdk.userInfo.id
|
|
6368
|
+
},
|
|
6369
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6370
|
+
})];
|
|
6371
|
+
case 19:
|
|
6372
|
+
_c.sent();
|
|
6373
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6374
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6375
|
+
info: {
|
|
6376
|
+
assignmentStrategy: { type: 'care-team-random', info: {} },
|
|
6377
|
+
defaultAssignee: sdk.userInfo.id
|
|
6378
|
+
},
|
|
6379
|
+
validOwners: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6380
|
+
})];
|
|
6381
|
+
case 20:
|
|
6382
|
+
_c.sent();
|
|
6383
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6384
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6385
|
+
info: {
|
|
6386
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag1'] } },
|
|
6387
|
+
defaultAssignee: sdkNonAdmin.userInfo.id,
|
|
6388
|
+
},
|
|
6389
|
+
validOwners: [sdk.userInfo.id, sdkNonAdmin.userInfo.id,],
|
|
6390
|
+
})];
|
|
6391
|
+
case 21:
|
|
6392
|
+
_c.sent();
|
|
6393
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6394
|
+
assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
|
|
6395
|
+
info: {
|
|
6396
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag2'] } },
|
|
6397
|
+
defaultAssignee: sdkNonAdmin.userInfo.id
|
|
6398
|
+
},
|
|
6399
|
+
validOwners: [sdk.userInfo.id],
|
|
6400
|
+
})];
|
|
6401
|
+
case 22:
|
|
6402
|
+
_c.sent();
|
|
6403
|
+
return [4 /*yield*/, testBackgroundTicket({
|
|
6404
|
+
assignedTo: [],
|
|
6405
|
+
info: {
|
|
6406
|
+
assignmentStrategy: { type: 'by-tags', info: { qualifier: 'One Of', values: ['tag3'] } },
|
|
6407
|
+
defaultAssignee: sdk.userInfo.id
|
|
6408
|
+
},
|
|
6409
|
+
validOwners: [sdkNonAdmin.userInfo.id],
|
|
6410
|
+
})];
|
|
6411
|
+
case 23:
|
|
6412
|
+
_c.sent();
|
|
6413
|
+
_b = (_a = Promise).all;
|
|
6414
|
+
return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id)];
|
|
6415
|
+
case 24: return [2 /*return*/, _b.apply(_a, [[
|
|
6416
|
+
_c.sent()
|
|
6417
|
+
]])];
|
|
6418
|
+
}
|
|
6419
|
+
});
|
|
6420
|
+
}); };
|
|
6421
|
+
var field_equals_trigger_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
6422
|
+
var journey, step, existsTriggerTags, existsTriggerAddToJourney, equalsTriggerTags, equalsTriggerAddToJourney, conditionalTriggerTags, conditionalTriggerAddToJourney, endusers;
|
|
6423
|
+
return __generator(this, function (_a) {
|
|
6424
|
+
switch (_a.label) {
|
|
6425
|
+
case 0:
|
|
6426
|
+
(0, testing_1.log_header)("Field Equals / Trigger Tests");
|
|
6427
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test' })];
|
|
6428
|
+
case 1:
|
|
6429
|
+
journey = _a.sent();
|
|
6430
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
6431
|
+
journeyId: journey.id,
|
|
6432
|
+
events: [{
|
|
6433
|
+
type: 'onJourneyStart',
|
|
6434
|
+
info: {}
|
|
6435
|
+
}],
|
|
6436
|
+
action: {
|
|
6437
|
+
type: 'addEnduserTags',
|
|
6438
|
+
info: { tags: ['Journey Tag'] }
|
|
6439
|
+
},
|
|
6440
|
+
})];
|
|
6441
|
+
case 2:
|
|
6442
|
+
step = _a.sent();
|
|
6443
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6444
|
+
event: { type: 'Field Equals', info: { field: 'fname', value: "$exists" } },
|
|
6445
|
+
action: { type: 'Add Tags', info: { tags: ["Tag"] } },
|
|
6446
|
+
status: "Active",
|
|
6447
|
+
title: 'existsTriggerTags',
|
|
6448
|
+
})];
|
|
6449
|
+
case 3:
|
|
6450
|
+
existsTriggerTags = _a.sent();
|
|
6451
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6452
|
+
event: { type: 'Field Equals', info: { field: 'fname', value: "$exists" } },
|
|
6453
|
+
action: { type: 'Add To Journey', info: { journeyId: journey.id } },
|
|
6454
|
+
status: "Active",
|
|
6455
|
+
title: 'existsTriggerAddToJourney',
|
|
6456
|
+
})];
|
|
6457
|
+
case 4:
|
|
6458
|
+
existsTriggerAddToJourney = _a.sent();
|
|
6459
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6460
|
+
event: { type: 'Field Equals', info: { field: 'lname', value: "Explicit" } },
|
|
6461
|
+
action: { type: 'Add Tags', info: { tags: ["Tag"] } },
|
|
6462
|
+
status: "Active",
|
|
6463
|
+
title: 'equalsTriggerTags',
|
|
6464
|
+
})];
|
|
6465
|
+
case 5:
|
|
6466
|
+
equalsTriggerTags = _a.sent();
|
|
6467
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6468
|
+
event: { type: 'Field Equals', info: { field: 'lname', value: "Explicit" } },
|
|
6469
|
+
action: { type: 'Add To Journey', info: { journeyId: journey.id } },
|
|
6470
|
+
enduserCondition: { $and: [{ condition: { lname: 'Explicit' } }] },
|
|
6471
|
+
status: "Active",
|
|
6472
|
+
title: 'equalsTriggerAddToJourney',
|
|
6473
|
+
})];
|
|
6474
|
+
case 6:
|
|
6475
|
+
equalsTriggerAddToJourney = _a.sent();
|
|
6476
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6477
|
+
event: { type: 'Field Equals', info: { field: 'mname', value: "$exists" } },
|
|
6478
|
+
action: { type: 'Add Tags', info: { tags: ["Tag"] } },
|
|
6479
|
+
status: "Active",
|
|
6480
|
+
enduserCondition: { $and: [{ condition: { lname: 'Conditional' } }] },
|
|
6481
|
+
title: 'conditionalTriggerTags',
|
|
6482
|
+
})];
|
|
6483
|
+
case 7:
|
|
6484
|
+
conditionalTriggerTags = _a.sent();
|
|
6485
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
6486
|
+
event: { type: 'Field Equals', info: { field: 'mname', value: "$exists" } },
|
|
6487
|
+
action: { type: 'Add To Journey', info: { journeyId: journey.id } },
|
|
6488
|
+
enduserCondition: { $and: [{ condition: { lname: 'Conditional' } }] },
|
|
6489
|
+
status: "Active",
|
|
6490
|
+
title: 'conditionalTriggerAddToJourney',
|
|
6491
|
+
})
|
|
6492
|
+
// names are capitalized automatically, so make sure that is reflected in conditions
|
|
6493
|
+
];
|
|
6494
|
+
case 8:
|
|
6495
|
+
conditionalTriggerAddToJourney = _a.sent();
|
|
6496
|
+
return [4 /*yield*/, sdk.api.endusers.createSome([
|
|
6497
|
+
{ fname: 'Test' },
|
|
6498
|
+
{ fname: 'Test' },
|
|
6499
|
+
{ lname: 'Test' },
|
|
6500
|
+
{ lname: 'Explicit' },
|
|
6501
|
+
{ mname: 'Test' },
|
|
6502
|
+
{ mname: 'Test' },
|
|
6503
|
+
{ mname: 'Test', lname: 'Nonconditional' },
|
|
6504
|
+
{ mname: 'Test', lname: 'Conditional' },
|
|
6505
|
+
])];
|
|
6506
|
+
case 9:
|
|
6507
|
+
endusers = (_a.sent()).created;
|
|
6508
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Journey and tags set", function () { return pollForResults(sdk.api.endusers.getSome, function (es) { return (es.filter(function (e) { var _a, _b; return ((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Tag')) && ((_b = e.journeys) === null || _b === void 0 ? void 0 : _b[journey.id]) !== undefined; }).length === 4); }, 200, 25); }, passOnAnyResult)];
|
|
6509
|
+
case 10:
|
|
6510
|
+
_a.sent();
|
|
6511
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Background action queued for journey", function () { return pollForResults(sdk.api.automated_actions.getSome, function (as) { return (as.filter(function (a) { return a.automationStepId === step.id && endusers.find(function (e) { return e.id === a.enduserId; }); }).length === 4); }, 200, 25); }, passOnAnyResult)];
|
|
6512
|
+
case 11:
|
|
6513
|
+
_a.sent();
|
|
6514
|
+
return [4 /*yield*/, (0, testing_1.async_test)("Endusers have trigger ids", sdk.api.endusers.getSome, { onResult: function (es) { return es.filter(function (e) { var _a; return ((_a = e.triggerIds) === null || _a === void 0 ? void 0 : _a.length) === 2; }).length === 4; } })];
|
|
6515
|
+
case 12:
|
|
6516
|
+
_a.sent();
|
|
6517
|
+
return [4 /*yield*/, Promise.all(__spreadArray([
|
|
6518
|
+
sdk.api.journeys.deleteOne(journey.id),
|
|
6519
|
+
sdk.api.automation_triggers.deleteOne(existsTriggerTags.id),
|
|
6520
|
+
sdk.api.automation_triggers.deleteOne(existsTriggerAddToJourney.id),
|
|
6521
|
+
sdk.api.automation_triggers.deleteOne(equalsTriggerAddToJourney.id),
|
|
6522
|
+
sdk.api.automation_triggers.deleteOne(equalsTriggerTags.id),
|
|
6523
|
+
sdk.api.automation_triggers.deleteOne(conditionalTriggerTags.id),
|
|
6524
|
+
sdk.api.automation_triggers.deleteOne(conditionalTriggerAddToJourney.id)
|
|
6525
|
+
], endusers.map(function (e) { return sdk.api.endusers.deleteOne(e.id); }), true))];
|
|
6526
|
+
case 13: return [2 /*return*/, _a.sent()];
|
|
6057
6527
|
}
|
|
6058
6528
|
});
|
|
6059
6529
|
}); };
|
|
@@ -6160,7 +6630,7 @@ var validate_schema = function () {
|
|
|
6160
6630
|
_k.sent();
|
|
6161
6631
|
_k.label = 2;
|
|
6162
6632
|
case 2:
|
|
6163
|
-
_k.trys.push([2,
|
|
6633
|
+
_k.trys.push([2, 36, , 37]);
|
|
6164
6634
|
return [4 /*yield*/, validate_schema()];
|
|
6165
6635
|
case 3:
|
|
6166
6636
|
_k.sent();
|
|
@@ -6194,83 +6664,86 @@ var validate_schema = function () {
|
|
|
6194
6664
|
return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
|
|
6195
6665
|
case 9:
|
|
6196
6666
|
_k.sent(); // should come right after setup tests
|
|
6197
|
-
return [4 /*yield*/,
|
|
6667
|
+
return [4 /*yield*/, field_equals_trigger_tests()];
|
|
6198
6668
|
case 10:
|
|
6199
6669
|
_k.sent();
|
|
6200
|
-
return [4 /*yield*/,
|
|
6670
|
+
return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
|
|
6201
6671
|
case 11:
|
|
6202
6672
|
_k.sent();
|
|
6203
|
-
return [4 /*yield*/,
|
|
6673
|
+
return [4 /*yield*/, role_based_access_tests()];
|
|
6204
6674
|
case 12:
|
|
6205
6675
|
_k.sent();
|
|
6206
|
-
return [4 /*yield*/,
|
|
6676
|
+
return [4 /*yield*/, automation_trigger_tests()];
|
|
6207
6677
|
case 13:
|
|
6208
6678
|
_k.sent();
|
|
6209
|
-
return [4 /*yield*/,
|
|
6679
|
+
return [4 /*yield*/, enduser_session_tests()];
|
|
6210
6680
|
case 14:
|
|
6211
6681
|
_k.sent();
|
|
6212
|
-
return [4 /*yield*/,
|
|
6682
|
+
return [4 /*yield*/, nextReminderInMS_tests()];
|
|
6213
6683
|
case 15:
|
|
6214
6684
|
_k.sent();
|
|
6215
|
-
return [4 /*yield*/,
|
|
6685
|
+
return [4 /*yield*/, search_tests()];
|
|
6216
6686
|
case 16:
|
|
6217
6687
|
_k.sent();
|
|
6218
|
-
return [4 /*yield*/,
|
|
6688
|
+
return [4 /*yield*/, wait_for_trigger_tests()];
|
|
6219
6689
|
case 17:
|
|
6220
6690
|
_k.sent();
|
|
6221
|
-
return [4 /*yield*/,
|
|
6691
|
+
return [4 /*yield*/, pdf_generation()];
|
|
6222
6692
|
case 18:
|
|
6223
6693
|
_k.sent();
|
|
6224
|
-
return [4 /*yield*/,
|
|
6694
|
+
return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
|
|
6225
6695
|
case 19:
|
|
6226
6696
|
_k.sent();
|
|
6227
|
-
return [4 /*yield*/,
|
|
6697
|
+
return [4 /*yield*/, rate_limit_tests()];
|
|
6228
6698
|
case 20:
|
|
6229
6699
|
_k.sent();
|
|
6230
|
-
return [4 /*yield*/, (
|
|
6700
|
+
return [4 /*yield*/, merge_enduser_tests()];
|
|
6231
6701
|
case 21:
|
|
6232
6702
|
_k.sent();
|
|
6233
|
-
return [4 /*yield*/,
|
|
6703
|
+
return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
|
|
6234
6704
|
case 22:
|
|
6235
6705
|
_k.sent();
|
|
6236
|
-
return [4 /*yield*/,
|
|
6706
|
+
return [4 /*yield*/, auto_reply_tests()];
|
|
6237
6707
|
case 23:
|
|
6238
6708
|
_k.sent();
|
|
6239
|
-
return [4 /*yield*/,
|
|
6709
|
+
return [4 /*yield*/, sub_organization_enduser_tests()];
|
|
6240
6710
|
case 24:
|
|
6241
6711
|
_k.sent();
|
|
6242
|
-
return [4 /*yield*/, (
|
|
6712
|
+
return [4 /*yield*/, sub_organization_tests()];
|
|
6243
6713
|
case 25:
|
|
6244
6714
|
_k.sent();
|
|
6245
|
-
return [4 /*yield*/,
|
|
6715
|
+
return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
|
|
6246
6716
|
case 26:
|
|
6247
6717
|
_k.sent();
|
|
6248
|
-
return [4 /*yield*/,
|
|
6718
|
+
return [4 /*yield*/, generate_user_auth_tests()];
|
|
6249
6719
|
case 27:
|
|
6250
6720
|
_k.sent();
|
|
6251
|
-
return [4 /*yield*/,
|
|
6721
|
+
return [4 /*yield*/, generateEnduserAuthTests()];
|
|
6252
6722
|
case 28:
|
|
6253
6723
|
_k.sent();
|
|
6254
|
-
return [4 /*yield*/,
|
|
6724
|
+
return [4 /*yield*/, public_form_tests()];
|
|
6255
6725
|
case 29:
|
|
6256
6726
|
_k.sent();
|
|
6257
|
-
return [4 /*yield*/,
|
|
6727
|
+
return [4 /*yield*/, badInputTests()];
|
|
6258
6728
|
case 30:
|
|
6259
6729
|
_k.sent();
|
|
6260
|
-
return [4 /*yield*/,
|
|
6730
|
+
return [4 /*yield*/, filterTests()];
|
|
6261
6731
|
case 31:
|
|
6262
6732
|
_k.sent();
|
|
6263
|
-
return [4 /*yield*/,
|
|
6733
|
+
return [4 /*yield*/, updatesTests()];
|
|
6264
6734
|
case 32:
|
|
6265
6735
|
_k.sent();
|
|
6266
|
-
return [4 /*yield*/,
|
|
6736
|
+
return [4 /*yield*/, threadKeyTests()];
|
|
6267
6737
|
case 33:
|
|
6268
6738
|
_k.sent();
|
|
6269
|
-
return [4 /*yield*/,
|
|
6739
|
+
return [4 /*yield*/, enduserAccessTests()];
|
|
6270
6740
|
case 34:
|
|
6271
6741
|
_k.sent();
|
|
6272
|
-
return [
|
|
6742
|
+
return [4 /*yield*/, enduser_redaction_tests()];
|
|
6273
6743
|
case 35:
|
|
6744
|
+
_k.sent();
|
|
6745
|
+
return [3 /*break*/, 37];
|
|
6746
|
+
case 36:
|
|
6274
6747
|
err_1 = _k.sent();
|
|
6275
6748
|
console.error("Failed during custom test");
|
|
6276
6749
|
if (err_1.message && err_1.info) {
|
|
@@ -6280,18 +6753,18 @@ var validate_schema = function () {
|
|
|
6280
6753
|
console.error(err_1);
|
|
6281
6754
|
}
|
|
6282
6755
|
process.exit(1);
|
|
6283
|
-
return [3 /*break*/,
|
|
6284
|
-
case
|
|
6756
|
+
return [3 /*break*/, 37];
|
|
6757
|
+
case 37:
|
|
6285
6758
|
_a = schema_1.schema;
|
|
6286
6759
|
_b = [];
|
|
6287
6760
|
for (_c in _a)
|
|
6288
6761
|
_b.push(_c);
|
|
6289
6762
|
_i = 0;
|
|
6290
|
-
_k.label =
|
|
6291
|
-
case
|
|
6292
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
6763
|
+
_k.label = 38;
|
|
6764
|
+
case 38:
|
|
6765
|
+
if (!(_i < _b.length)) return [3 /*break*/, 41];
|
|
6293
6766
|
_c = _b[_i];
|
|
6294
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
6767
|
+
if (!(_c in _a)) return [3 /*break*/, 40];
|
|
6295
6768
|
n = _c;
|
|
6296
6769
|
returnValidation = (_j = (_h = schema_1.schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
|
|
6297
6770
|
return [4 /*yield*/, run_generated_tests({
|
|
@@ -6302,41 +6775,41 @@ var validate_schema = function () {
|
|
|
6302
6775
|
create: returnValidation // ModelFields<ClientModel>,
|
|
6303
6776
|
}
|
|
6304
6777
|
})];
|
|
6305
|
-
case 38:
|
|
6306
|
-
_k.sent();
|
|
6307
|
-
_k.label = 39;
|
|
6308
6778
|
case 39:
|
|
6309
|
-
|
|
6310
|
-
|
|
6779
|
+
_k.sent();
|
|
6780
|
+
_k.label = 40;
|
|
6311
6781
|
case 40:
|
|
6782
|
+
_i++;
|
|
6783
|
+
return [3 /*break*/, 38];
|
|
6784
|
+
case 41:
|
|
6312
6785
|
_d = tests;
|
|
6313
6786
|
_e = [];
|
|
6314
6787
|
for (_f in _d)
|
|
6315
6788
|
_e.push(_f);
|
|
6316
6789
|
_g = 0;
|
|
6317
|
-
_k.label = 41;
|
|
6318
|
-
case 41:
|
|
6319
|
-
if (!(_g < _e.length)) return [3 /*break*/, 46];
|
|
6320
|
-
_f = _e[_g];
|
|
6321
|
-
if (!(_f in _d)) return [3 /*break*/, 45];
|
|
6322
|
-
t = _f;
|
|
6323
6790
|
_k.label = 42;
|
|
6324
6791
|
case 42:
|
|
6325
|
-
|
|
6326
|
-
|
|
6792
|
+
if (!(_g < _e.length)) return [3 /*break*/, 47];
|
|
6793
|
+
_f = _e[_g];
|
|
6794
|
+
if (!(_f in _d)) return [3 /*break*/, 46];
|
|
6795
|
+
t = _f;
|
|
6796
|
+
_k.label = 43;
|
|
6327
6797
|
case 43:
|
|
6328
|
-
_k.
|
|
6329
|
-
return [
|
|
6798
|
+
_k.trys.push([43, 45, , 46]);
|
|
6799
|
+
return [4 /*yield*/, tests[t]()];
|
|
6330
6800
|
case 44:
|
|
6801
|
+
_k.sent();
|
|
6802
|
+
return [3 /*break*/, 46];
|
|
6803
|
+
case 45:
|
|
6331
6804
|
err_2 = _k.sent();
|
|
6332
6805
|
console.error("Error running test:");
|
|
6333
6806
|
console.error(err_2);
|
|
6334
6807
|
process.exit(1);
|
|
6335
|
-
return [3 /*break*/,
|
|
6336
|
-
case 45:
|
|
6337
|
-
_g++;
|
|
6338
|
-
return [3 /*break*/, 41];
|
|
6808
|
+
return [3 /*break*/, 46];
|
|
6339
6809
|
case 46:
|
|
6810
|
+
_g++;
|
|
6811
|
+
return [3 /*break*/, 42];
|
|
6812
|
+
case 47:
|
|
6340
6813
|
process.exit();
|
|
6341
6814
|
return [2 /*return*/];
|
|
6342
6815
|
}
|