@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.
@@ -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
- _b = (_a = console).log;
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
- _b.apply(_a, [(_c.sent()).length]);
6056
- return [2 /*return*/];
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, 35, , 36]);
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*/, test_ticket_automation_assignment_and_optimization()];
6667
+ return [4 /*yield*/, field_equals_trigger_tests()];
6198
6668
  case 10:
6199
6669
  _k.sent();
6200
- return [4 /*yield*/, role_based_access_tests()];
6670
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
6201
6671
  case 11:
6202
6672
  _k.sent();
6203
- return [4 /*yield*/, automation_trigger_tests()];
6673
+ return [4 /*yield*/, role_based_access_tests()];
6204
6674
  case 12:
6205
6675
  _k.sent();
6206
- return [4 /*yield*/, enduser_session_tests()];
6676
+ return [4 /*yield*/, automation_trigger_tests()];
6207
6677
  case 13:
6208
6678
  _k.sent();
6209
- return [4 /*yield*/, nextReminderInMS_tests()];
6679
+ return [4 /*yield*/, enduser_session_tests()];
6210
6680
  case 14:
6211
6681
  _k.sent();
6212
- return [4 /*yield*/, search_tests()];
6682
+ return [4 /*yield*/, nextReminderInMS_tests()];
6213
6683
  case 15:
6214
6684
  _k.sent();
6215
- return [4 /*yield*/, wait_for_trigger_tests()];
6685
+ return [4 /*yield*/, search_tests()];
6216
6686
  case 16:
6217
6687
  _k.sent();
6218
- return [4 /*yield*/, pdf_generation()];
6688
+ return [4 /*yield*/, wait_for_trigger_tests()];
6219
6689
  case 17:
6220
6690
  _k.sent();
6221
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6691
+ return [4 /*yield*/, pdf_generation()];
6222
6692
  case 18:
6223
6693
  _k.sent();
6224
- return [4 /*yield*/, rate_limit_tests()];
6694
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6225
6695
  case 19:
6226
6696
  _k.sent();
6227
- return [4 /*yield*/, merge_enduser_tests()];
6697
+ return [4 /*yield*/, rate_limit_tests()];
6228
6698
  case 20:
6229
6699
  _k.sent();
6230
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
6700
+ return [4 /*yield*/, merge_enduser_tests()];
6231
6701
  case 21:
6232
6702
  _k.sent();
6233
- return [4 /*yield*/, auto_reply_tests()];
6703
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
6234
6704
  case 22:
6235
6705
  _k.sent();
6236
- return [4 /*yield*/, sub_organization_enduser_tests()];
6706
+ return [4 /*yield*/, auto_reply_tests()];
6237
6707
  case 23:
6238
6708
  _k.sent();
6239
- return [4 /*yield*/, sub_organization_tests()];
6709
+ return [4 /*yield*/, sub_organization_enduser_tests()];
6240
6710
  case 24:
6241
6711
  _k.sent();
6242
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
6712
+ return [4 /*yield*/, sub_organization_tests()];
6243
6713
  case 25:
6244
6714
  _k.sent();
6245
- return [4 /*yield*/, generate_user_auth_tests()];
6715
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
6246
6716
  case 26:
6247
6717
  _k.sent();
6248
- return [4 /*yield*/, generateEnduserAuthTests()];
6718
+ return [4 /*yield*/, generate_user_auth_tests()];
6249
6719
  case 27:
6250
6720
  _k.sent();
6251
- return [4 /*yield*/, public_form_tests()];
6721
+ return [4 /*yield*/, generateEnduserAuthTests()];
6252
6722
  case 28:
6253
6723
  _k.sent();
6254
- return [4 /*yield*/, badInputTests()];
6724
+ return [4 /*yield*/, public_form_tests()];
6255
6725
  case 29:
6256
6726
  _k.sent();
6257
- return [4 /*yield*/, filterTests()];
6727
+ return [4 /*yield*/, badInputTests()];
6258
6728
  case 30:
6259
6729
  _k.sent();
6260
- return [4 /*yield*/, updatesTests()];
6730
+ return [4 /*yield*/, filterTests()];
6261
6731
  case 31:
6262
6732
  _k.sent();
6263
- return [4 /*yield*/, threadKeyTests()];
6733
+ return [4 /*yield*/, updatesTests()];
6264
6734
  case 32:
6265
6735
  _k.sent();
6266
- return [4 /*yield*/, enduserAccessTests()];
6736
+ return [4 /*yield*/, threadKeyTests()];
6267
6737
  case 33:
6268
6738
  _k.sent();
6269
- return [4 /*yield*/, enduser_redaction_tests()];
6739
+ return [4 /*yield*/, enduserAccessTests()];
6270
6740
  case 34:
6271
6741
  _k.sent();
6272
- return [3 /*break*/, 36];
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*/, 36];
6284
- case 36:
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 = 37;
6291
- case 37:
6292
- if (!(_i < _b.length)) return [3 /*break*/, 40];
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*/, 39];
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
- _i++;
6310
- return [3 /*break*/, 37];
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
- _k.trys.push([42, 44, , 45]);
6326
- return [4 /*yield*/, tests[t]()];
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.sent();
6329
- return [3 /*break*/, 45];
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*/, 45];
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
  }