@tellescope/sdk 1.255.19 → 1.256.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.
Files changed (82) hide show
  1. package/lib/cjs/tests/api_tests/custom_dashboards.test.d.ts.map +1 -1
  2. package/lib/cjs/tests/api_tests/custom_dashboards.test.js +99 -8
  3. package/lib/cjs/tests/api_tests/custom_dashboards.test.js.map +1 -1
  4. package/lib/cjs/tests/api_tests/default_summary_journey.test.d.ts.map +1 -0
  5. package/lib/cjs/tests/api_tests/default_summary_journey.test.js.map +1 -0
  6. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts +6 -0
  7. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -0
  8. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js +278 -0
  9. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js.map +1 -0
  10. package/lib/cjs/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
  11. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js +212 -33
  12. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  13. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  14. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js +85 -9
  15. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  16. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.d.ts +2 -0
  17. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.d.ts.map +1 -0
  18. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.js +242 -0
  19. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.js.map +1 -0
  20. package/lib/cjs/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.d.ts +29 -0
  21. package/lib/cjs/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.d.ts.map +1 -0
  22. package/lib/cjs/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.js +443 -0
  23. package/lib/cjs/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.js.map +1 -0
  24. package/lib/cjs/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.d.ts +35 -0
  25. package/lib/cjs/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.d.ts.map +1 -0
  26. package/lib/cjs/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.js +231 -0
  27. package/lib/cjs/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.js.map +1 -0
  28. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts.map +1 -1
  29. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js +524 -294
  30. package/lib/cjs/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js.map +1 -1
  31. package/lib/cjs/tests/tests.d.ts.map +1 -1
  32. package/lib/cjs/tests/tests.js +431 -230
  33. package/lib/cjs/tests/tests.js.map +1 -1
  34. package/lib/esm/enduser.d.ts +0 -1
  35. package/lib/esm/enduser.d.ts.map +1 -1
  36. package/lib/esm/sdk.d.ts +2 -3
  37. package/lib/esm/sdk.d.ts.map +1 -1
  38. package/lib/esm/session.d.ts +0 -1
  39. package/lib/esm/session.d.ts.map +1 -1
  40. package/lib/esm/tests/api_tests/custom_dashboards.test.d.ts.map +1 -1
  41. package/lib/esm/tests/api_tests/custom_dashboards.test.js +99 -8
  42. package/lib/esm/tests/api_tests/custom_dashboards.test.js.map +1 -1
  43. package/lib/esm/tests/api_tests/default_summary_journey.test.d.ts.map +1 -0
  44. package/lib/esm/tests/api_tests/default_summary_journey.test.js.map +1 -0
  45. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts +6 -0
  46. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -0
  47. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js +248 -0
  48. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js.map +1 -0
  49. package/lib/esm/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
  50. package/lib/esm/tests/api_tests/openloop_webhooks.test.js +213 -34
  51. package/lib/esm/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  52. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  53. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js +85 -9
  54. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  55. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.d.ts +2 -0
  56. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.d.ts.map +1 -0
  57. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.js +238 -0
  58. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.js.map +1 -0
  59. package/lib/esm/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.d.ts +29 -0
  60. package/lib/esm/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.d.ts.map +1 -0
  61. package/lib/esm/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.js +436 -0
  62. package/lib/esm/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.js.map +1 -0
  63. package/lib/esm/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.d.ts +35 -0
  64. package/lib/esm/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.d.ts.map +1 -0
  65. package/lib/esm/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.js +224 -0
  66. package/lib/esm/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.js.map +1 -0
  67. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.d.ts.map +1 -1
  68. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js +524 -294
  69. package/lib/esm/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.js.map +1 -1
  70. package/lib/esm/tests/tests.d.ts.map +1 -1
  71. package/lib/esm/tests/tests.js +431 -230
  72. package/lib/esm/tests/tests.js.map +1 -1
  73. package/lib/tsconfig.tsbuildinfo +1 -1
  74. package/package.json +10 -10
  75. package/src/tests/api_tests/custom_dashboards.test.ts +92 -0
  76. package/src/tests/api_tests/file_download_unicode_names.test.ts +223 -0
  77. package/src/tests/api_tests/openloop_webhooks.test.ts +138 -0
  78. package/src/tests/api_tests/phone_calls_cold_transfer.test.ts +54 -0
  79. package/src/tests/api_tests/security/F-0013-sanitize-user-html-with-iframes.test.ts +215 -0
  80. package/src/tests/api_tests/security/F-0166-allowed-paths-wildcard-bypass.test.ts +215 -0
  81. package/src/tests/tests.ts +212 -1
  82. package/test_generated.pdf +0 -0
@@ -77,6 +77,7 @@ import { user_portal_settings_tests } from "./api_tests/user_portal_settings.tes
77
77
  import { integrations_redacted_tests } from "./api_tests/integrations_redacted.test";
78
78
  import { healthie_multi_integration_tests } from "./api_tests/healthie_multi_integration.test";
79
79
  import { get_some_projection_tests } from "./api_tests/get_some_projection.test";
80
+ import { file_download_unicode_names_tests } from "./api_tests/file_download_unicode_names.test";
80
81
  import { mdb_sort_tests } from "./api_tests/mdb_sort.test";
81
82
  import { create_user_notifications_trigger_tests } from "./api_tests/create_user_notifications_trigger.test";
82
83
  import { inbox_thread_assignment_updates_tests } from "./api_tests/inbox_thread_assignment_updates.test";
@@ -129,6 +130,7 @@ import { invite_user_enumeration_tests } from "./api_tests/security/F-0007-invit
129
130
  import { register_business_id_injection_tests } from "./api_tests/security/register_business_id_injection.test";
130
131
  import { handle_incoming_communication_cross_tenant_tests } from "./api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test";
131
132
  import { sanitize_user_html_xss_tests } from "./api_tests/security/F-0013-sanitize-user-html.test";
133
+ import { sanitize_user_html_with_iframes_tests } from "./api_tests/security/F-0013-sanitize-user-html-with-iframes.test";
132
134
  import { prototype_pollution_tests } from "./api_tests/security/F-0016-prototype-pollution.test";
133
135
  import { enduser_cross_create_tests } from "./api_tests/security/F-0116-F-0119-enduser-cross-create.test";
134
136
  import { globalunique_leak_tests } from "./api_tests/security/F-0145-globalunique-leak.test";
@@ -9254,9 +9256,9 @@ var auto_reply_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9254
9256
  });
9255
9257
  }); };
9256
9258
  var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
