@tellescope/sdk 1.69.4 → 1.70.0

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.
@@ -5074,7 +5074,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5074
5074
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
5075
5075
  weeklyAvailabilities: [
5076
5076
  {
5077
- dayOfWeekStartingSundayIndexedByZero: dayOfWeekStartingSundayIndexedByZero,
5077
+ dayOfWeekStartingSundayIndexedByZero: 0,
5078
5078
  startTimeInMinutes: 60 * 12,
5079
5079
  endTimeInMinutes: 60 * 13, // 1pm,
5080
5080
  },
@@ -5089,7 +5089,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5089
5089
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
5090
5090
  weeklyAvailabilities: [
5091
5091
  {
5092
- dayOfWeekStartingSundayIndexedByZero: dayOfWeekStartingSundayIndexedByZero,
5092
+ dayOfWeekStartingSundayIndexedByZero: 0,
5093
5093
  startTimeInMinutes: 60 * 12,
5094
5094
  endTimeInMinutes: 60 * 14, // 2pm,
5095
5095
  },
@@ -5103,7 +5103,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5103
5103
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
5104
5104
  calendarEventTemplateId: event30min.id,
5105
5105
  from: new Date(Date.now()),
5106
- to: new Date(Date.now() + 8 * 24 * 60 * 60 * 1000),
5106
+ to: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
5107
5107
  multi: true,
5108
5108
  userIds: [sdk.userInfo.id, sdkNonAdmin.userInfo.id]
5109
5109
  })];
@@ -7057,6 +7057,311 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7057
7057
  }
7058
7058
  });
7059
7059
  }); };