9257
- var stripeCustomerId, stripeKey, _a, source, destination, otherEnduser, _b, emailToMove, email, _c, eventToMove, event, _d, roomToMove, room, chatToMove, chat;
9258
- return __generator(this, function (_f) {
9259
- switch (_f.label) {
9259
+ var stripeCustomerId, stripeKey, _a, source, destination, otherEnduser, _b, emailToMove, email, _c, eventToMove, event, _d, roomToMove, room, chatToMove, chat, _f, noInsuranceSource, noInsuranceDestination;
9260
+ return __generator(this, function (_g) {
9261
+ switch (_g.label) {
9260
9262
  case 0:
9261
9263
  log_header("Merge Endusers");
9262
9264
  stripeCustomerId = 'example_cu_id';
@@ -9277,39 +9279,39 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
9277
9279
  { email: 'other@tellescope.com' },
9278
9280
  ])];
9279
9281
  case 1:
9280
- _a = (_f.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
9282
+ _a = (_g.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
9281
9283
  return [4 /*yield*/, sdk.api.emails.createSome([
9282
9284
  { enduserId: source.id, subject: 'subject', logOnly: true, textContent: 'email' },
9283
9285
  { enduserId: otherEnduser.id, subject: 'subject', logOnly: true, textContent: 'email' },
9284
9286
  ])];
9285
9287
  case 2:
9286
- _b = (_f.sent()).created, emailToMove = _b[0], email = _b[1];
9288
+ _b = (_g.sent()).created, emailToMove = _b[0], email = _b[1];
9287
9289
  return [4 /*yield*/, sdk.api.calendar_events.createSome([
9288
9290
  { attendees: [{ type: 'enduser', id: source.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
9289
9291
  { attendees: [{ type: 'enduser', id: otherEnduser.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
9290
9292
  ])];
9291
9293
  case 3:
9292
- _c = (_f.sent()).created, eventToMove = _c[0], event = _c[1];
9294
+ _c = (_g.sent()).created, eventToMove = _c[0], event = _c[1];
9293
9295
  return [4 /*yield*/, sdk.api.chat_rooms.createSome([
9294
9296
  { enduserIds: [source.id], title: 'title' },
9295
9297
  { enduserIds: [otherEnduser.id], title: 'title' },
9296
9298
  ])];
9297
9299
  case 4:
9298
- _d = (_f.sent()).created, roomToMove = _d[0], room = _d[1];
9300
+ _d = (_g.sent()).created, roomToMove = _d[0], room = _d[1];
9299
9301
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomToMove.id, senderId: source.id, message: 'test' })];
9300
9302
  case 5:
9301
- chatToMove = _f.sent();
9303
+ chatToMove = _g.sent();
9302
9304
  return [4 /*yield*/, sdk.api.chats.createOne({
9303
9305
  roomId: room.id, senderId: otherEnduser.id, message: 'test'
9304
9306
  })];
9305
9307
  case 6:
9306
- chat = _f.sent();
9308
+ chat = _g.sent();
9307
9309
  return [4 /*yield*/, sdk.api.endusers.merge({ sourceEnduserId: source.id, destinationEnduserId: destination.id })];
9308
9310
  case 7:
9309
- _f.sent();
9311
+ _g.sent();
9310
9312
  return [4 /*yield*/, async_test("Source is deleted", function () { return sdk.api.endusers.getOne(source.id); }, handleAnyError)];
9311
9313
  case 8:
9312
- _f.sent();
9314
+ _g.sent();
9313
9315
  return [4 /*yield*/, async_test("Destination merged", function () { return sdk.api.endusers.getOne(destination.id); }, { onResult: function (e) {
9314
9316
  var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m;
9315
9317
  return (e.email === destination.email
@@ -9329,39 +9331,88 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
9329
9331
  && ((_m = e.insuranceSecondary) === null || _m === void 0 ? void 0 : _m.memberId) === 'src-secondary');
9330
9332
  } })];
9331
9333
  case 9:
9332
- _f.sent();
9334
+ _g.sent();
9333
9335
  return [4 /*yield*/, async_test("Other email is unchanged", function () { return sdk.api.emails.getOne(email.id); }, { onResult: function (e) { return e.enduserId === otherEnduser.id; } })];
9334
9336
  case 10:
9335
- _f.sent();
9337
+ _g.sent();
9336
9338
  return [4 /*yield*/, async_test("Other event is unchanged", function () { return sdk.api.calendar_events.getOne(event.id); }, { onResult: function (e) { var _a; return ((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!e.attendees.find(function (e) { return e.id === otherEnduser.id; }); } })];
9337
9339
  case 11:
9338
- _f.sent();
9340
+ _g.sent();
9339
9341
  return [4 /*yield*/, async_test("Other room is unchanged", function () { return sdk.api.chat_rooms.getOne(room.id); }, { onResult: function (e) { var _a, _b; return ((_a = room.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.find(function (id) { return id === otherEnduser.id; })); } })];
9340
9342
  case 12:
9341
- _f.sent();
9343
+ _g.sent();
9342
9344
  return [4 /*yield*/, async_test("Other chat is unchanged", function () { return sdk.api.chats.getOne(chat.id); }, { onResult: function (e) { return e.senderId === otherEnduser.id; } })];
9343
9345
  case 13:
9344
- _f.sent();
9346
+ _g.sent();
9345
9347
  return [4 /*yield*/, async_test("Email moved", function () { return sdk.api.emails.getOne(emailToMove.id); }, { onResult: function (e) { return e.enduserId === destination.id; } })];
9346
9348
  case 14:
9347
- _f.sent();
9349
+ _g.sent();
9348
9350
  return [4 /*yield*/, async_test("Chat moved", function () { return sdk.api.chats.getOne(chatToMove.id); }, { onResult: function (e) { return e.senderId === destination.id; } })];
9349
9351
  case 15:
9350
- _f.sent();
9352
+ _g.sent();
9351
9353
  return [4 /*yield*/, async_test("Room moved", function () { return sdk.api.chat_rooms.getOne(roomToMove.id); }, { onResult: function (e) { var _a, _b; return ((_a = e.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.includes(destination.id)); } })];
9352
9354
  case 16:
9353
- _f.sent();
9354
- return [4 /*yield*/, async_test("Event moved", function () { return sdk.api.calendar_events.getOne(eventToMove.id); }, { onResult: function (e) { var _a; return e.attendees.length === 1 && !!((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.find(function (a) { return a.id === destination.id; })); } })];
9355
+ _g.sent();
9356
+ return [4 /*yield*/, async_test("Event moved", function () { return sdk.api.calendar_events.getOne(eventToMove.id); }, { onResult: function (e) { var _a; return e.attendees.length === 1 && !!((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.find(function (a) { return a.id === destination.id; })); } })
9357
+ // merging two endusers that both lack insurance must leave the fields absent, NOT null.
9358
+ // a stored null breaks every later partial update: those get flattened to dotted paths
9359
+ // ('insurance.memberId'), and MongoDB rejects a dotted $set under a null parent
9360
+ ];
9355
9361
  case 17:
9356
- _f.sent();
9362
+ _g.sent();
9363
+ return [4 /*yield*/, sdk.api.endusers.createSome([
9364
+ { email: 'noins-source@tellescope.com', fname: 'no', lname: 'insurance' },
9365
+ { email: 'noins-destination@tellescope.com' },
9366
+ ])];
9367
+ case 18:
9368
+ _f = (_g.sent()).created, noInsuranceSource = _f[0], noInsuranceDestination = _f[1];
9369
+ return [4 /*yield*/, sdk.api.endusers.merge({
9370
+ sourceEnduserId: noInsuranceSource.id,
9371
+ destinationEnduserId: noInsuranceDestination.id,
9372
+ })];
9373
+ case 19:
9374
+ _g.sent();
9375
+ return [4 /*yield*/, async_test("Merged endusers have no null insurance", function () { return sdk.api.endusers.getOne(noInsuranceDestination.id); }, { onResult: function (e) { return e.insurance === undefined && e.insuranceSecondary === undefined; } })];
9376
+ case 20:
9377
+ _g.sent();
9378
+ return [4 /*yield*/, async_test("Partial insurance update applies after merge", function () { return __awaiter(void 0, void 0, void 0, function () {
9379
+ return __generator(this, function (_a) {
9380
+ switch (_a.label) {
9381
+ case 0: return [4 /*yield*/, sdk.api.endusers.updateOne(noInsuranceDestination.id, {
9382
+ insurance: { memberId: 'M1', payerName: 'Test Payer' },
9383
+ })]; // no replaceObjectFields, matching the standard update from the UI
9384
+ case 1:
9385
+ _a.sent(); // no replaceObjectFields, matching the standard update from the UI
9386
+ return [4 /*yield*/, sdk.api.endusers.getOne(noInsuranceDestination.id)];
9387
+ case 2: // no replaceObjectFields, matching the standard update from the UI
9388
+ return [2 /*return*/, _a.sent()];
9389
+ }
9390
+ });
9391
+ }); }, { onResult: function (e) { var _a, _b; return ((_a = e.insurance) === null || _a === void 0 ? void 0 : _a.memberId) === 'M1' && ((_b = e.insurance) === null || _b === void 0 ? void 0 : _b.payerName) === 'Test Payer'; } })];
9392
+ case 21:
9393
+ _g.sent();
9394
+ return [4 /*yield*/, async_test("Second partial insurance update merges", function () { return __awaiter(void 0, void 0, void 0, function () {
9395
+ return __generator(this, function (_a) {
9396
+ switch (_a.label) {
9397
+ case 0: return [4 /*yield*/, sdk.api.endusers.updateOne(noInsuranceDestination.id, { insurance: { groupNumber: 'G1' } })];
9398
+ case 1:
9399
+ _a.sent();
9400
+ return [4 /*yield*/, sdk.api.endusers.getOne(noInsuranceDestination.id)];
9401
+ case 2: return [2 /*return*/, _a.sent()];
9402
+ }
9403
+ });
9404
+ }); }, { onResult: function (e) { var _a, _b; return ((_a = e.insurance) === null || _a === void 0 ? void 0 : _a.groupNumber) === 'G1' && ((_b = e.insurance) === null || _b === void 0 ? void 0 : _b.memberId) === 'M1'; } })];
9405
+ case 22:
9406
+ _g.sent();
9357
9407
  return [4 /*yield*/, Promise.all([
9358
9408
  sdk.api.endusers.deleteOne(destination.id),
9359
9409
  sdk.api.endusers.deleteOne(otherEnduser.id),
9410
+ sdk.api.endusers.deleteOne(noInsuranceDestination.id),
9360
9411
  sdk.api.calendar_events.deleteOne(event.id),
9361
9412
  sdk.api.calendar_events.deleteOne(eventToMove.id),
9362
9413
  ])];
9363
- case 18:
9364
- _f.sent();
9414
+ case 23:
9415
+ _g.sent();
9365
9416
  return [2 /*return*/];
9366
9417
  }
9367
9418
  });
@@ -10034,31 +10085,32 @@ var pollForResults = function (f, evaluate, intervalInMS, iterations, shouldErro
10034
10085
  });
10035
10086
  };
10036
10087
  var test_ticket_automation_assignment_and_optimization = function () { return __awaiter(void 0, void 0, void 0, function () {
10037
- var users, journey, queue, foregroundTestCounter, testForegroundTicket, backgroundTestCounter, testBackgroundTicket, enduser, _a, _b, _c;
10038
- return __generator(this, function (_d) {
10039
- switch (_d.label) {
10088
+ var users, journey, queue, foregroundTestCounter, testForegroundTicket, backgroundTestCounter, testBackgroundTicket, enduser, HOST_A, HOST_B, appointmentHostInfo, createHostedEvent, e, older, newer, e, older, newer, e, deleted, hosted, e, enduserOnly, hosted, e, older, newer, _a, _b, _c;
10089
+ var _d;
10090
+ return __generator(this, function (_f) {
10091
+ switch (_f.label) {
10040
10092
  case 0:
10041
10093
  log_header("Ticket Automation / Assignment Tests");
10042
10094
  return [4 /*yield*/, sdk.api.users.getSome()];
10043
10095
  case 1:
10044
- users = _d.sent();
10096
+ users = _f.sent();
10045
10097
  if (users.length < 3)
10046
10098
  throw new Error("Must have at least 3 users to detect invalid assignment");
10047
10099
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, { tags: ['tag1', 'tag2'] })];
10048
10100
  case 2:
10049
- _d.sent();
10101
+ _f.sent();
10050
10102
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['tag1', 'tag3'] })];
10051
10103
  case 3:
10052
- _d.sent();
10104
+ _f.sent();
10053
10105
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: "Testing" })];
10054
10106
  case 4:
10055
- journey = _d.sent();
10107
+ journey = _f.sent();
10056
10108
  return [4 /*yield*/, sdk.api.ticket_queues.createOne({ title: 'test queue', userIds: [] })];
10057
10109
  case 5:
10058
- queue = _d.sent();
10110
+ queue = _f.sent();
10059
10111
  foregroundTestCounter = 0;
10060
10112
  testForegroundTicket = function (_a) {
10061
- var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser, closedForReason = _a.closedForReason, testDelayedChild = _a.testDelayedChild;
10113
+ var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser, closedForReason = _a.closedForReason, testDelayedChild = _a.testDelayedChild, calendarEventId = _a.calendarEventId, ticketOwner = _a.ticketOwner;
10062
10114
  return __awaiter(void 0, void 0, void 0, function () {
10063
10115
  var e, _b, step, statusStep, child, ticket;
10064
10116
  var _c;
@@ -10106,14 +10158,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10106
10158
  })];
10107
10159
  case 5:
10108
10160
  child = _d.sent();
10109
- return [4 /*yield*/, sdk.api.tickets.createOne({
10110
- title: 'foreground ticket',
10111
- enduserId: e.id,
10112
- automationStepId: PLACEHOLDER_ID,
10113
- journeyId: journey.id,
10114
- owner: validOwners[0],
10115
- closedForReason: closedForReason,
10116
- })];
10161
+ return [4 /*yield*/, sdk.api.tickets.createOne(__assign({ title: 'foreground ticket', enduserId: e.id, automationStepId: PLACEHOLDER_ID, journeyId: journey.id, owner: ticketOwner !== null && ticketOwner !== void 0 ? ticketOwner : validOwners[0], closedForReason: closedForReason }, (calendarEventId ? { calendarEventId: calendarEventId } : {})))];
10117
10162
  case 6:
10118
10163
  ticket = _d.sent();
10119
10164
  return [4 /*yield*/, async_test("Foreground ticket assignment ".concat(++foregroundTestCounter), function () { return sdk.api.tickets.close_ticket({ ticketId: ticket.id, closedForReason: closedForReason }); }, { onResult: function (_a) {
@@ -10162,7 +10207,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10162
10207
  testDelayedChild: true,
10163
10208
  })];
10164
10209
  case 6:
10165
- _d.sent();
10210
+ _f.sent();
10166
10211
  return [4 /*yield*/, testForegroundTicket({
10167
10212
  assignedTo: [],
10168
10213
  info: {
@@ -10173,7 +10218,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10173
10218
  testDelayedChild: true,
10174
10219
  })];
10175
10220
  case 7:
10176
- _d.sent();
10221
+ _f.sent();
10177
10222
  return [4 /*yield*/, testForegroundTicket({
10178
10223
  assignedTo: [],
10179
10224
  info: {
@@ -10185,7 +10230,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10185
10230
  testDelayedChild: true,
10186
10231
  })];
10187
10232
  case 8:
10188
- _d.sent();
10233
+ _f.sent();
10189
10234
  return [4 /*yield*/, testForegroundTicket({
10190
10235
  assignedTo: [],
10191
10236
  info: {
@@ -10195,7 +10240,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10195
10240
  validOwners: [sdkNonAdmin.userInfo.id],
10196
10241
  })];
10197
10242
  case 9:
10198
- _d.sent();
10243
+ _f.sent();
10199
10244
  return [4 /*yield*/, testForegroundTicket({
10200
10245
  assignedTo: [],
10201
10246
  info: {
@@ -10205,7 +10250,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10205
10250
  validOwners: [sdkNonAdmin.userInfo.id],
10206
10251
  })];
10207
10252
  case 10:
10208
- _d.sent();
10253
+ _f.sent();
10209
10254
  return [4 /*yield*/, testForegroundTicket({
10210
10255
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10211
10256
  info: {
@@ -10215,7 +10260,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10215
10260
  validOwners: [sdkNonAdmin.userInfo.id],
10216
10261
  })];
10217
10262
  case 11:
10218
- _d.sent();
10263
+ _f.sent();
10219
10264
  return [4 /*yield*/, testForegroundTicket({
10220
10265
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10221
10266
  info: {
@@ -10225,7 +10270,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10225
10270
  validOwners: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10226
10271
  })];
10227
10272
  case 12:
10228
- _d.sent();
10273
+ _f.sent();
10229
10274
  return [4 /*yield*/, testForegroundTicket({
10230
10275
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10231
10276
  info: {
@@ -10235,7 +10280,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10235
10280
  validOwners: [sdk.userInfo.id, sdkNonAdmin.userInfo.id,],
10236
10281
  })];
10237
10282
  case 13:
10238
- _d.sent();
10283
+ _f.sent();
10239
10284
  return [4 /*yield*/, testForegroundTicket({
10240
10285
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10241
10286
  info: {
@@ -10245,7 +10290,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10245
10290
  validOwners: [sdk.userInfo.id],
10246
10291
  })];
10247
10292
  case 14:
10248
- _d.sent();
10293
+ _f.sent();
10249
10294
  return [4 /*yield*/, testForegroundTicket({
10250
10295
  assignedTo: [],
10251
10296
  info: {
@@ -10255,10 +10300,10 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10255
10300
  validOwners: [sdkNonAdmin.userInfo.id],
10256
10301
  })];
10257
10302
  case 15:
10258
- _d.sent();
10303
+ _f.sent();
10259
10304
  backgroundTestCounter = 0;
10260
10305
  testBackgroundTicket = function (_a) {
10261
- var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser;
10306
+ var assignedTo = _a.assignedTo, info = _a.info, validOwners = _a.validOwners, enduser = _a.enduser, journeyContext = _a.journeyContext;
10262
10307
  return __awaiter(void 0, void 0, void 0, function () {
10263
10308
  var e, _b;
10264
10309
  return __generator(this, function (_c) {
@@ -10272,15 +10317,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10272
10317
  _c.label = 2;
10273
10318
  case 2:
10274
10319
  e = _b;
10275
- return [4 /*yield*/, sdk.api.automated_actions.createOne({
10276
- action: { type: 'createTicket', info: __assign(__assign({}, info), { title: 'background ticket' }) },
10277
- automationStepId: PLACEHOLDER_ID,
10278
- enduserId: e.id,
10279
- event: { type: 'afterAction', info: { automationStepId: PLACEHOLDER_ID, delay: 0, delayInMS: 0, unit: 'Days' } },
10280
- journeyId: journey.id,
10281
- status: 'active',
10282
- processAfter: Date.now(),
10283
- })];
10320
+ return [4 /*yield*/, sdk.api.automated_actions.createOne(__assign({ action: { type: 'createTicket', info: __assign(__assign({}, info), { title: 'background ticket' }) }, automationStepId: PLACEHOLDER_ID, enduserId: e.id, event: { type: 'afterAction', info: { automationStepId: PLACEHOLDER_ID, delay: 0, delayInMS: 0, unit: 'Days' } }, journeyId: journey.id, status: 'active', processAfter: Date.now() }, (journeyContext ? { journeyContext: journeyContext } : {})))];
10284
10321
  case 3:
10285
10322
  _c.sent();
10286
10323
  return [4 /*yield*/, 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; }, 500, 20); }, {
@@ -10306,7 +10343,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10306
10343
  validOwners: [],
10307
10344
  })];
10308
10345
  case 16:
10309
- _d.sent();
10346
+ _f.sent();
10310
10347
  return [4 /*yield*/, testBackgroundTicket({
10311
10348
  assignedTo: [],
10312
10349
  info: {
@@ -10316,7 +10353,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10316
10353
  validOwners: [sdk.userInfo.id],
10317
10354
  })];
10318
10355
  case 17:
10319
- _d.sent();
10356
+ _f.sent();
10320
10357
  return [4 /*yield*/, testBackgroundTicket({
10321
10358
  assignedTo: [],
10322
10359
  info: {
@@ -10328,16 +10365,16 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10328
10365
  // ticket needs existing enduser, previous owner for test to work
10329
10366
  ];
10330
10367
  case 18:
10331
- _d.sent();
10368
+ _f.sent();
10332
10369
  return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'previous-owner-test' })];
10333
10370
  case 19:
10334
- enduser = _d.sent();
10371
+ enduser = _f.sent();
10335
10372
  return [4 /*yield*/, sdk.api.tickets.createOne({
10336
10373
  // title should be different than 'background test' so it doesn't create false positive test
10337
10374
  title: 'previous-owner-test', enduserId: enduser.id, journeyId: journey.id, owner: sdkNonAdmin.userInfo.id
10338
10375
  })];
10339
10376
  case 20:
10340
- _d.sent();
10377
+ _f.sent();
10341
10378
  return [4 /*yield*/, testBackgroundTicket({
10342
10379
  assignedTo: [],
10343
10380
  enduser: enduser,
@@ -10348,7 +10385,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10348
10385
  validOwners: [sdkNonAdmin.userInfo.id],
10349
10386
  })];
10350
10387
  case 21:
10351
- _d.sent();
10388
+ _f.sent();
10352
10389
  return [4 /*yield*/, testBackgroundTicket({
10353
10390
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10354
10391
  info: {
@@ -10358,7 +10395,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10358
10395
  validOwners: [sdkNonAdmin.userInfo.id],
10359
10396
  })];
10360
10397
  case 22:
10361
- _d.sent();
10398
+ _f.sent();
10362
10399
  return [4 /*yield*/, testBackgroundTicket({
10363
10400
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10364
10401
  info: {
@@ -10368,7 +10405,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10368
10405
  validOwners: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10369
10406
  })];
10370
10407
  case 23:
10371
- _d.sent();
10408
+ _f.sent();
10372
10409
  return [4 /*yield*/, testBackgroundTicket({
10373
10410
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10374
10411
  info: {
@@ -10378,7 +10415,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10378
10415
  validOwners: [sdk.userInfo.id, sdkNonAdmin.userInfo.id,],
10379
10416
  })];
10380
10417
  case 24:
10381
- _d.sent();
10418
+ _f.sent();
10382
10419
  return [4 /*yield*/, testBackgroundTicket({
10383
10420
  assignedTo: [sdkNonAdmin.userInfo.id, sdk.userInfo.id],
10384
10421
  info: {
@@ -10388,7 +10425,7 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10388
10425
  validOwners: [sdk.userInfo.id],
10389
10426
  })];
10390
10427
  case 25:
10391
- _d.sent();
10428
+ _f.sent();
10392
10429
  return [4 /*yield*/, testBackgroundTicket({
10393
10430
  assignedTo: [],
10394
10431
  info: {
@@ -10396,18 +10433,161 @@ var test_ticket_automation_assignment_and_optimization = function () { return __
10396
10433
  defaultAssignee: sdk.userInfo.id
10397
10434
  },
10398
10435
  validOwners: [sdkNonAdmin.userInfo.id],
10399
- })];
10436
+ })
10437
+ // 'Recently-Booked Appointment Host' assignment
10438
+ // journeyContext.calendarEventId, when it resolves to a host, takes priority over the legacy
10439
+ // "newest event for this enduser" lookup. one enduser per case, to avoid trigger throttling.
10440
+ ];
10400
10441
  case 26:
10401
- _d.sent();
10442
+ _f.sent();
10443
+ HOST_A = sdkNonAdmin.userInfo.id;
10444
+ HOST_B = sdk.userInfo.id;
10445
+ appointmentHostInfo = function (defaultAssignee) { return ({
10446
+ assignmentStrategy: { type: 'Recently-Booked Appointment Host', info: {} },
10447
+ defaultAssignee: defaultAssignee,
10448
+ }); };
10449
+ createHostedEvent = function (enduserId, hostId) { return sdk.api.calendar_events.createOne({
10450
+ title: 'appointment host test',
10451
+ durationInMinutes: 30,
10452
+ startTimeInMS: Date.now(),
10453
+ attendees: [{ type: 'enduser', id: enduserId }, { type: 'user', id: hostId }],
10454
+ }); };
10455
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fields: { Tag: 'tag3' } })];
10456
+ case 27:
10457
+ e = _f.sent();
10458
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_A)];
10459
+ case 28:
10460
+ older = _f.sent();
10461
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_B)]; // higher _id, so legacy sort picks this one
10462
+ case 29:
10463
+ newer = _f.sent() // higher _id, so legacy sort picks this one
10464
+ ;
10465
+ return [4 /*yield*/, testBackgroundTicket({
10466
+ assignedTo: [],
10467
+ enduser: e,
10468
+ info: appointmentHostInfo(HOST_B),
10469
+ validOwners: [HOST_A],
10470
+ journeyContext: { calendarEventId: older.id },
10471
+ })];
10472
+ case 30:
10473
+ _f.sent();
10474
+ return [4 /*yield*/, Promise.all([older, newer].map(function (ev) { return sdk.api.calendar_events.deleteOne(ev.id); }))];
10475
+ case 31:
10476
+ _f.sent();
10477
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fields: { Tag: 'tag3' } })];
10478
+ case 32:
10479
+ e = _f.sent();
10480
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_A)];
10481
+ case 33:
10482
+ older = _f.sent();
10483
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_B)];
10484
+ case 34:
10485
+ newer = _f.sent();
10486
+ return [4 /*yield*/, testBackgroundTicket({
10487
+ assignedTo: [],
10488
+ enduser: e,
10489
+ info: appointmentHostInfo(HOST_A),
10490
+ validOwners: [HOST_B], // newest created event's host
10491
+ })];
10492
+ case 35:
10493
+ _f.sent();
10494
+ return [4 /*yield*/, Promise.all([older, newer].map(function (ev) { return sdk.api.calendar_events.deleteOne(ev.id); }))];
10495
+ case 36:
10496
+ _f.sent();
10497
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fields: { Tag: 'tag3' } })];
10498
+ case 37:
10499
+ e = _f.sent();
10500
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_B)];
10501
+ case 38:
10502
+ deleted = _f.sent();
10503
+ return [4 /*yield*/, sdk.api.calendar_events.deleteOne(deleted.id)];
10504
+ case 39:
10505
+ _f.sent();
10506
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_A)];
10507
+ case 40:
10508
+ hosted = _f.sent();
10509
+ return [4 /*yield*/, testBackgroundTicket({
10510
+ assignedTo: [],
10511
+ enduser: e,
10512
+ info: appointmentHostInfo(HOST_B),
10513
+ validOwners: [HOST_A],
10514
+ journeyContext: { calendarEventId: deleted.id },
10515
+ })];
10516
+ case 41:
10517
+ _f.sent();
10518
+ return [4 /*yield*/, sdk.api.calendar_events.deleteOne(hosted.id)];
10519
+ case 42:
10520
+ _f.sent();
10521
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fields: { Tag: 'tag3' } })];
10522
+ case 43:
10523
+ e = _f.sent();
10524
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
10525
+ title: 'appointment host test, no host',
10526
+ durationInMinutes: 30,
10527
+ startTimeInMS: Date.now(),
10528
+ attendees: [{ type: 'enduser', id: e.id }],
10529
+ })];
10530
+ case 44:
10531
+ enduserOnly = _f.sent();
10532
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_A)];
10533
+ case 45:
10534
+ hosted = _f.sent();
10535
+ return [4 /*yield*/, testBackgroundTicket({
10536
+ assignedTo: [],
10537
+ enduser: e,
10538
+ info: appointmentHostInfo(HOST_B),
10539
+ validOwners: [HOST_A],
10540
+ journeyContext: { calendarEventId: enduserOnly.id },
10541
+ })];
10542
+ case 46:
10543
+ _f.sent();
10544
+ return [4 /*yield*/, Promise.all([enduserOnly, hosted].map(function (ev) { return sdk.api.calendar_events.deleteOne(ev.id); }))];
10545
+ case 47:
10546
+ _f.sent();
10547
+ // no events at all -> no resolvable host, so defaultAssignee wins
10548
+ return [4 /*yield*/, testBackgroundTicket({
10549
+ assignedTo: [],
10550
+ info: appointmentHostInfo(HOST_A),
10551
+ validOwners: [HOST_A],
10552
+ })
10553
+ // api path: close_ticket copies the original ticket's calendarEventId into journeyContext
10554
+ ];
10555
+ case 48:
10556
+ // no events at all -> no resolvable host, so defaultAssignee wins
10557
+ _f.sent();
10558
+ return [4 /*yield*/, sdk.api.endusers.createOne({
10559
+ journeys: (_d = {}, _d[journey.id] = '', _d), fields: { Tag: 'tag3' },
10560
+ })];
10561
+ case 49:
10562
+ e = _f.sent();
10563
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_A)];
10564
+ case 50:
10565
+ older = _f.sent();
10566
+ return [4 /*yield*/, createHostedEvent(e.id, HOST_B)];
10567
+ case 51:
10568
+ newer = _f.sent();
10569
+ return [4 /*yield*/, testForegroundTicket({
10570
+ assignedTo: [],
10571
+ enduser: e,
10572
+ info: appointmentHostInfo(HOST_B),
10573
+ validOwners: [HOST_A],
10574
+ calendarEventId: older.id,
10575
+ ticketOwner: HOST_B, // so a previous-owner style fallback would also fail
10576
+ })];
10577
+ case 52:
10578
+ _f.sent();
10579
+ return [4 /*yield*/, Promise.all([older, newer].map(function (ev) { return sdk.api.calendar_events.deleteOne(ev.id); }))];
10580
+ case 53:
10581
+ _f.sent();
10402
10582
  _b = (_a = Promise).all;
10403
10583
  return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id)];
10404
- case 27:
10584
+ case 54:
10405
10585
  _c = [
10406
- _d.sent()
10586
+ _f.sent()
10407
10587
  ];
10408
10588
  return [4 /*yield*/, sdk.api.ticket_queues.deleteOne(queue.id)];
10409
- case 28: return [2 /*return*/, _b.apply(_a, [_c.concat([
10410
- _d.sent()
10589
+ case 55: return [2 /*return*/, _b.apply(_a, [_c.concat([
10590
+ _f.sent()
10411
10591
  ])])];
10412
10592
  }
10413
10593
  });
@@ -15573,7 +15753,7 @@ var replace_enduser_template_values_tests = function () { return __awaiter(void
15573
15753
  });
15574
15754
  }); };
15575
15755
  var replace_form_field_template_values_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
15576
- var enduserWithMultilineField, enduserWithLiteralEscapeField, enduserWithCRLFField;
15756
+ var enduserWithMultilineField, enduserWithLiteralEscapeField, enduserWithCRLFField, enduserWithMarkupField, escaped, enduserWithMarkupAndNewline, enduserWithAmpersand;
15577
15757
  return __generator(this, function (_a) {
15578
15758
  log_header("Replace Form Field Template Values Tests");
15579
15759
  enduserWithMultilineField = {
@@ -15601,6 +15781,21 @@ var replace_form_field_template_values_tests = function () { return __awaiter(vo
15601
15781
  fields: { Locations: 'NYC\r\nSF\r\nLA' },
15602
15782
  };
15603
15783
  assert(replace_form_field_template_values('<p>Locations: {{enduser.Locations}}</p>', { enduser: enduserWithCRLFField, escapeNewlinesAsHTMLBreaks: true }) === '<p>Locations: NYC<br />SF<br />LA</p>', 'fail CRLF in substituted value', 'CRLF in substituted value');
15784
+ enduserWithMarkupField = {
15785
+ fname: "Multi",
15786
+ fields: { Injected: '<iframe src="https://evil.example"></iframe>' },
15787
+ };
15788
+ escaped = replace_form_field_template_values('<p>{{enduser.Injected}}</p>', { enduser: enduserWithMarkupField, escapeNewlinesAsHTMLBreaks: true, escapeHTMLValues: true });
15789
+ assert(escaped.includes('&lt;iframe') && !escaped.includes('<iframe'), 'fail escapeHTMLValues escapes markup', 'escapeHTMLValues escapes markup');
15790
+ enduserWithMarkupAndNewline = {
15791
+ fields: { Mixed: 'a<b\nc&d' },
15792
+ };
15793
+ assert(replace_form_field_template_values('{{enduser.Mixed}}', { enduser: enduserWithMarkupAndNewline, escapeNewlinesAsHTMLBreaks: true, escapeHTMLValues: true }) === 'a&lt;b<br />c&amp;d', 'fail escapeHTMLValues ordering vs newline breaks', 'escapeHTMLValues ordering vs newline breaks');
15794
+ enduserWithAmpersand = {
15795
+ fields: { Practice: 'Smith & Jones <Cardiology>' },
15796
+ };
15797
+ assert(replace_form_field_template_values('Practice: {{enduser.Practice}}', { enduser: enduserWithAmpersand }) === 'Practice: Smith & Jones <Cardiology>', 'fail no escaping without the flag', 'no escaping without the flag');
15798
+ assert(replace_form_field_template_values('Practice: {{enduser.Practice}}', { enduser: enduserWithAmpersand, escapeHTMLValues: true }) === 'Practice: Smith &amp; Jones &lt;Cardiology&gt;', 'fail escaping with the flag', 'escaping with the flag');
15604
15799
  return [2 /*return*/];
15605
15800
  });
15606
15801
  }); };