7060
+ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7061
+ var matchTag, dontMatchTag, matchEnduser, matchMultiTagEnduser, dontMatchEnduser, matchTicket, dontMatchTicket;
7062
+ return __generator(this, function (_a) {
7063
+ switch (_a.label) {
7064
+ case 0:
7065
+ (0, testing_1.log_header)("enduser_access_tags_tests");
7066
+ matchTag = 'Access';
7067
+ dontMatchTag = 'No Access';
7068
+ return [4 /*yield*/, sdk.api.endusers.createOne({ accessTags: [matchTag] })];
7069
+ case 1:
7070
+ matchEnduser = _a.sent();
7071
+ return [4 /*yield*/, sdk.api.endusers.createOne({ accessTags: [matchTag, dontMatchTag] })];
7072
+ case 2:
7073
+ matchMultiTagEnduser = _a.sent();
7074
+ return [4 /*yield*/, sdk.api.endusers.createOne({ accessTags: [dontMatchTag] })];
7075
+ case 3:
7076
+ dontMatchEnduser = _a.sent();
7077
+ return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: matchEnduser.id, title: 'ticket' })];
7078
+ case 4:
7079
+ matchTicket = _a.sent();
7080
+ return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: dontMatchEnduser.id, title: 'ticket' })
7081
+ // start with disabled setting an no tags on non-admin
7082
+ ];
7083
+ case 5:
7084
+ dontMatchTicket = _a.sent();
7085
+ // start with disabled setting an no tags on non-admin
7086
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [] }, { replaceObjectFields: true })];
7087
+ case 6:
7088
+ // start with disabled setting an no tags on non-admin
7089
+ _a.sent();
7090
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7091
+ settings: { endusers: { enableAccessTags: false } }
7092
+ })];
7093
+ case 7:
7094
+ _a.sent();
7095
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7096
+ case 8:
7097
+ _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7098
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, no tags, list", sdkNonAdmin.api.endusers.getSome, { onResult: function (r) { return r.length === 0; } })];
7099
+ case 9:
7100
+ _a.sent();
7101
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, handleAnyError)];
7102
+ case 10:
7103
+ _a.sent();
7104
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, dontMatchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7105
+ case 11:
7106
+ _a.sent();
7107
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, no tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7108
+ case 12:
7109
+ _a.sent();
7110
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7111
+ case 13:
7112
+ _a.sent();
7113
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting disabled, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7114
+ case 14:
7115
+ _a.sent();
7116
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7117
+ onResult: function (r) { return r.length === 0; }
7118
+ })];
7119
+ case 15:
7120
+ _a.sent();
7121
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7122
+ onResult: function (r) { return r.length === 0; }
7123
+ })
7124
+ // enable setting, disable tags
7125
+ ];
7126
+ case 16:
7127
+ _a.sent();
7128
+ // enable setting, disable tags
7129
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7130
+ settings: { endusers: { enableAccessTags: true } }
7131
+ })];
7132
+ case 17:
7133
+ // enable setting, disable tags
7134
+ _a.sent();
7135
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7136
+ case 18:
7137
+ _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7138
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, disable tags", sdkNonAdmin.api.endusers.getSome, { onResult: function (r) { return r.length === 0; } })];
7139
+ case 19:
7140
+ _a.sent();
7141
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, handleAnyError)];
7142
+ case 20:
7143
+ _a.sent();
7144
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, dontMatchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7145
+ case 21:
7146
+ _a.sent();
7147
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, no tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7148
+ case 22:
7149
+ _a.sent();
7150
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7151
+ case 23:
7152
+ _a.sent();
7153
+ return [4 /*yield*/, (0, testing_1.async_test)("enable setting, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7154
+ case 24:
7155
+ _a.sent();
7156
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7157
+ onResult: function (r) { return r.length === 0; }
7158
+ })];
7159
+ case 25:
7160
+ _a.sent();
7161
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7162
+ onResult: function (r) { return r.length === 0; }
7163
+ })
7164
+ // disable setting, enable tags
7165
+ ];
7166
+ case 26:
7167
+ _a.sent();
7168
+ // disable setting, enable tags
7169
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [matchTag] }, { replaceObjectFields: true })];
7170
+ case 27:
7171
+ // disable setting, enable tags
7172
+ _a.sent();
7173
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7174
+ settings: { endusers: { enableAccessTags: false } }
7175
+ })];
7176
+ case 28:
7177
+ _a.sent();
7178
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7179
+ case 29:
7180
+ _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7181
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, enable tags", sdkNonAdmin.api.endusers.getSome, { onResult: function (r) { return r.length === 0; } })];
7182
+ case 30:
7183
+ _a.sent();
7184
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, handleAnyError)];
7185
+ case 31:
7186
+ _a.sent();
7187
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, dontMatchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7188
+ case 32:
7189
+ _a.sent();
7190
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, enable tags, tickets", sdkNonAdmin.api.tickets.getSome, { onResult: function (r) { return r.length === 0; } })];
7191
+ case 33:
7192
+ _a.sent();
7193
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, handleAnyError)];
7194
+ case 34:
7195
+ _a.sent();
7196
+ return [4 /*yield*/, (0, testing_1.async_test)("disable setting, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7197
+ case 35:
7198
+ _a.sent();
7199
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7200
+ onResult: function (r) { return r.length === 0; }
7201
+ })];
7202
+ case 36:
7203
+ _a.sent();
7204
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7205
+ onResult: function (r) { return r.length === 0; }
7206
+ })
7207
+ // enabled setting AND tags (keeps tags enabled)
7208
+ ];
7209
+ case 37:
7210
+ _a.sent();
7211
+ // enabled setting AND tags (keeps tags enabled)
7212
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7213
+ settings: { endusers: { enableAccessTags: true } }
7214
+ })];
7215
+ case 38:
7216
+ // enabled setting AND tags (keeps tags enabled)
7217
+ _a.sent();
7218
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // ensure enableAccessTags setting stored correctly on jwt
7219
+ case 39:
7220
+ _a.sent(); // ensure enableAccessTags setting stored correctly on jwt
7221
+ return [4 /*yield*/, (0, testing_1.async_test)("Access by tag with setting works", sdkNonAdmin.api.endusers.getSome, {
7222
+ onResult: function (r) { return r.length === 2 && !r.find(function (e) { return e.id === dontMatchEnduser.id; }); }
7223
+ })];
7224
+ case 40:
7225
+ _a.sent();
7226
+ return [4 /*yield*/, (0, testing_1.async_test)("access matchEnduser", function () { return sdkNonAdmin.api.endusers.getOne(matchEnduser.id); }, passOnAnyResult)];
7227
+ case 41:
7228
+ _a.sent();
7229
+ return [4 /*yield*/, (0, testing_1.async_test)("access dontMatchEnduser bad", function () { return sdkNonAdmin.api.endusers.getOne(dontMatchEnduser.id); }, handleAnyError)];
7230
+ case 42:
7231
+ _a.sent();
7232
+ return [4 /*yield*/, (0, testing_1.async_test)("access setting, no tags, tickets", sdkNonAdmin.api.tickets.getSome, {
7233
+ onResult: function (r) { return r.length === 1 && !r.find(function (t) { return t.id === dontMatchTicket.id; }); }
7234
+ })];
7235
+ case 43:
7236
+ _a.sent();
7237
+ return [4 /*yield*/, (0, testing_1.async_test)("access, matchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(matchTicket.id); }, passOnAnyResult)];
7238
+ case 44:
7239
+ _a.sent();
7240
+ return [4 /*yield*/, (0, testing_1.async_test)("access, dontMatchEnduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(dontMatchTicket.id); }, handleAnyError)];
7241
+ case 45:
7242
+ _a.sent();
7243
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser valid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: matchEnduser.id } }); }, {
7244
+ onResult: function (r) { return r.length === 1; }
7245
+ })];
7246
+ case 46:
7247
+ _a.sent();
7248
+ return [4 /*yield*/, (0, testing_1.async_test)("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7249
+ onResult: function (r) { return r.length === 0; }
7250
+ })];
7251
+ case 47:
7252
+ _a.sent();
7253
+ return [4 /*yield*/, (0, testing_1.async_test)("Non-admin can't update tags", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'] }); }, handleAnyError)];
7254
+ case 48:
7255
+ _a.sent();
7256
+ return [4 /*yield*/, (0, testing_1.async_test)("Non-admin can't update tags (with other updates)", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'], bio: '' }); }, handleAnyError)];
7257
+ case 49:
7258
+ _a.sent();
7259
+ return [4 /*yield*/, (0, testing_1.async_test)("Non-admin can update other fields", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { bio: '' }); }, passOnAnyResult)
7260
+ // cleanup
7261
+ ];
7262
+ case 50:
7263
+ _a.sent();
7264
+ // cleanup
7265
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7266
+ settings: { endusers: { enableAccessTags: false } }
7267
+ })];
7268
+ case 51:
7269
+ // cleanup
7270
+ _a.sent();
7271
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [] }, { replaceObjectFields: true })];
7272
+ case 52:
7273
+ _a.sent();
7274
+ return [4 /*yield*/, sdkNonAdmin.refresh_session()];
7275
+ case 53:
7276
+ _a.sent();
7277
+ return [4 /*yield*/, Promise.all([
7278
+ sdk.api.endusers.deleteOne(matchEnduser.id),
7279
+ sdk.api.endusers.deleteOne(matchMultiTagEnduser.id),
7280
+ sdk.api.endusers.deleteOne(dontMatchEnduser.id),
7281
+ ])];
7282
+ case 54:
7283
+ _a.sent();
7284
+ return [2 /*return*/];
7285
+ }
7286
+ });
7287
+ }); };
7288
+ var unique_strings_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7289
+ var e;
7290
+ return __generator(this, function (_a) {
7291
+ switch (_a.label) {
7292
+ case 0:
7293
+ (0, testing_1.log_header)("unique_strings test");
7294
+ return [4 /*yield*/, sdk.api.endusers.createOne({ assignedTo: ['1', '2', '2', '1', '3'] })];
7295
+ case 1:
7296
+ e = _a.sent();
7297
+ return [4 /*yield*/, (0, testing_1.async_test)("Duplicate care team assignments are prevented", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 3 && e.assignedTo.includes('1') && e.assignedTo.includes('2') && e.assignedTo.includes('3'); } })
7298
+ // attempt to push duplicates of each
7299
+ ];
7300
+ case 2:
7301
+ _a.sent();
7302
+ // attempt to push duplicates of each
7303
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { assignedTo: ['1', '2', '3'] }, { replaceObjectFields: false })];
7304
+ case 3:
7305
+ // attempt to push duplicates of each
7306
+ _a.sent();
7307
+ return [4 /*yield*/, (0, testing_1.async_test)("Duplicate care team assignments are prevented (update)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 3 && e.assignedTo.includes('1') && e.assignedTo.includes('2') && e.assignedTo.includes('3'); } })
7308
+ // validate setting empty is allowed
7309
+ ];
7310
+ case 4:
7311
+ _a.sent();
7312
+ // validate setting empty is allowed
7313
+ return [4 /*yield*/, (0, testing_1.async_test)("Setting empty is still allowed", function () { return sdk.api.endusers.updateOne(e.id, { assignedTo: [] }, { replaceObjectFields: true }); }, passOnAnyResult)];
7314
+ case 5:
7315
+ // validate setting empty is allowed
7316
+ _a.sent();
7317
+ return [4 /*yield*/, Promise.all([
7318
+ sdk.api.endusers.deleteOne(e.id),
7319
+ ])];
7320
+ case 6: return [2 /*return*/, _a.sent()];
7321
+ }
7322
+ });
7323
+ }); };
7324
+ var marketing_email_unsubscribe_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7325
+ var e;
7326
+ return __generator(this, function (_a) {
7327
+ switch (_a.label) {
7328
+ case 0:
7329
+ (0, testing_1.log_header)("marketing_email_unsubscribe_tests");
7330
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'test@tellescope.com' })];
7331
+ case 1:
7332
+ e = _a.sent();
7333
+ return [4 /*yield*/, (0, testing_1.async_test)("Non-marketing email good", function () { return sdk.api.emails.createOne({ logOnly: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)];
7334
+ case 2:
7335
+ _a.sent();
7336
+ return [4 /*yield*/, (0, testing_1.async_test)("Marketing email good when subscribed", function () { return sdk.api.emails.createOne({ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)
7337
+ // attempt to push duplicates of each
7338
+ ];
7339
+ case 3:
7340
+ _a.sent();
7341
+ // attempt to push duplicates of each
7342
+ return [4 /*yield*/, sdk.GET('/v1/unsubscribe', { enduserId: e.id })];
7343
+ case 4:
7344
+ // attempt to push duplicates of each
7345
+ _a.sent();
7346
+ return [4 /*yield*/, (0, testing_1.async_test)("GET /v1/unsubscribe works", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { return e.unsubscribedFromMarketing === true; } })];
7347
+ case 5:
7348
+ _a.sent();
7349
+ return [4 /*yield*/, (0, testing_1.async_test)("Non-marketing email good", function () { return sdk.api.emails.createOne({ logOnly: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)];
7350
+ case 6:
7351
+ _a.sent();
7352
+ return [4 /*yield*/, (0, testing_1.async_test)("Marketing email bad when unsubscribed", function () { return sdk.api.emails.createOne({ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, handleAnyError)];
7353
+ case 7:
7354
+ _a.sent();
7355
+ return [4 /*yield*/, (0, testing_1.async_test)("Marketing email bad when unsubscribed (bulk)", function () { return sdk.api.emails.createSome([{ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }]); }, handleAnyError)];
7356
+ case 8:
7357
+ _a.sent();
7358
+ return [4 /*yield*/, Promise.all([
7359
+ sdk.api.endusers.deleteOne(e.id),
7360
+ ])];
7361
+ case 9: return [2 /*return*/, _a.sent()];
7362
+ }
7363
+ });
7364
+ }); };
7060
7365
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7061
7366
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
7062
7367
  var _h, _j;
@@ -7069,7 +7374,7 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7069
7374
  _k.sent();
7070
7375
  _k.label = 2;
7071
7376
  case 2:
7072
- _k.trys.push([2, 40, , 41]);
7377
+ _k.trys.push([2, 43, , 44]);
7073
7378
  return [4 /*yield*/, test_weighted_round_robin()];
7074
7379
  case 3:
7075
7380
  _k.sent();
@@ -7106,95 +7411,104 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7106
7411
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7107
7412
  case 10:
7108
7413
  _k.sent(); // should come right after setup tests
7109
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7414
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7110
7415
  case 11:
7111
7416
  _k.sent();
7112
- return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7417
+ return [4 /*yield*/, unique_strings_tests()];
7113
7418
  case 12:
7114
7419
  _k.sent();
7115
- return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7420
+ return [4 /*yield*/, enduser_access_tags_tests()];
7116
7421
  case 13:
7117
7422
  _k.sent();
7118
- return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7423
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7119
7424
  case 14:
7120
7425
  _k.sent();
7121
- return [4 /*yield*/, field_equals_trigger_tests()];
7426
+ return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7122
7427
  case 15:
7123
7428
  _k.sent();
7124
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7429
+ return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7125
7430
  case 16:
7126
7431
  _k.sent();
7127
- return [4 /*yield*/, role_based_access_tests()];
7432
+ return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7128
7433
  case 17:
7129
7434
  _k.sent();
7130
- return [4 /*yield*/, automation_trigger_tests()];
7435
+ return [4 /*yield*/, field_equals_trigger_tests()];
7131
7436
  case 18:
7132
7437
  _k.sent();
7133
- return [4 /*yield*/, enduser_session_tests()];
7438
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7134
7439
  case 19:
7135
7440
  _k.sent();
7136
- return [4 /*yield*/, nextReminderInMS_tests()];
7441
+ return [4 /*yield*/, role_based_access_tests()];
7137
7442
  case 20:
7138
7443
  _k.sent();
7139
- return [4 /*yield*/, search_tests()];
7444
+ return [4 /*yield*/, automation_trigger_tests()];
7140
7445
  case 21:
7141
7446
  _k.sent();
7142
- return [4 /*yield*/, wait_for_trigger_tests()];
7447
+ return [4 /*yield*/, enduser_session_tests()];
7143
7448
  case 22:
7144
7449
  _k.sent();
7145
- return [4 /*yield*/, pdf_generation()];
7450
+ return [4 /*yield*/, nextReminderInMS_tests()];
7146
7451
  case 23:
7147
7452
  _k.sent();
7148
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7453
+ return [4 /*yield*/, search_tests()];
7149
7454
  case 24:
7150
7455
  _k.sent();
7151
- return [4 /*yield*/, rate_limit_tests()];
7456
+ return [4 /*yield*/, wait_for_trigger_tests()];
7152
7457
  case 25:
7153
7458
  _k.sent();
7154
- return [4 /*yield*/, merge_enduser_tests()];
7459
+ return [4 /*yield*/, pdf_generation()];
7155
7460
  case 26:
7156
7461
  _k.sent();
7157
- return [4 /*yield*/, auto_reply_tests()];
7462
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7158
7463
  case 27:
7159
7464
  _k.sent();
7160
- return [4 /*yield*/, sub_organization_enduser_tests()];
7465
+ return [4 /*yield*/, rate_limit_tests()];
7161
7466
  case 28:
7162
7467
  _k.sent();
7163
- return [4 /*yield*/, sub_organization_tests()];
7468
+ return [4 /*yield*/, merge_enduser_tests()];
7164
7469
  case 29:
7165
7470
  _k.sent();
7166
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
7471
+ return [4 /*yield*/, auto_reply_tests()];
7167
7472
  case 30:
7168
7473
  _k.sent();
7169
- return [4 /*yield*/, generate_user_auth_tests()];
7474
+ return [4 /*yield*/, sub_organization_enduser_tests()];
7170
7475
  case 31:
7171
7476
  _k.sent();
7172
- return [4 /*yield*/, generateEnduserAuthTests()];
7477
+ return [4 /*yield*/, sub_organization_tests()];
7173
7478
  case 32:
7174
7479
  _k.sent();
7175
- return [4 /*yield*/, public_form_tests()];
7480
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
7176
7481
  case 33:
7177
7482
  _k.sent();
7178
- return [4 /*yield*/, badInputTests()];
7483
+ return [4 /*yield*/, generate_user_auth_tests()];
7179
7484
  case 34:
7180
7485
  _k.sent();
7181
- return [4 /*yield*/, filterTests()];
7486
+ return [4 /*yield*/, generateEnduserAuthTests()];
7182
7487
  case 35:
7183
7488
  _k.sent();
7184
- return [4 /*yield*/, updatesTests()];
7489
+ return [4 /*yield*/, public_form_tests()];
7185
7490
  case 36:
7186
7491
  _k.sent();
7187
- return [4 /*yield*/, threadKeyTests()];
7492
+ return [4 /*yield*/, badInputTests()];
7188
7493
  case 37:
7189
7494
  _k.sent();
7190
- return [4 /*yield*/, enduserAccessTests()];
7495
+ return [4 /*yield*/, filterTests()];
7191
7496
  case 38:
7192
7497
  _k.sent();
7193
- return [4 /*yield*/, enduser_redaction_tests()];
7498
+ return [4 /*yield*/, updatesTests()];
7194
7499
  case 39:
7195
7500
  _k.sent();
7196
- return [3 /*break*/, 41];
7501
+ return [4 /*yield*/, threadKeyTests()];
7197
7502
  case 40:
7503
+ _k.sent();
7504
+ return [4 /*yield*/, enduserAccessTests()];
7505
+ case 41:
7506
+ _k.sent();
7507
+ return [4 /*yield*/, enduser_redaction_tests()];
7508
+ case 42:
7509
+ _k.sent();
7510
+ return [3 /*break*/, 44];
7511
+ case 43:
7198
7512
  err_1 = _k.sent();
7199
7513
  console.error("Failed during custom test");
7200
7514
  if (err_1.message && err_1.info) {
@@ -7204,18 +7518,18 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7204
7518
  console.error(err_1);
7205
7519
  }
7206
7520
  process.exit(1);
7207
- return [3 /*break*/, 41];
7208
- case 41:
7521
+ return [3 /*break*/, 44];
7522
+ case 44:
7209
7523
  _a = schema_1.schema;
7210
7524
  _b = [];
7211
7525
  for (_c in _a)
7212
7526
  _b.push(_c);
7213
7527
  _i = 0;
7214
- _k.label = 42;
7215
- case 42:
7216
- if (!(_i < _b.length)) return [3 /*break*/, 45];
7528
+ _k.label = 45;
7529
+ case 45:
7530
+ if (!(_i < _b.length)) return [3 /*break*/, 48];
7217
7531
  _c = _b[_i];
7218
- if (!(_c in _a)) return [3 /*break*/, 44];
7532
+ if (!(_c in _a)) return [3 /*break*/, 47];
7219
7533
  n = _c;
7220
7534
  returnValidation = (_j = (_h = schema_1.schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
7221
7535
  return [4 /*yield*/, run_generated_tests({
@@ -7226,41 +7540,41 @@ var test_weighted_round_robin = function () { return __awaiter(void 0, void 0, v
7226
7540
  create: returnValidation // ModelFields<ClientModel>,
7227
7541
  }
7228
7542
  })];
7229
- case 43:
7543
+ case 46:
7230
7544
  _k.sent();
7231
- _k.label = 44;
7232
- case 44:
7545
+ _k.label = 47;
7546
+ case 47:
7233
7547
  _i++;
7234
- return [3 /*break*/, 42];
7235
- case 45:
7548
+ return [3 /*break*/, 45];
7549
+ case 48:
7236
7550
  _d = tests;
7237
7551
  _e = [];
7238
7552
  for (_f in _d)
7239
7553
  _e.push(_f);
7240
7554
  _g = 0;
7241
- _k.label = 46;
7242
- case 46:
7243
- if (!(_g < _e.length)) return [3 /*break*/, 51];
7555
+ _k.label = 49;
7556
+ case 49:
7557
+ if (!(_g < _e.length)) return [3 /*break*/, 54];
7244
7558
  _f = _e[_g];
7245
- if (!(_f in _d)) return [3 /*break*/, 50];
7559
+ if (!(_f in _d)) return [3 /*break*/, 53];
7246
7560
  t = _f;
7247
- _k.label = 47;
7248
- case 47:
7249
- _k.trys.push([47, 49, , 50]);
7561
+ _k.label = 50;
7562
+ case 50:
7563
+ _k.trys.push([50, 52, , 53]);
7250
7564
  return [4 /*yield*/, tests[t]()];
7251
- case 48:
7565
+ case 51:
7252
7566
  _k.sent();
7253
- return [3 /*break*/, 50];
7254
- case 49:
7567
+ return [3 /*break*/, 53];
7568
+ case 52:
7255
7569
  err_2 = _k.sent();
7256
7570
  console.error("Error running test:");
7257
7571
  console.error(err_2);
7258
7572
  process.exit(1);
7259
- return [3 /*break*/, 50];
7260
- case 50:
7573
+ return [3 /*break*/, 53];
7574
+ case 53:
7261
7575
  _g++;
7262
- return [3 /*break*/, 46];
7263
- case 51:
7576
+ return [3 /*break*/, 49];
7577
+ case 54:
7264
7578
  process.exit();
7265
7579
  return [2 /*return*/];
7266
7580
  }