@@ -16975,7 +17170,7 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16975
17170
  assert(truncate_string(null, { length: 4, showEllipsis: false }) === '', 'truncate doesnt work for non string', 'trucate works for non-string');
16976
17171
  _l.label = 2;
16977
17172
  case 2:
16978
- _l.trys.push([2, 174, , 175]);
17173
+ _l.trys.push([2, 176, , 177]);
16979
17174
  get_next_reminder_timestamp_tests();
16980
17175
  form_conditional_logic_tests();
16981
17176
  return [4 /*yield*/, test_weighted_round_robin()];
@@ -17212,387 +17407,393 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
17212
17407
  return [4 /*yield*/, sanitize_user_html_xss_tests()];
17213
17408
  case 48:
17214
17409
  _l.sent();
17215
- return [4 /*yield*/, prototype_pollution_tests()];
17410
+ return [4 /*yield*/, sanitize_user_html_with_iframes_tests()];
17216
17411
  case 49:
17217
17412
  _l.sent();
17218
- return [4 /*yield*/, account_switcher_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17413
+ return [4 /*yield*/, prototype_pollution_tests()];
17219
17414
  case 50:
17220
17415
  _l.sent();
17221
- return [4 /*yield*/, totp_mfa_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17416
+ return [4 /*yield*/, account_switcher_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17222
17417
  case 51:
17223
17418
  _l.sent();
17224
- return [4 /*yield*/, enduser_login_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17419
+ return [4 /*yield*/, totp_mfa_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17225
17420
  case 52:
17226
17421
  _l.sent();
17227
- return [4 /*yield*/, outbound_chat_sent_trigger_tests({ sdk: sdk })];
17422
+ return [4 /*yield*/, enduser_login_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17228
17423
  case 53:
17229
17424
  _l.sent();
17230
- return [4 /*yield*/, enduser_cross_access_isolation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17425
+ return [4 /*yield*/, outbound_chat_sent_trigger_tests({ sdk: sdk })];
17231
17426
  case 54:
17232
17427
  _l.sent();
17233
- return [4 /*yield*/, eom_procedure_codes_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17428
+ return [4 /*yield*/, enduser_cross_access_isolation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17234
17429
  case 55:
17235
17430
  _l.sent();
17236
- return [4 /*yield*/, cross_org_api_key_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17431
+ return [4 /*yield*/, eom_procedure_codes_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17237
17432
  case 56:
17238
17433
  _l.sent();
17239
- return [4 /*yield*/, organization_api_keys_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17434
+ return [4 /*yield*/, cross_org_api_key_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17240
17435
  case 57:
17241
17436
  _l.sent();
17242
- return [4 /*yield*/, scoped_api_keys_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17437
+ return [4 /*yield*/, organization_api_keys_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17243
17438
  case 58:
17244
17439
  _l.sent();
17245
- return [4 /*yield*/, organization_settings_duplicates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17440
+ return [4 /*yield*/, scoped_api_keys_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17246
17441
  case 59:
17247
17442
  _l.sent();
17248
- return [4 /*yield*/, enduser_session_invalidation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17443
+ return [4 /*yield*/, organization_settings_duplicates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17249
17444
  case 60:
17250
17445
  _l.sent();
17251
- return [4 /*yield*/, chats_analytics_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17446
+ return [4 /*yield*/, enduser_session_invalidation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17252
17447
  case 61:
17253
17448
  _l.sent();
17254
- return [4 /*yield*/, field_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17449
+ return [4 /*yield*/, chats_analytics_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17255
17450
  case 62:
17256
17451
  _l.sent();
17257
- return [4 /*yield*/, form_submitted_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17452
+ return [4 /*yield*/, field_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17258
17453
  case 63:
17259
17454
  _l.sent();
17260
- return [4 /*yield*/, dont_sync_to_elation_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17455
+ return [4 /*yield*/, form_submitted_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17261
17456
  case 64:
17262
17457
  _l.sent();
17263
- return [4 /*yield*/, date_string_validation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17458
+ return [4 /*yield*/, dont_sync_to_elation_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17264
17459
  case 65:
17265
17460
  _l.sent();
17266
- return [4 /*yield*/, phone_tree_enduser_condition_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17461
+ return [4 /*yield*/, date_string_validation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17267
17462
  case 66:
17268
17463
  _l.sent();
17269
- return [4 /*yield*/, openloop_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17464
+ return [4 /*yield*/, phone_tree_enduser_condition_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17270
17465
  case 67:
17271
17466
  _l.sent();
17272
- return [4 /*yield*/, mdi_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17467
+ return [4 /*yield*/, openloop_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17273
17468
  case 68:
17274
17469
  _l.sent();
17275
- return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17470
+ return [4 /*yield*/, mdi_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17276
17471
  case 69:
17277
17472
  _l.sent();
17278
- return [4 /*yield*/, healthie_multi_integration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17473
+ return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17279
17474
  case 70:
17280
17475
  _l.sent();
17281
- return [4 /*yield*/, mdb_sort_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17476
+ return [4 /*yield*/, healthie_multi_integration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17282
17477
  case 71:
17283
17478
  _l.sent();
17284
- return [4 /*yield*/, search_tests()];
17479
+ return [4 /*yield*/, mdb_sort_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17285
17480
  case 72:
17286
17481
  _l.sent();
17287
- return [4 /*yield*/, time_tracks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17482
+ return [4 /*yield*/, search_tests()];
17288
17483
  case 73:
17289
17484
  _l.sent();
17290
- return [4 /*yield*/, time_tracks_historical_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17485
+ return [4 /*yield*/, time_tracks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17291
17486
  case 74:
17292
17487
  _l.sent();
17293
- return [4 /*yield*/, time_tracks_correction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17488
+ return [4 /*yield*/, time_tracks_historical_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17294
17489
  case 75:
17295
17490
  _l.sent();
17296
- return [4 /*yield*/, time_tracks_review_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17491
+ return [4 /*yield*/, time_tracks_correction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17297
17492
  case 76:
17298
17493
  _l.sent();
17299
- return [4 /*yield*/, time_tracks_lock_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17494
+ return [4 /*yield*/, time_tracks_review_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17300
17495
  case 77:
17301
17496
  _l.sent();
17302
- return [4 /*yield*/, time_tracks_edge_case_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17497
+ return [4 /*yield*/, time_tracks_lock_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17303
17498
  case 78:
17304
17499
  _l.sent();
17305
- return [4 /*yield*/, time_tracks_resubmit_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17500
+ return [4 /*yield*/, time_tracks_edge_case_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17306
17501
  case 79:
17307
17502
  _l.sent();
17308
- return [4 /*yield*/, time_tracks_appointment_duration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17503
+ return [4 /*yield*/, time_tracks_resubmit_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17309
17504
  case 80:
17310
17505
  _l.sent();
17311
- return [4 /*yield*/, calendar_event_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17506
+ return [4 /*yield*/, time_tracks_appointment_duration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17312
17507
  case 81:
17313
17508
  _l.sent();
17314
- return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17509
+ return [4 /*yield*/, calendar_event_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17315
17510
  case 82:
17316
17511
  _l.sent();
17317
- return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17512
+ return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17318
17513
  case 83:
17319
17514
  _l.sent();
17320
- return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17515
+ return [4 /*yield*/, file_download_unicode_names_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17321
17516
  case 84:
17322
17517
  _l.sent();
17323
- return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17518
+ return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17324
17519
  case 85:
17325
17520
  _l.sent();
17326
- return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17521
+ return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17327
17522
  case 86:
17328
17523
  _l.sent();
17329
- return [4 /*yield*/, enduser_tests()];
17524
+ return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17330
17525
  case 87:
17331
17526
  _l.sent();
17332
- return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17527
+ return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17333
17528
  case 88:
17334
17529
  _l.sent();
17335
- return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17530
+ return [4 /*yield*/, enduser_tests()];
17336
17531
  case 89:
17337
17532
  _l.sent();
17338
- return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17533
+ return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17339
17534
  case 90:
17340
17535
  _l.sent();
17341
- return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17536
+ return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17342
17537
  case 91:
17343
17538
  _l.sent();
17344
- return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17539
+ return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17345
17540
  case 92:
17346
17541
  _l.sent();
17347
- return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17542
+ return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17348
17543
  case 93:
17349
17544
  _l.sent();
17350
- return [4 /*yield*/, inbox_threads_new_fields_tests()];
17545
+ return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17351
17546
  case 94:
17352
17547
  _l.sent();
17353
- return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17548
+ return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17354
17549
  case 95:
17355
17550
  _l.sent();
17356
- return [4 /*yield*/, threadKeyTests()];
17551
+ return [4 /*yield*/, inbox_threads_new_fields_tests()];
17357
17552
  case 96:
17358
17553
  _l.sent();
17359
- return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17554
+ return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17360
17555
  case 97:
17361
17556
  _l.sent();
17362
- return [4 /*yield*/, managed_content_file_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17557
+ return [4 /*yield*/, threadKeyTests()];
17363
17558
  case 98:
17364
17559
  _l.sent();
17365
- return [4 /*yield*/, afteraction_day_of_month_delay_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17560
+ return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17366
17561
  case 99:
17367
17562
  _l.sent();
17368
- return [4 /*yield*/, bulk_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17563
+ return [4 /*yield*/, managed_content_file_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17369
17564
  case 100:
17370
17565
  _l.sent();
17371
- return [4 /*yield*/, formsort_tests()];
17566
+ return [4 /*yield*/, afteraction_day_of_month_delay_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17372
17567
  case 101:
17373
17568
  _l.sent();
17374
- return [4 /*yield*/, formsort_header_auth_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17569
+ return [4 /*yield*/, bulk_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17375
17570
  case 102:
17376
17571
  _l.sent();
17377
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
17572
+ return [4 /*yield*/, formsort_tests()];
17378
17573
  case 103:
17379
17574
  _l.sent();
17380
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
17575
+ return [4 /*yield*/, formsort_header_auth_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17381
17576
  case 104:
17382
17577
  _l.sent();
17383
- return [4 /*yield*/, monthly_availability_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17578
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
17384
17579
  case 105:
17385
17580
  _l.sent();
17386
- return [4 /*yield*/, journey_error_branching_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17581
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
17387
17582
  case 106:
17388
17583
  _l.sent();
17389
- return [4 /*yield*/, journey_delete_cancels_actions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17584
+ return [4 /*yield*/, monthly_availability_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17390
17585
  case 107:
17391
17586
  _l.sent();
17392
- return [4 /*yield*/, message_assignment_trigger_tests({ sdk: sdk })];
17587
+ return [4 /*yield*/, journey_error_branching_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17393
17588
  case 108:
17394
17589
  _l.sent();
17395
- return [4 /*yield*/, inbox_threads_building_tests()];
17590
+ return [4 /*yield*/, journey_delete_cancels_actions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17396
17591
  case 109:
17397
17592
  _l.sent();
17398
- return [4 /*yield*/, inbox_threads_loading_tests()];
17593
+ return [4 /*yield*/, message_assignment_trigger_tests({ sdk: sdk })];
17399
17594
  case 110:
17400
17595
  _l.sent();
17401
- return [4 /*yield*/, load_inbox_data_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17596
+ return [4 /*yield*/, inbox_threads_building_tests()];
17402
17597
  case 111:
17403
17598
  _l.sent();
17404
- return [4 /*yield*/, phone_calls_cold_transfer_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17599
+ return [4 /*yield*/, inbox_threads_loading_tests()];
17405
17600
  case 112:
17406
17601
  _l.sent();
17407
- return [4 /*yield*/, enduser_observations_acknowledge_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17602
+ return [4 /*yield*/, load_inbox_data_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17408
17603
  case 113:
17409
17604
  _l.sent();
17410
- return [4 /*yield*/, nutrition_tracking_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17605
+ return [4 /*yield*/, phone_calls_cold_transfer_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17411
17606
  case 114:
17412
17607
  _l.sent();
17413
- return [4 /*yield*/, translations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17608
+ return [4 /*yield*/, enduser_observations_acknowledge_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17414
17609
  case 115:
17415
17610
  _l.sent();
17416
- return [4 /*yield*/, create_user_notifications_trigger_tests({ sdk: sdk })];
17611
+ return [4 /*yield*/, nutrition_tracking_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17417
17612
  case 116:
17418
17613
  _l.sent();
17419
- return [4 /*yield*/, group_mms_active_tests()];
17614
+ return [4 /*yield*/, translations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17420
17615
  case 117:
17421
17616
  _l.sent();
17422
- return [4 /*yield*/, auto_reply_tests()];
17617
+ return [4 /*yield*/, create_user_notifications_trigger_tests({ sdk: sdk })];
17423
17618
  case 118:
17424
17619
  _l.sent();
17425
- return [4 /*yield*/, relationships_tests()];
17620
+ return [4 /*yield*/, group_mms_active_tests()];
17426
17621
  case 119:
17427
17622
  _l.sent();
17428
- return [4 /*yield*/, rate_limit_tests()];
17623
+ return [4 /*yield*/, auto_reply_tests()];
17429
17624
  case 120:
17430
17625
  _l.sent();
17431
- return [4 /*yield*/, ip_address_form_tests()];
17626
+ return [4 /*yield*/, relationships_tests()];
17432
17627
  case 121:
17433
17628
  _l.sent();
17434
- return [4 /*yield*/, bulk_update_tests()];
17629
+ return [4 /*yield*/, rate_limit_tests()];
17435
17630
  case 122:
17436
17631
  _l.sent();
17437
- return [4 /*yield*/, calendar_events_bulk_update_tests({ sdk: sdk })];
17632
+ return [4 /*yield*/, ip_address_form_tests()];
17438
17633
  case 123:
17439
17634
  _l.sent();
17440
- return [4 /*yield*/, calendar_event_references_update_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17635
+ return [4 /*yield*/, bulk_update_tests()];
17441
17636
  case 124:
17442
17637
  _l.sent();
17443
- return [4 /*yield*/, cancel_upcoming_appointments_journey_action_test()];
17638
+ return [4 /*yield*/, calendar_events_bulk_update_tests({ sdk: sdk })];
17444
17639
  case 125:
17445
17640
  _l.sent();
17446
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17641
+ return [4 /*yield*/, calendar_event_references_update_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17447
17642
  case 126:
17643
+ _l.sent();
17644
+ return [4 /*yield*/, cancel_upcoming_appointments_journey_action_test()];
17645
+ case 127:
17646
+ _l.sent();
17647
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17648
+ case 128:
17448
17649
  _l.sent(); // should come right after setup tests
17449
17650
  return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
17450
- case 127:
17651
+ case 129:
17451
17652
  _l.sent(); // should come directly after setup to avoid extra sync values
17452
17653
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
17453
- case 128:
17654
+ case 130:
17454
17655
  _l.sent(); // should come directly after setup to avoid extra sync values
17455
17656
  return [4 /*yield*/, get_templated_message_tests()];
17456
- case 129:
17657
+ case 131:
17457
17658
  _l.sent();
17458
17659
  return [4 /*yield*/, updatedAt_tests()];
17459
- case 130:
17660
+ case 132:
17460
17661
  _l.sent();
17461
17662
  return [4 /*yield*/, file_source_tests()];
17462
- case 131:
17663
+ case 133:
17463
17664
  _l.sent();
17464
17665
  return [4 /*yield*/, enduser_access_tags_tests()];
17465
- case 132:
17666
+ case 134:
17466
17667
  _l.sent();
17467
17668
  return [4 /*yield*/, enduserAccessTests()];
17468
- case 133:
17669
+ case 135:
17469
17670
  _l.sent();
17470
17671
  return [4 /*yield*/, test_form_response_search()];
17471
- case 134:
17672
+ case 136:
17472
17673
  _l.sent();
17473
17674
  return [4 /*yield*/, date_parsing_tests()];
17474
- case 135:
17675
+ case 137:
17475
17676
  _l.sent();
17476
17677
  return [4 /*yield*/, fromEmailOverride_tests()];
17477
- case 136:
17678
+ case 138:
17478
17679
  _l.sent();
17479
17680
  return [4 /*yield*/, ticket_tests()];
17480
- case 137:
17681
+ case 139:
17481
17682
  _l.sent();
17482
17683
  return [4 /*yield*/, uniqueness_tests()];
17483
- case 138:
17684
+ case 140:
17484
17685
  _l.sent();
17485
17686
  return [4 /*yield*/, enduser_orders_tests()];
17486
- case 139:
17687
+ case 141:
17487
17688
  _l.sent();
17488
17689
  return [4 /*yield*/, calendar_event_care_team_tests()];
17489
- case 140:
17690
+ case 142:
17490
17691
  _l.sent();
17491
17692
  return [4 /*yield*/, merge_enduser_tests()];
17492
- case 141:
17693
+ case 143:
17493
17694
  _l.sent();
17494
17695
  return [4 /*yield*/, input_modifier_tests()];
17495
- case 142:
17696
+ case 144:
17496
17697
  _l.sent();
17497
17698
  return [4 /*yield*/, switch_to_related_contacts_tests()];
17498
- case 143:
17699
+ case 145:
17499
17700
  _l.sent();
17500
17701
  return [4 /*yield*/, redaction_tests()];
17501
- case 144:
17702
+ case 146:
17502
17703
  _l.sent();
17503
17704
  return [4 /*yield*/, no_chained_triggers_tests()];
17504
- case 145:
17705
+ case 147:
17505
17706
  _l.sent();
17506
17707
  return [4 /*yield*/, mdb_filter_tests()];
17507
- case 146:
17708
+ case 148:
17508
17709
  _l.sent();
17509
17710
  return [4 /*yield*/, superadmin_tests()];
17510
- case 147:
17711
+ case 149:
17511
17712
  _l.sent();
17512
17713
  return [4 /*yield*/, ticket_queue_tests()];
17513
- case 148:
17714
+ case 150:
17514
17715
  _l.sent();
17515
17716
  return [4 /*yield*/, vital_trigger_tests()];
17516
- case 149:
17717
+ case 151:
17517
17718
  _l.sent();
17518
17719
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
17519
- case 150:
17720
+ case 152:
17520
17721
  _l.sent();
17521
17722
  return [4 /*yield*/, register_as_enduser_tests()];
17522
- case 151:
17723
+ case 153:
17523
17724
  _l.sent();
17524
17725
  return [4 /*yield*/, lockout_tests()];
17525
- case 152:
17726
+ case 154:
17526
17727
  _l.sent();
17527
17728
  return [4 /*yield*/, delete_user_tests()
17528
17729
  // await test_send_with_template()
17529
17730
  ];
17530
- case 153:
17731
+ case 155:
17531
17732
  _l.sent();
17532
17733
  // await test_send_with_template()
17533
17734
  return [4 /*yield*/, bulk_read_tests()];
17534
- case 154:
17735
+ case 156:
17535
17736
  // await test_send_with_template()
17536
17737
  _l.sent();
17537
17738
  return [4 /*yield*/, ticket_reminder_tests()];
17538
- case 155:
17739
+ case 157:
17539
17740
  _l.sent();
17540
17741
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
17541
- case 156:
17742
+ case 158:
17542
17743
  _l.sent();
17543
17744
  return [4 /*yield*/, unique_strings_tests()];
17544
- case 157:
17745
+ case 159:
17545
17746
  _l.sent();
17546
17747
  return [4 /*yield*/, alternate_phones_tests()];
17547
- case 158:
17748
+ case 160:
17548
17749
  _l.sent();
17549
17750
  return [4 /*yield*/, role_based_access_tests()];
17550
- case 159:
17751
+ case 161:
17551
17752
  _l.sent();
17552
17753
  return [4 /*yield*/, enduser_session_tests()];
17553
- case 160:
17754
+ case 162:
17554
17755
  _l.sent();
17555
17756
  return [4 /*yield*/, nextReminderInMS_tests()];
17556
- case 161:
17757
+ case 163:
17557
17758
  _l.sent();
17558
17759
  return [4 /*yield*/, wait_for_trigger_tests()];
17559
- case 162:
17760
+ case 164:
17560
17761
  _l.sent();
17561
17762
  return [4 /*yield*/, pdf_generation()];
17562
- case 163:
17763
+ case 165:
17563
17764
  _l.sent();
17564
17765
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
17565
- case 164:
17766
+ case 166:
17566
17767
  _l.sent(); // timing is unreliable, uncomment if changing logic
17567
17768
  return [4 /*yield*/, sub_organization_enduser_tests()];
17568
- case 165:
17769
+ case 167:
17569
17770
  _l.sent();
17570
17771
  return [4 /*yield*/, sub_organization_tests()];
17571
- case 166:
17772
+ case 168:
17572
17773
  _l.sent();
17573
17774
  return [4 /*yield*/, filter_by_date_tests()];
17574
- case 167:
17775
+ case 169:
17575
17776
  _l.sent();
17576
17777
  return [4 /*yield*/, generate_user_auth_tests()];
17577
- case 168:
17778
+ case 170:
17578
17779
  _l.sent();
17579
17780
  return [4 /*yield*/, generateEnduserAuthTests()];
17580
- case 169:
17781
+ case 171:
17581
17782
  _l.sent();
17582
17783
  return [4 /*yield*/, public_form_tests()];
17583
- case 170:
17784
+ case 172:
17584
17785
  _l.sent();
17585
17786
  return [4 /*yield*/, badInputTests()];
17586
- case 171:
17787
+ case 173:
17587
17788
  _l.sent();
17588
17789
  return [4 /*yield*/, filterTests()];
17589
- case 172:
17790
+ case 174:
17590
17791
  _l.sent();
17591
17792
  return [4 /*yield*/, updatesTests()];
17592
- case 173:
17793
+ case 175:
17593
17794
  _l.sent();
17594
- return [3 /*break*/, 175];
17595
- case 174:
17795
+ return [3 /*break*/, 177];
17796
+ case 176:
17596
17797
  err_1 = _l.sent();
17597
17798
  console.error("Failed during custom test");
17598
17799
  if (err_1.message && err_1.info) {
@@ -17602,18 +17803,18 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
17602
17803
  console.error(err_1);
17603
17804
  }
17604
17805
  process.exit(1);
17605
- return [3 /*break*/, 175];
17606
- case 175:
17806
+ return [3 /*break*/, 177];
17807
+ case 177:
17607
17808
  _a = schema;
17608
17809
  _b = [];
17609
17810
  for (_c in _a)
17610
17811
  _b.push(_c);
17611
17812
  _i = 0;
17612
- _l.label = 176;
17613
- case 176:
17614
- if (!(_i < _b.length)) return [3 /*break*/, 179];
17813
+ _l.label = 178;
17814
+ case 178:
17815
+ if (!(_i < _b.length)) return [3 /*break*/, 181];
17615
17816
  _c = _b[_i];
17616
- if (!(_c in _a)) return [3 /*break*/, 178];
17817
+ if (!(_c in _a)) return [3 /*break*/, 180];
17617
17818
  n = _c;
17618
17819
  returnValidation = (_k = (_j = schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
17619
17820
  return [4 /*yield*/, run_generated_tests({
@@ -17624,41 +17825,41 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
17624
17825
  create: returnValidation // ModelFields<ClientModel>,
17625
17826
  }
17626
17827
  })];
17627
- case 177:
17828
+ case 179:
17628
17829
  _l.sent();
17629
- _l.label = 178;
17630
- case 178:
17830
+ _l.label = 180;
17831
+ case 180:
17631
17832
  _i++;
17632
- return [3 /*break*/, 176];
17633
- case 179:
17833
+ return [3 /*break*/, 178];
17834
+ case 181:
17634
17835
  _d = tests;
17635
17836
  _f = [];
17636
17837
  for (_g in _d)
17637
17838
  _f.push(_g);
17638
17839
  _h = 0;
17639
- _l.label = 180;
17640
- case 180:
17641
- if (!(_h < _f.length)) return [3 /*break*/, 185];
17840
+ _l.label = 182;
17841
+ case 182:
17842
+ if (!(_h < _f.length)) return [3 /*break*/, 187];
17642
17843
  _g = _f[_h];
17643
- if (!(_g in _d)) return [3 /*break*/, 184];
17844
+ if (!(_g in _d)) return [3 /*break*/, 186];
17644
17845
  t = _g;
17645
- _l.label = 181;
17646
- case 181:
17647
- _l.trys.push([181, 183, , 184]);
17846
+ _l.label = 183;
17847
+ case 183:
17848
+ _l.trys.push([183, 185, , 186]);
17648
17849
  return [4 /*yield*/, tests[t]()];
17649
- case 182:
17850
+ case 184:
17650
17851
  _l.sent();
17651
- return [3 /*break*/, 184];
17652
- case 183:
17852
+ return [3 /*break*/, 186];
17853
+ case 185:
17653
17854
  err_2 = _l.sent();
17654
17855
  console.error("Error running test:");
17655
17856
  console.error(err_2);
17656
17857
  process.exit(1);
17657
- return [3 /*break*/, 184];
17658
- case 184:
17858
+ return [3 /*break*/, 186];
17859
+ case 186:
17659
17860
  _h++;
17660
- return [3 /*break*/, 180];
17661
- case 185:
17861
+ return [3 /*break*/, 182];
17862
+ case 187:
17662
17863
  process.exit();
17663
17864
  return [2 /*return*/];
17664
17865
  }