@tellescope/sdk 1.253.1 → 1.254.1

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 (124) hide show
  1. package/lib/cjs/sdk.d.ts +4 -0
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/tests/api_tests/_tmp_bc_verify.test.d.ts.map +1 -0
  4. package/lib/cjs/tests/api_tests/_tmp_blank_status_verify.test.d.ts.map +1 -0
  5. package/lib/cjs/tests/api_tests/_tmp_followup_verify.test.d.ts.map +1 -0
  6. package/lib/cjs/tests/api_tests/_tmp_nonmatch_verify.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/ai_decision_summary_config.test.d.ts +16 -0
  8. package/lib/cjs/tests/api_tests/ai_decision_summary_config.test.d.ts.map +1 -0
  9. package/lib/cjs/tests/api_tests/ai_decision_summary_config.test.js +187 -0
  10. package/lib/cjs/tests/api_tests/ai_decision_summary_config.test.js.map +1 -0
  11. package/lib/cjs/tests/api_tests/field_redaction.test.d.ts.map +1 -1
  12. package/lib/cjs/tests/api_tests/field_redaction.test.js +112 -99
  13. package/lib/cjs/tests/api_tests/field_redaction.test.js.map +1 -1
  14. package/lib/cjs/tests/api_tests/journey_error_branching.test.js +7 -2
  15. package/lib/cjs/tests/api_tests/journey_error_branching.test.js.map +1 -1
  16. package/lib/cjs/tests/api_tests/mdi_case_offerings.test.d.ts +6 -0
  17. package/lib/cjs/tests/api_tests/mdi_case_offerings.test.d.ts.map +1 -0
  18. package/lib/cjs/tests/api_tests/mdi_case_offerings.test.js +443 -0
  19. package/lib/cjs/tests/api_tests/mdi_case_offerings.test.js.map +1 -0
  20. package/lib/cjs/tests/api_tests/resource_access_tags.test.d.ts +22 -0
  21. package/lib/cjs/tests/api_tests/resource_access_tags.test.d.ts.map +1 -0
  22. package/lib/cjs/tests/api_tests/resource_access_tags.test.js +488 -0
  23. package/lib/cjs/tests/api_tests/resource_access_tags.test.js.map +1 -0
  24. package/lib/cjs/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.d.ts +21 -0
  25. package/lib/cjs/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.d.ts.map +1 -0
  26. package/lib/cjs/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.js +362 -0
  27. package/lib/cjs/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.js.map +1 -0
  28. package/lib/cjs/tests/api_tests/security/F-0145-globalunique-leak.test.d.ts +20 -0
  29. package/lib/cjs/tests/api_tests/security/F-0145-globalunique-leak.test.d.ts.map +1 -0
  30. package/lib/cjs/tests/api_tests/security/F-0145-globalunique-leak.test.js +139 -0
  31. package/lib/cjs/tests/api_tests/security/F-0145-globalunique-leak.test.js.map +1 -0
  32. package/lib/cjs/tests/api_tests/security/F-0151-load-inbox-redaction.test.d.ts +18 -0
  33. package/lib/cjs/tests/api_tests/security/F-0151-load-inbox-redaction.test.d.ts.map +1 -0
  34. package/lib/cjs/tests/api_tests/security/F-0151-load-inbox-redaction.test.js +156 -0
  35. package/lib/cjs/tests/api_tests/security/F-0151-load-inbox-redaction.test.js.map +1 -0
  36. package/lib/cjs/tests/api_tests/security/F-0155-webhook-timeout.test.d.ts +20 -0
  37. package/lib/cjs/tests/api_tests/security/F-0155-webhook-timeout.test.d.ts.map +1 -0
  38. package/lib/cjs/tests/api_tests/security/F-0155-webhook-timeout.test.js +157 -0
  39. package/lib/cjs/tests/api_tests/security/F-0155-webhook-timeout.test.js.map +1 -0
  40. package/lib/cjs/tests/api_tests/time_tracks.test.d.ts +8 -0
  41. package/lib/cjs/tests/api_tests/time_tracks.test.d.ts.map +1 -1
  42. package/lib/cjs/tests/api_tests/time_tracks.test.js +638 -1
  43. package/lib/cjs/tests/api_tests/time_tracks.test.js.map +1 -1
  44. package/lib/cjs/tests/setup.d.ts.map +1 -1
  45. package/lib/cjs/tests/setup.js +20 -1
  46. package/lib/cjs/tests/setup.js.map +1 -1
  47. package/lib/cjs/tests/tests.d.ts.map +1 -1
  48. package/lib/cjs/tests/tests.js +606 -178
  49. package/lib/cjs/tests/tests.js.map +1 -1
  50. package/lib/esm/sdk.d.ts +6 -2
  51. package/lib/esm/sdk.d.ts.map +1 -1
  52. package/lib/esm/tests/api_tests/_tmp_bc_verify.test.d.ts +2 -0
  53. package/lib/esm/tests/api_tests/_tmp_bc_verify.test.d.ts.map +1 -0
  54. package/lib/esm/tests/api_tests/_tmp_bc_verify.test.js +120 -0
  55. package/lib/esm/tests/api_tests/_tmp_bc_verify.test.js.map +1 -0
  56. package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.d.ts +2 -0
  57. package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.d.ts.map +1 -0
  58. package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.js +200 -0
  59. package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.js.map +1 -0
  60. package/lib/esm/tests/api_tests/_tmp_followup_verify.test.d.ts +2 -0
  61. package/lib/esm/tests/api_tests/_tmp_followup_verify.test.d.ts.map +1 -0
  62. package/lib/esm/tests/api_tests/_tmp_followup_verify.test.js +194 -0
  63. package/lib/esm/tests/api_tests/_tmp_followup_verify.test.js.map +1 -0
  64. package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.d.ts +2 -0
  65. package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.d.ts.map +1 -0
  66. package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.js +115 -0
  67. package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.js.map +1 -0
  68. package/lib/esm/tests/api_tests/ai_decision_summary_config.test.d.ts +16 -0
  69. package/lib/esm/tests/api_tests/ai_decision_summary_config.test.d.ts.map +1 -0
  70. package/lib/esm/tests/api_tests/ai_decision_summary_config.test.js +183 -0
  71. package/lib/esm/tests/api_tests/ai_decision_summary_config.test.js.map +1 -0
  72. package/lib/esm/tests/api_tests/field_redaction.test.d.ts.map +1 -1
  73. package/lib/esm/tests/api_tests/field_redaction.test.js +112 -99
  74. package/lib/esm/tests/api_tests/field_redaction.test.js.map +1 -1
  75. package/lib/esm/tests/api_tests/journey_error_branching.test.js +7 -2
  76. package/lib/esm/tests/api_tests/journey_error_branching.test.js.map +1 -1
  77. package/lib/esm/tests/api_tests/mdi_case_offerings.test.d.ts +6 -0
  78. package/lib/esm/tests/api_tests/mdi_case_offerings.test.d.ts.map +1 -0
  79. package/lib/esm/tests/api_tests/mdi_case_offerings.test.js +439 -0
  80. package/lib/esm/tests/api_tests/mdi_case_offerings.test.js.map +1 -0
  81. package/lib/esm/tests/api_tests/resource_access_tags.test.d.ts +22 -0
  82. package/lib/esm/tests/api_tests/resource_access_tags.test.d.ts.map +1 -0
  83. package/lib/esm/tests/api_tests/resource_access_tags.test.js +484 -0
  84. package/lib/esm/tests/api_tests/resource_access_tags.test.js.map +1 -0
  85. package/lib/esm/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.d.ts +21 -0
  86. package/lib/esm/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.d.ts.map +1 -0
  87. package/lib/esm/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.js +358 -0
  88. package/lib/esm/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.js.map +1 -0
  89. package/lib/esm/tests/api_tests/security/F-0145-globalunique-leak.test.d.ts +20 -0
  90. package/lib/esm/tests/api_tests/security/F-0145-globalunique-leak.test.d.ts.map +1 -0
  91. package/lib/esm/tests/api_tests/security/F-0145-globalunique-leak.test.js +135 -0
  92. package/lib/esm/tests/api_tests/security/F-0145-globalunique-leak.test.js.map +1 -0
  93. package/lib/esm/tests/api_tests/security/F-0151-load-inbox-redaction.test.d.ts +18 -0
  94. package/lib/esm/tests/api_tests/security/F-0151-load-inbox-redaction.test.d.ts.map +1 -0
  95. package/lib/esm/tests/api_tests/security/F-0151-load-inbox-redaction.test.js +152 -0
  96. package/lib/esm/tests/api_tests/security/F-0151-load-inbox-redaction.test.js.map +1 -0
  97. package/lib/esm/tests/api_tests/security/F-0155-webhook-timeout.test.d.ts +20 -0
  98. package/lib/esm/tests/api_tests/security/F-0155-webhook-timeout.test.d.ts.map +1 -0
  99. package/lib/esm/tests/api_tests/security/F-0155-webhook-timeout.test.js +150 -0
  100. package/lib/esm/tests/api_tests/security/F-0155-webhook-timeout.test.js.map +1 -0
  101. package/lib/esm/tests/api_tests/time_tracks.test.d.ts +8 -0
  102. package/lib/esm/tests/api_tests/time_tracks.test.d.ts.map +1 -1
  103. package/lib/esm/tests/api_tests/time_tracks.test.js +635 -0
  104. package/lib/esm/tests/api_tests/time_tracks.test.js.map +1 -1
  105. package/lib/esm/tests/setup.d.ts.map +1 -1
  106. package/lib/esm/tests/setup.js +20 -1
  107. package/lib/esm/tests/setup.js.map +1 -1
  108. package/lib/esm/tests/tests.d.ts.map +1 -1
  109. package/lib/esm/tests/tests.js +607 -179
  110. package/lib/esm/tests/tests.js.map +1 -1
  111. package/lib/tsconfig.tsbuildinfo +1 -1
  112. package/package.json +10 -10
  113. package/src/tests/api_tests/field_redaction.test.ts +13 -0
  114. package/src/tests/api_tests/journey_error_branching.test.ts +5 -1
  115. package/src/tests/api_tests/mdi_case_offerings.test.ts +414 -0
  116. package/src/tests/api_tests/resource_access_tags.test.ts +303 -0
  117. package/src/tests/api_tests/security/F-0116-F-0119-enduser-cross-create.test.ts +221 -0
  118. package/src/tests/api_tests/security/F-0145-globalunique-leak.test.ts +78 -0
  119. package/src/tests/api_tests/security/F-0151-load-inbox-redaction.test.ts +81 -0
  120. package/src/tests/api_tests/security/F-0155-webhook-timeout.test.ts +85 -0
  121. package/src/tests/api_tests/time_tracks.test.ts +420 -0
  122. package/src/tests/setup.ts +9 -0
  123. package/src/tests/tests.ts +308 -5
  124. package/test_generated.pdf +0 -0
@@ -137,6 +137,7 @@ var calendar_event_limits_test_1 = require("./api_tests/calendar_event_limits.te
137
137
  var custom_aggregation_test_1 = require("./api_tests/custom_aggregation.test");
138
138
  var chats_analytics_test_1 = require("./api_tests/chats_analytics.test");
139
139
  var no_access_permission_checks_test_1 = require("./api_tests/no_access_permission_checks.test");
140
+ var resource_access_tags_test_1 = require("./api_tests/resource_access_tags.test");
140
141
  var field_redaction_test_1 = require("./api_tests/field_redaction.test");
141
142
  var F_0001_data_sync_redaction_bypass_test_1 = require("./api_tests/security/F-0001-data-sync-redaction-bypass.test");
142
143
  var F_0106_F_0110_enduser_write_restrictions_test_1 = require("./api_tests/security/F-0106-F-0110-enduser-write-restrictions.test");
@@ -147,6 +148,10 @@ var F_0007_invite_user_enumeration_test_1 = require("./api_tests/security/F-0007
147
148
  var F_0008_handle_incoming_communication_cross_tenant_test_1 = require("./api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test");
148
149
  var F_0013_sanitize_user_html_test_1 = require("./api_tests/security/F-0013-sanitize-user-html.test");
149
150
  var F_0016_prototype_pollution_test_1 = require("./api_tests/security/F-0016-prototype-pollution.test");
151
+ var F_0116_F_0119_enduser_cross_create_test_1 = require("./api_tests/security/F-0116-F-0119-enduser-cross-create.test");
152
+ var F_0145_globalunique_leak_test_1 = require("./api_tests/security/F-0145-globalunique-leak.test");
153
+ var F_0151_load_inbox_redaction_test_1 = require("./api_tests/security/F-0151-load-inbox-redaction.test");
154
+ var F_0155_webhook_timeout_test_1 = require("./api_tests/security/F-0155-webhook-timeout.test");
150
155
  var bulk_assignment_test_1 = require("./api_tests/bulk_assignment.test");
151
156
  var managed_content_enduser_access_test_1 = require("./api_tests/managed_content_enduser_access.test");
152
157
  var managed_content_file_access_test_1 = require("./api_tests/managed_content_file_access.test");
@@ -163,6 +168,7 @@ var organization_settings_duplicates_test_1 = require("./api_tests/organization_
163
168
  var calendar_events_bulk_update_test_1 = require("./api_tests/calendar_events_bulk_update.test");
164
169
  var openloop_webhooks_test_1 = require("./api_tests/openloop_webhooks.test");
165
170
  var beluga_pharmacy_mappings_test_1 = require("./api_tests/beluga_pharmacy_mappings.test");
171
+ var mdi_case_offerings_test_1 = require("./api_tests/mdi_case_offerings.test");
166
172
  var beluga_manual_sync_test_1 = require("./api_tests/beluga_manual_sync.test");
167
173
  var mdi_webhooks_test_1 = require("./api_tests/mdi_webhooks.test");
168
174
  var account_switcher_test_1 = require("./api_tests/account_switcher.test");
@@ -4522,6 +4528,388 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4522
4528
  }
4523
4529
  });
4524
4530
  }); };
4531
+ // Covers the "blank status matches any order status" behavior (Order Status Equals acting as "Order Status Changed").
4532
+ // Kept separate from order_status_equals_tests because a blank-status trigger would break that test's exact tag-count assertions.
4533
+ var order_status_blank_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4534
+ var A, A2, B, C, D, BA, BD, BD2, P, e2, e3, e4, e5, e6, e7, o7, eb1, eb2, eb3, e8, o8, e9, e10;
4535
+ return __generator(this, function (_a) {
4536
+ switch (_a.label) {
4537
+ case 0:
4538
+ (0, testing_1.log_header)("Automation Trigger Tests (Order Status Equals - blank status)");
4539
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4540
+ event: { type: 'Order Status Equals', info: { source: 'BlankSource' } },
4541
+ action: { type: 'Add Tags', info: { tags: ['AnyOmit'] } },
4542
+ status: 'Active',
4543
+ title: "Blank status (omitted)"
4544
+ })];
4545
+ case 1:
4546
+ A = _a.sent();
4547
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4548
+ event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '' } },
4549
+ action: { type: 'Add Tags', info: { tags: ['AnyEmpty'] } },
4550
+ status: 'Active',
4551
+ title: "Blank status (empty string)"
4552
+ })];
4553
+ case 2:
4554
+ A2 = _a.sent();
4555
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4556
+ event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '', skus: ['MATCH-SKU'] } },
4557
+ action: { type: 'Add Tags', info: { tags: ['BlankWithSku'] } },
4558
+ status: 'Active',
4559
+ title: "Blank status with SKU filter"
4560
+ })];
4561
+ case 3:
4562
+ B = _a.sent();
4563
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4564
+ event: { type: 'Order Status Equals', info: { source: 'OtherSource' } },
4565
+ action: { type: 'Add Tags', info: { tags: ['WrongSource'] } },
4566
+ status: 'Active',
4567
+ title: "Blank status, other source"
4568
+ })];
4569
+ case 4:
4570
+ C = _a.sent();
4571
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4572
+ event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: 'Shipped' } },
4573
+ action: { type: 'Add Tags', info: { tags: ['ShippedOnly'] } },
4574
+ status: 'Active',
4575
+ title: "Status-specific (regression)"
4576
+ })
4577
+ // BA/BD exercise the separate bulk-create code path (createSome of 2+); kept on their own source so the
4578
+ // pre-existing "bulk ignores sku/protocol filters" divergence doesn't affect these assertions.
4579
+ ];
4580
+ case 5:
4581
+ D = _a.sent();
4582
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4583
+ event: { type: 'Order Status Equals', info: { source: 'BulkSource' } },
4584
+ action: { type: 'Add Tags', info: { tags: ['BulkAny'] } },
4585
+ status: 'Active',
4586
+ title: "Bulk blank status"
4587
+ })];
4588
+ case 6:
4589
+ BA = _a.sent();
4590
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4591
+ event: { type: 'Order Status Equals', info: { source: 'BulkSource', status: 'Shipped' } },
4592
+ action: { type: 'Add Tags', info: { tags: ['BulkShipped'] } },
4593
+ status: 'Active',
4594
+ title: "Bulk status-specific"
4595
+ })
4596
+ // BD2's status matches NO order in the bulk batch below; backwards-compat: it must never fire (the query's $in
4597
+ // branch excludes it entirely, exactly as before the blank-status change).
4598
+ ];
4599
+ case 7:
4600
+ BD = _a.sent();
4601
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4602
+ event: { type: 'Order Status Equals', info: { source: 'BulkSource', status: 'NeverInBatch' } },
4603
+ action: { type: 'Add Tags', info: { tags: ['BulkNever'] } },
4604
+ status: 'Active',
4605
+ title: "Bulk status-specific (absent from batch)"
4606
+ })
4607
+ // P: blank status composed with a protocol filter (proves blank works with non-SKU filters + the no-protocol branch)
4608
+ ];
4609
+ case 8:
4610
+ BD2 = _a.sent();
4611
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4612
+ event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '', protocols: ['Protocol-A'] } },
4613
+ action: { type: 'Add Tags', info: { tags: ['BlankProtocol'] } },
4614
+ status: 'Active',
4615
+ title: "Blank status with protocol filter"
4616
+ })
4617
+ // Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
4618
+ ];
4619
+ case 9:
4620
+ P = _a.sent();
4621
+ // Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
4622
+ return [4 /*yield*/, (0, testing_1.async_test)("Trigger with omitted status was created", function () { return Promise.resolve(A); }, { onResult: function (t) { return !!t.id && t.event.type === 'Order Status Equals' && !t.event.info.status; } })];
4623
+ case 10:
4624
+ // Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
4625
+ _a.sent();
4626
+ return [4 /*yield*/, (0, testing_1.async_test)("Trigger with empty-string status was created", function () { return Promise.resolve(A2); }, { onResult: function (t) { return !!t.id && t.event.type === 'Order Status Equals' && t.event.info.status === ''; } })
4627
+ // Case 2: blank status fires on an arbitrary status
4628
+ ];
4629
+ case 11:
4630
+ _a.sent();
4631
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4632
+ case 12:
4633
+ e2 = _a.sent();
4634
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'StatusOne', source: 'BlankSource', title: 'Title', externalId: 'blank-1', enduserId: e2.id })];
4635
+ case 13:
4636
+ _a.sent();
4637
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4638
+ case 14:
4639
+ _a.sent(); // allow triggers to happen
4640
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank status fires on arbitrary status (no other tags)", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) {
4641
+ var _a, _b, _c, _d, _f;
4642
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4643
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4644
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BlankWithSku'))
4645
+ && !((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('WrongSource'))
4646
+ && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('ShippedOnly')));
4647
+ } })
4648
+ // Case 3: blank status fires on a totally different status value (status-value-independent)
4649
+ ];
4650
+ case 15:
4651
+ _a.sent();
4652
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4653
+ case 16:
4654
+ e3 = _a.sent();
4655
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'totally-arbitrary-xyz', source: 'BlankSource', title: 'Title', externalId: 'blank-2', enduserId: e3.id })];
4656
+ case 17:
4657
+ _a.sent();
4658
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4659
+ case 18:
4660
+ _a.sent(); // allow triggers to happen
4661
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank status fires on a different arbitrary status", function () { return sdk.api.endusers.getOne(e3.id); }, { onResult: function (e) {
4662
+ var _a, _b;
4663
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4664
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty')));
4665
+ } })
4666
+ // Case 4: source isolation - blank trigger does not fire for a different source
4667
+ ];
4668
+ case 19:
4669
+ _a.sent();
4670
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4671
+ case 20:
4672
+ e4 = _a.sent();
4673
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'StatusOne', source: 'DifferentSource', title: 'Title', externalId: 'blank-3', enduserId: e4.id })];
4674
+ case 21:
4675
+ _a.sent();
4676
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4677
+ case 22:
4678
+ _a.sent(); // allow triggers to happen
4679
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank status is still scoped to its source", function () { return sdk.api.endusers.getOne(e4.id); }, { onResult: function (e) {
4680
+ var _a, _b, _c;
4681
+ return !!(!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4682
+ && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4683
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('WrongSource')) // C only matches OtherSource
4684
+ );
4685
+ } })
4686
+ // Case 5a: other filters still enforced with blank status (sku mismatch)
4687
+ ];
4688
+ case 23:
4689
+ _a.sent();
4690
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4691
+ case 24:
4692
+ e5 = _a.sent();
4693
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'blank-4', enduserId: e5.id, sku: 'NOPE' })];
4694
+ case 25:
4695
+ _a.sent();
4696
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4697
+ case 26:
4698
+ _a.sent(); // allow triggers to happen
4699
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank status + SKU filter does not fire on SKU mismatch", function () { return sdk.api.endusers.getOne(e5.id); }, { onResult: function (e) {
4700
+ var _a, _b, _c;
4701
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4702
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4703
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BlankWithSku')));
4704
+ } })
4705
+ // Case 5b: other filters still enforced with blank status (sku match)
4706
+ ];
4707
+ case 27:
4708
+ _a.sent();
4709
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4710
+ case 28:
4711
+ e6 = _a.sent();
4712
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'blank-5', enduserId: e6.id, sku: 'MATCH-SKU' })];
4713
+ case 29:
4714
+ _a.sent();
4715
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4716
+ case 30:
4717
+ _a.sent(); // allow triggers to happen
4718
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank status + SKU filter fires on SKU match", function () { return sdk.api.endusers.getOne(e6.id); }, { onResult: function (e) {
4719
+ var _a, _b, _c;
4720
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4721
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4722
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BlankWithSku')));
4723
+ } })
4724
+ // Case 6: update path + regression coexistence with a status-specific trigger
4725
+ ];
4726
+ case 31:
4727
+ _a.sent();
4728
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4729
+ case 32:
4730
+ e7 = _a.sent();
4731
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Created', source: 'BlankSource', title: 'Title', externalId: 'blank-6', enduserId: e7.id })];
4732
+ case 33:
4733
+ o7 = _a.sent();
4734
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4735
+ case 34:
4736
+ _a.sent(); // allow triggers to happen
4737
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank fires on create; status-specific (Shipped) does not yet", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) {
4738
+ var _a, _b, _c;
4739
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4740
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4741
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')));
4742
+ } })
4743
+ // update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
4744
+ ];
4745
+ case 35:
4746
+ _a.sent();
4747
+ // update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
4748
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o7.id, { status: 'Delivered', externalId: 'blank-6-delivered' })];
4749
+ case 36:
4750
+ // update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
4751
+ _a.sent();
4752
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4753
+ case 37:
4754
+ _a.sent(); // allow triggers to happen
4755
+ return [4 /*yield*/, (0, testing_1.async_test)("Update to non-matching status: blank fires, status-specific (Shipped) does NOT fire", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) {
4756
+ var _a, _b, _c;
4757
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit') // proves the update event was processed
4758
+ )
4759
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4760
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')) // 'Delivered' must not trigger the 'Shipped' trigger
4761
+ );
4762
+ } })
4763
+ // now update to the matching status: status-specific trigger fires
4764
+ ];
4765
+ case 38:
4766
+ _a.sent();
4767
+ // now update to the matching status: status-specific trigger fires
4768
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o7.id, { status: 'Shipped', externalId: 'blank-6-shipped' })];
4769
+ case 39:
4770
+ // now update to the matching status: status-specific trigger fires
4771
+ _a.sent();
4772
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4773
+ case 40:
4774
+ _a.sent(); // allow triggers to happen
4775
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank fires on update too; status-specific (Shipped) now fires", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) {
4776
+ var _a, _b, _c;
4777
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
4778
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
4779
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')));
4780
+ } })
4781
+ // Case 7: bulk create path (createSome of 2+) must honor blank status + status-specific selectivity.
4782
+ // This exercises a SEPARATE matching code path (handle_orders_create bulk branch) from single creates.
4783
+ ];
4784
+ case 41:
4785
+ _a.sent();
4786
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4787
+ case 42:
4788
+ eb1 = _a.sent();
4789
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4790
+ case 43:
4791
+ eb2 = _a.sent();
4792
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4793
+ case 44:
4794
+ eb3 = _a.sent();
4795
+ return [4 /*yield*/, sdk.api.enduser_orders.createSome([
4796
+ { status: 'StatusA', source: 'BulkSource', title: 'Title', externalId: 'bulk-1', enduserId: eb1.id },
4797
+ { status: 'Shipped', source: 'BulkSource', title: 'Title', externalId: 'bulk-2', enduserId: eb2.id },
4798
+ { status: 'StatusB', source: 'BulkSource', title: 'Title', externalId: 'bulk-3', enduserId: eb3.id },
4799
+ ])];
4800
+ case 45:
4801
+ _a.sent();
4802
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4803
+ case 46:
4804
+ _a.sent(); // allow triggers to happen
4805
+ return [4 /*yield*/, (0, testing_1.async_test)("Bulk create: blank fires on non-Shipped order; status-specific (matching + absent) do not", function () { return sdk.api.endusers.getOne(eb1.id); }, { onResult: function (e) { var _a, _b, _c; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('BulkAny')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('BulkShipped')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BulkNever'))); } })];
4806
+ case 47:
4807
+ _a.sent();
4808
+ return [4 /*yield*/, (0, testing_1.async_test)("Bulk create: blank + matching status-specific fire on the Shipped order; absent-status one does not", function () { return sdk.api.endusers.getOne(eb2.id); }, { onResult: function (e) { var _a, _b, _c; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('BulkAny')) && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('BulkShipped')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BulkNever'))); } })];
4809
+ case 48:
4810
+ _a.sent();
4811
+ return [4 /*yield*/, (0, testing_1.async_test)("Bulk create: blank fires on the other non-Shipped order; status-specific (matching + absent) do not", function () { return sdk.api.endusers.getOne(eb3.id); }, { onResult: function (e) { var _a, _b, _c; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('BulkAny')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('BulkShipped')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BulkNever'))); } })
4812
+ // Case 8: an order update that does NOT change status must not run the handler (true "status changed" semantic).
4813
+ ];
4814
+ case 49:
4815
+ _a.sent();
4816
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4817
+ case 50:
4818
+ e8 = _a.sent();
4819
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Shipped', source: 'BlankSource', title: 'Title', externalId: 'noChange-1', enduserId: e8.id })];
4820
+ case 51:
4821
+ o8 = _a.sent();
4822
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4823
+ case 52:
4824
+ _a.sent(); // allow triggers to happen
4825
+ return [4 /*yield*/, (0, testing_1.async_test)("Setup: status-specific (Shipped) fired on create", function () { return sdk.api.endusers.getOne(e8.id); }, { onResult: function (e) { var _a, _b; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit')) && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('ShippedOnly'))); } })
4826
+ // clear tags (replaceObjectFields forces the empty array to actually replace)
4827
+ ];
4828
+ case 53:
4829
+ _a.sent();
4830
+ // clear tags (replaceObjectFields forces the empty array to actually replace)
4831
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e8.id, { tags: [] }, { replaceObjectFields: true })
4832
+ // sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
4833
+ ];
4834
+ case 54:
4835
+ // clear tags (replaceObjectFields forces the empty array to actually replace)
4836
+ _a.sent();
4837
+ // sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
4838
+ return [4 /*yield*/, (0, testing_1.async_test)("Setup: tags cleared before non-status update", function () { return sdk.api.endusers.getOne(e8.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })
4839
+ // update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
4840
+ // If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
4841
+ ];
4842
+ case 55:
4843
+ // sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
4844
+ _a.sent();
4845
+ // update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
4846
+ // If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
4847
+ return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o8.id, { tracking: 'tracking-123', externalId: 'noChange-1b' })];
4848
+ case 56:
4849
+ // update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
4850
+ // If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
4851
+ _a.sent();
4852
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4853
+ case 57:
4854
+ _a.sent(); // allow triggers to happen
4855
+ return [4 /*yield*/, (0, testing_1.async_test)("Update with unchanged status does not fire any trigger", function () { return sdk.api.endusers.getOne(e8.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })
4856
+ // Case 9: protocol filter with blank status - order without a protocol must not fire (the order.protocol ? : false branch)
4857
+ ];
4858
+ case 58:
4859
+ _a.sent();
4860
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4861
+ case 59:
4862
+ e9 = _a.sent();
4863
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'proto-1', enduserId: e9.id })];
4864
+ case 60:
4865
+ _a.sent();
4866
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4867
+ case 61:
4868
+ _a.sent(); // allow triggers to happen
4869
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank + protocol filter does not fire when order has no protocol", function () { return sdk.api.endusers.getOne(e9.id); }, { onResult: function (e) { var _a, _b; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('BlankProtocol'))); } })];
4870
+ case 62:
4871
+ _a.sent();
4872
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4873
+ case 63:
4874
+ e10 = _a.sent();
4875
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'proto-2', enduserId: e10.id, protocol: 'Protocol-A' })];
4876
+ case 64:
4877
+ _a.sent();
4878
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4879
+ case 65:
4880
+ _a.sent(); // allow triggers to happen
4881
+ return [4 /*yield*/, (0, testing_1.async_test)("Blank + protocol filter fires when order protocol matches", function () { return sdk.api.endusers.getOne(e10.id); }, { onResult: function (e) { var _a, _b; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit')) && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('BlankProtocol'))); } })];
4882
+ case 66:
4883
+ _a.sent();
4884
+ return [4 /*yield*/, Promise.all([
4885
+ sdk.api.automation_triggers.deleteOne(A.id),
4886
+ sdk.api.automation_triggers.deleteOne(A2.id),
4887
+ sdk.api.automation_triggers.deleteOne(B.id),
4888
+ sdk.api.automation_triggers.deleteOne(C.id),
4889
+ sdk.api.automation_triggers.deleteOne(D.id),
4890
+ sdk.api.automation_triggers.deleteOne(BA.id),
4891
+ sdk.api.automation_triggers.deleteOne(BD.id),
4892
+ sdk.api.automation_triggers.deleteOne(BD2.id),
4893
+ sdk.api.automation_triggers.deleteOne(P.id),
4894
+ sdk.api.endusers.deleteOne(e2.id),
4895
+ sdk.api.endusers.deleteOne(e3.id),
4896
+ sdk.api.endusers.deleteOne(e4.id),
4897
+ sdk.api.endusers.deleteOne(e5.id),
4898
+ sdk.api.endusers.deleteOne(e6.id),
4899
+ sdk.api.endusers.deleteOne(e7.id),
4900
+ sdk.api.endusers.deleteOne(eb1.id),
4901
+ sdk.api.endusers.deleteOne(eb2.id),
4902
+ sdk.api.endusers.deleteOne(eb3.id),
4903
+ sdk.api.endusers.deleteOne(e8.id),
4904
+ sdk.api.endusers.deleteOne(e9.id),
4905
+ sdk.api.endusers.deleteOne(e10.id),
4906
+ ])];
4907
+ case 67:
4908
+ _a.sent();
4909
+ return [2 /*return*/];
4910
+ }
4911
+ });
4912
+ }); };
4525
4913
  var tag_added_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4526
4914
  var t1, t2, t3, e;
4527
4915
  return __generator(this, function (_a) {
@@ -6450,56 +6838,59 @@ var automation_trigger_tests = function () { return __awaiter(void 0, void 0, vo
6450
6838
  return [4 /*yield*/, order_status_equals_tests()];
6451
6839
  case 3:
6452
6840
  _a.sent();
6453
- return [4 /*yield*/, (0, set_fields_order_templates_test_1.set_fields_order_templates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6841
+ return [4 /*yield*/, order_status_blank_tests()];
6454
6842
  case 4:
6455
6843
  _a.sent();
6456
- return [4 /*yield*/, (0, medication_added_trigger_test_1.medication_added_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6844
+ return [4 /*yield*/, (0, set_fields_order_templates_test_1.set_fields_order_templates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6457
6845
  case 5:
6458
6846
  _a.sent();
6459
- return [4 /*yield*/, appointment_cancelled_tests()];
6847
+ return [4 /*yield*/, (0, medication_added_trigger_test_1.medication_added_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6460
6848
  case 6:
6461
6849
  _a.sent();
6462
- return [4 /*yield*/, set_fields_tests()];
6850
+ return [4 /*yield*/, appointment_cancelled_tests()];
6463
6851
  case 7:
6464
6852
  _a.sent();
6465
- return [4 /*yield*/, (0, purchase_made_trigger_test_1.purchase_made_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6853
+ return [4 /*yield*/, set_fields_tests()];
6466
6854
  case 8:
6467
6855
  _a.sent();
6468
- return [4 /*yield*/, (0, appointment_rescheduled_trigger_test_1.appointment_rescheduled_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6856
+ return [4 /*yield*/, (0, purchase_made_trigger_test_1.purchase_made_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6469
6857
  case 9:
6470
6858
  _a.sent();
6471
- return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6859
+ return [4 /*yield*/, (0, appointment_rescheduled_trigger_test_1.appointment_rescheduled_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6472
6860
  case 10:
6473
6861
  _a.sent();
6474
- return [4 /*yield*/, form_response_set_fields_journey_tests()];
6862
+ return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6475
6863
  case 11:
6476
6864
  _a.sent();
6477
- return [4 /*yield*/, (0, appointment_completed_trigger_test_1.appointment_completed_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6865
+ return [4 /*yield*/, form_response_set_fields_journey_tests()];
6478
6866
  case 12:
6479
6867
  _a.sent();
6480
- return [4 /*yield*/, trigger_events_api_tests()];
6868
+ return [4 /*yield*/, (0, appointment_completed_trigger_test_1.appointment_completed_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6481
6869
  case 13:
6482
6870
  _a.sent();
6483
- return [4 /*yield*/, fields_changed_tests()];
6871
+ return [4 /*yield*/, trigger_events_api_tests()];
6484
6872
  case 14:
6485
6873
  _a.sent();
6486
- return [4 /*yield*/, field_equals_trigger_tests()];
6874
+ return [4 /*yield*/, fields_changed_tests()];
6487
6875
  case 15:
6488
6876
  _a.sent();
6489
- return [4 /*yield*/, contact_created_tests()];
6877
+ return [4 /*yield*/, field_equals_trigger_tests()];
6490
6878
  case 16:
6491
6879
  _a.sent();
6492
- return [4 /*yield*/, appointment_created_tests()];
6880
+ return [4 /*yield*/, contact_created_tests()];
6493
6881
  case 17:
6494
6882
  _a.sent();
6495
- return [4 /*yield*/, tag_added_tests()];
6883
+ return [4 /*yield*/, appointment_created_tests()];
6496
6884
  case 18:
6497
6885
  _a.sent();
6498
- return [4 /*yield*/, order_created_tests()];
6886
+ return [4 /*yield*/, tag_added_tests()];
6499
6887
  case 19:
6500
6888
  _a.sent();
6501
- return [4 /*yield*/, formSubmittedTriggerTests()];
6889
+ return [4 /*yield*/, order_created_tests()];
6502
6890
  case 20:
6891
+ _a.sent();
6892
+ return [4 /*yield*/, formSubmittedTriggerTests()];
6893
+ case 21:
6503
6894
  _a.sent();
6504
6895
  return [2 /*return*/];
6505
6896
  }
@@ -10301,7 +10692,11 @@ var switch_to_related_contacts_tests = function () { return __awaiter(void 0, vo
10301
10692
  return [4 /*yield*/, sdk.api.endusers.updateOne(child.id, { journeys: (_a = {}, _a[journey.id] = '', _a) })];
10302
10693
  case 6:
10303
10694
  _b.sent();
10304
- return [4 /*yield*/, (0, testing_1.async_test)("Related contact got tags", function () { return pollForResults(function () { return sdk.api.endusers.getOne(parent.id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Success')); }, 50, 200); }, testing_1.passOnAnyResult)];
10695
+ return [4 /*yield*/, (0, testing_1.async_test)("Related contact got tags", function () { return pollForResults(function () { return sdk.api.endusers.getOne(parent.id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Success')); },
10696
+ // switchToRelatedContact (cycle 1) then the afterAction addEnduserTags (cycle 2) each wait a
10697
+ // full worker poll cycle (>= 8s, see worker pollingDelaySeconds), so ~16s worst case. Poll for
10698
+ // 30s (500ms x 60) to cover two cycles plus buffer; the old 10s window timed out flakily.
10699
+ 500, 60); }, testing_1.passOnAnyResult)];
10305
10700
  case 7:
10306
10701
  _b.sent();
10307
10702
  return [2 /*return*/, Promise.all([
@@ -16291,12 +16686,16 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16291
16686
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // wait for IP to be set
16292
16687
  case 4:
16293
16688
  _a.sent(); // wait for IP to be set
16294
- (0, testing_1.async_test)('IP Set on Enduser creation', function () { return sdk.api.endusers.getOne(enduserId); }, { onResult: function (result) { var _a; return !!((_a = result.fields) === null || _a === void 0 ? void 0 : _a.IP); } });
16689
+ return [4 /*yield*/, (0, testing_1.async_test)('IP Set on Enduser creation', function () { return sdk.api.endusers.getOne(enduserId); }, { onResult: function (result) { var _a; return !!((_a = result.fields) === null || _a === void 0 ? void 0 : _a.IP); } })
16690
+ // clear ip and set other field to make sure IP doesn't overwrite other custom fields
16691
+ ];
16692
+ case 5:
16693
+ _a.sent();
16295
16694
  // clear ip and set other field to make sure IP doesn't overwrite other custom fields
16296
16695
  return [4 /*yield*/, sdk.api.endusers.updateOne(enduserId, { fields: { otherField: "Set" } }, { replaceObjectFields: true })
16297
16696
  // should match and update in place
16298
16697
  ];
16299
- case 5:
16698
+ case 6:
16300
16699
  // clear ip and set other field to make sure IP doesn't overwrite other custom fields
16301
16700
  _a.sent();
16302
16701
  // should match and update in place
@@ -16308,15 +16707,20 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16308
16707
  fname: 'session',
16309
16708
  lname: 'test',
16310
16709
  })];
16311
- case 6:
16710
+ case 7:
16312
16711
  // should match and update in place
16313
16712
  _a.sent();
16314
- (0, testing_1.async_test)('IP Set on update', function () { return sdk.api.endusers.getOne(enduserId); }, { onResult: function (result) { var _a, _b; return !!((_a = result.fields) === null || _a === void 0 ? void 0 : _a.IP) && ((_b = result.fields) === null || _b === void 0 ? void 0 : _b.otherField) === 'Set' && result.id === enduserId; } });
16713
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // wait for IP to be re-set
16714
+ case 8:
16715
+ _a.sent(); // wait for IP to be re-set
16716
+ return [4 /*yield*/, (0, testing_1.async_test)('IP Set on update', function () { return sdk.api.endusers.getOne(enduserId); }, { onResult: function (result) { var _a, _b; return !!((_a = result.fields) === null || _a === void 0 ? void 0 : _a.IP) && ((_b = result.fields) === null || _b === void 0 ? void 0 : _b.otherField) === 'Set' && result.id === enduserId; } })];
16717
+ case 9:
16718
+ _a.sent();
16315
16719
  return [4 /*yield*/, Promise.all([
16316
16720
  sdk.api.forms.deleteOne(form.id),
16317
16721
  sdk.api.endusers.deleteOne(enduserId),
16318
16722
  ])];
16319
- case 7:
16723
+ case 10:
16320
16724
  _a.sent();
16321
16725
  return [2 /*return*/];
16322
16726
  }
@@ -16337,7 +16741,7 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16337
16741
  (0, testing_1.assert)((0, utilities_1.truncate_string)(null, { length: 4, showEllipsis: false }) === '', 'truncate doesnt work for non string', 'trucate works for non-string');
16338
16742
  _l.label = 2;
16339
16743
  case 2:
16340
- _l.trys.push([2, 146, , 147]);
16744
+ _l.trys.push([2, 154, , 155]);
16341
16745
  get_next_reminder_timestamp_tests();
16342
16746
  (0, exports.form_conditional_logic_tests)();
16343
16747
  return [4 /*yield*/, test_weighted_round_robin()];
@@ -16484,393 +16888,417 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16484
16888
  return [4 /*yield*/, (0, setup_1.setup_tests)(sdk, sdkNonAdmin)];
16485
16889
  case 18:
16486
16890
  _l.sent();
16487
- return [4 /*yield*/, (0, beluga_manual_sync_test_1.beluga_manual_sync_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16891
+ return [4 /*yield*/, (0, resource_access_tags_test_1.resource_access_tags_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16488
16892
  case 19:
16489
16893
  _l.sent();
16490
- return [4 /*yield*/, (0, beluga_pharmacy_mappings_test_1.beluga_pharmacy_mappings_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16894
+ return [4 /*yield*/, (0, beluga_manual_sync_test_1.beluga_manual_sync_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16491
16895
  case 20:
16492
16896
  _l.sent();
16493
- return [4 /*yield*/, (0, F_0106_F_0110_enduser_write_restrictions_test_1.enduser_write_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16897
+ return [4 /*yield*/, (0, beluga_pharmacy_mappings_test_1.beluga_pharmacy_mappings_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16494
16898
  case 21:
16495
16899
  _l.sent();
16496
- return [4 /*yield*/, (0, user_portal_settings_test_1.user_portal_settings_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16900
+ return [4 /*yield*/, (0, mdi_case_offerings_test_1.mdi_case_offerings_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16497
16901
  case 22:
16498
16902
  _l.sent();
16499
- return [4 /*yield*/, automation_trigger_tests()];
16903
+ return [4 /*yield*/, (0, F_0106_F_0110_enduser_write_restrictions_test_1.enduser_write_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16500
16904
  case 23:
16501
16905
  _l.sent();
16502
- return [4 /*yield*/, (0, F_0007_invite_user_enumeration_test_1.invite_user_enumeration_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16906
+ return [4 /*yield*/, (0, F_0116_F_0119_enduser_cross_create_test_1.enduser_cross_create_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16503
16907
  case 24:
16504
16908
  _l.sent();
16505
- return [4 /*yield*/, (0, F_0008_handle_incoming_communication_cross_tenant_test_1.handle_incoming_communication_cross_tenant_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16909
+ return [4 /*yield*/, (0, F_0145_globalunique_leak_test_1.globalunique_leak_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16506
16910
  case 25:
16507
16911
  _l.sent();
16508
- return [4 /*yield*/, (0, calendar_event_webhook_template_test_1.calendar_event_webhook_template_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16912
+ return [4 /*yield*/, (0, F_0151_load_inbox_redaction_test_1.load_inbox_redaction_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16509
16913
  case 26:
16510
16914
  _l.sent();
16511
- return [4 /*yield*/, (0, outbound_chat_sent_trigger_test_1.outbound_chat_sent_trigger_tests)({ sdk: sdk })];
16915
+ return [4 /*yield*/, (0, F_0155_webhook_timeout_test_1.webhook_timeout_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16512
16916
  case 27:
16513
16917
  _l.sent();
16514
- return [4 /*yield*/, (0, enduser_login_rate_limits_test_1.enduser_login_rate_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16918
+ return [4 /*yield*/, (0, user_portal_settings_test_1.user_portal_settings_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16515
16919
  case 28:
16516
16920
  _l.sent();
16517
- return [4 /*yield*/, (0, F_0001_data_sync_redaction_bypass_test_1.data_sync_redaction_bypass_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16921
+ return [4 /*yield*/, automation_trigger_tests()];
16518
16922
  case 29:
16519
16923
  _l.sent();
16520
- return [4 /*yield*/, (0, F_0005_ai_conversations_rbac_test_1.ai_conversations_rbac_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16924
+ return [4 /*yield*/, (0, F_0007_invite_user_enumeration_test_1.invite_user_enumeration_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16521
16925
  case 30:
16522
16926
  _l.sent();
16523
- return [4 /*yield*/, (0, F_0053_cascade_role_rename_cross_tenant_test_1.cascade_role_rename_cross_tenant_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16927
+ return [4 /*yield*/, (0, F_0008_handle_incoming_communication_cross_tenant_test_1.handle_incoming_communication_cross_tenant_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16524
16928
  case 31:
16525
16929
  _l.sent();
16526
- return [4 /*yield*/, (0, F_0076_self_admin_role_assignment_test_1.self_admin_role_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16930
+ return [4 /*yield*/, (0, calendar_event_webhook_template_test_1.calendar_event_webhook_template_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16527
16931
  case 32:
16528
16932
  _l.sent();
16529
- return [4 /*yield*/, (0, F_0013_sanitize_user_html_test_1.sanitize_user_html_xss_tests)()];
16933
+ return [4 /*yield*/, (0, outbound_chat_sent_trigger_test_1.outbound_chat_sent_trigger_tests)({ sdk: sdk })];
16530
16934
  case 33:
16531
16935
  _l.sent();
16532
- return [4 /*yield*/, (0, F_0016_prototype_pollution_test_1.prototype_pollution_tests)()];
16936
+ return [4 /*yield*/, (0, enduser_login_rate_limits_test_1.enduser_login_rate_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16533
16937
  case 34:
16534
16938
  _l.sent();
16535
- return [4 /*yield*/, (0, account_switcher_test_1.account_switcher_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16939
+ return [4 /*yield*/, (0, F_0001_data_sync_redaction_bypass_test_1.data_sync_redaction_bypass_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16536
16940
  case 35:
16537
16941
  _l.sent();
16538
- return [4 /*yield*/, (0, enduser_login_test_1.enduser_login_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16942
+ return [4 /*yield*/, (0, F_0005_ai_conversations_rbac_test_1.ai_conversations_rbac_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16539
16943
  case 36:
16540
16944
  _l.sent();
16541
- return [4 /*yield*/, (0, outbound_chat_sent_trigger_test_1.outbound_chat_sent_trigger_tests)({ sdk: sdk })];
16945
+ return [4 /*yield*/, (0, F_0053_cascade_role_rename_cross_tenant_test_1.cascade_role_rename_cross_tenant_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16542
16946
  case 37:
16543
16947
  _l.sent();
16544
- return [4 /*yield*/, (0, enduser_cross_access_isolation_test_1.enduser_cross_access_isolation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16948
+ return [4 /*yield*/, (0, F_0076_self_admin_role_assignment_test_1.self_admin_role_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16545
16949
  case 38:
16546
16950
  _l.sent();
16547
- return [4 /*yield*/, (0, eom_procedure_codes_test_1.eom_procedure_codes_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16951
+ return [4 /*yield*/, (0, F_0013_sanitize_user_html_test_1.sanitize_user_html_xss_tests)()];
16548
16952
  case 39:
16549
16953
  _l.sent();
16550
- return [4 /*yield*/, (0, cross_org_api_key_test_1.cross_org_api_key_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16954
+ return [4 /*yield*/, (0, F_0016_prototype_pollution_test_1.prototype_pollution_tests)()];
16551
16955
  case 40:
16552
16956
  _l.sent();
16553
- return [4 /*yield*/, (0, organization_settings_duplicates_test_1.organization_settings_duplicates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16957
+ return [4 /*yield*/, (0, account_switcher_test_1.account_switcher_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16554
16958
  case 41:
16555
16959
  _l.sent();
16556
- return [4 /*yield*/, (0, enduser_session_invalidation_test_1.enduser_session_invalidation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16960
+ return [4 /*yield*/, (0, enduser_login_test_1.enduser_login_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16557
16961
  case 42:
16558
16962
  _l.sent();
16559
- return [4 /*yield*/, (0, chats_analytics_test_1.chats_analytics_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16963
+ return [4 /*yield*/, (0, outbound_chat_sent_trigger_test_1.outbound_chat_sent_trigger_tests)({ sdk: sdk })];
16560
16964
  case 43:
16561
16965
  _l.sent();
16562
- return [4 /*yield*/, (0, field_redaction_test_1.field_redaction_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16966
+ return [4 /*yield*/, (0, enduser_cross_access_isolation_test_1.enduser_cross_access_isolation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16563
16967
  case 44:
16564
16968
  _l.sent();
16565
- return [4 /*yield*/, (0, form_submitted_trigger_test_1.form_submitted_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16969
+ return [4 /*yield*/, (0, eom_procedure_codes_test_1.eom_procedure_codes_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16566
16970
  case 45:
16567
16971
  _l.sent();
16568
- return [4 /*yield*/, (0, date_string_validation_test_1.date_string_validation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16972
+ return [4 /*yield*/, (0, cross_org_api_key_test_1.cross_org_api_key_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16569
16973
  case 46:
16570
16974
  _l.sent();
16571
- return [4 /*yield*/, (0, openloop_webhooks_test_1.openloop_webhooks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16975
+ return [4 /*yield*/, (0, organization_settings_duplicates_test_1.organization_settings_duplicates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16572
16976
  case 47:
16573
16977
  _l.sent();
16574
- return [4 /*yield*/, (0, mdi_webhooks_test_1.mdi_webhooks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16978
+ return [4 /*yield*/, (0, enduser_session_invalidation_test_1.enduser_session_invalidation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16575
16979
  case 48:
16576
16980
  _l.sent();
16577
- return [4 /*yield*/, (0, integrations_redacted_test_1.integrations_redacted_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16981
+ return [4 /*yield*/, (0, chats_analytics_test_1.chats_analytics_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16578
16982
  case 49:
16579
16983
  _l.sent();
16580
- return [4 /*yield*/, (0, mdb_sort_test_1.mdb_sort_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16984
+ return [4 /*yield*/, (0, field_redaction_test_1.field_redaction_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16581
16985
  case 50:
16582
16986
  _l.sent();
16583
- return [4 /*yield*/, search_tests()];
16987
+ return [4 /*yield*/, (0, form_submitted_trigger_test_1.form_submitted_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16584
16988
  case 51:
16585
16989
  _l.sent();
16586
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16990
+ return [4 /*yield*/, (0, date_string_validation_test_1.date_string_validation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16587
16991
  case 52:
16588
16992
  _l.sent();
16589
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_historical_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16993
+ return [4 /*yield*/, (0, openloop_webhooks_test_1.openloop_webhooks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16590
16994
  case 53:
16591
16995
  _l.sent();
16592
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_correction_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16996
+ return [4 /*yield*/, (0, mdi_webhooks_test_1.mdi_webhooks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16593
16997
  case 54:
16594
16998
  _l.sent();
16595
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_review_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16999
+ return [4 /*yield*/, (0, integrations_redacted_test_1.integrations_redacted_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16596
17000
  case 55:
16597
17001
  _l.sent();
16598
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_lock_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17002
+ return [4 /*yield*/, (0, mdb_sort_test_1.mdb_sort_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16599
17003
  case 56:
16600
17004
  _l.sent();
16601
- return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_edge_case_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17005
+ return [4 /*yield*/, search_tests()];
16602
17006
  case 57:
16603
17007
  _l.sent();
16604
- return [4 /*yield*/, (0, calendar_event_limits_test_1.calendar_event_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17008
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16605
17009
  case 58:
16606
17010
  _l.sent();
16607
- return [4 /*yield*/, (0, get_some_projection_test_1.get_some_projection_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17011
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_historical_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16608
17012
  case 59:
16609
17013
  _l.sent();
16610
- return [4 /*yield*/, (0, elation_user_id_test_1.elation_user_id_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17014
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_correction_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16611
17015
  case 60:
16612
17016
  _l.sent();
16613
- return [4 /*yield*/, (0, custom_dashboards_test_1.custom_dashboards_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17017
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_review_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16614
17018
  case 61:
16615
17019
  _l.sent();
16616
- return [4 /*yield*/, (0, concurrent_build_threads_test_1.concurrent_build_threads_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17020
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_lock_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16617
17021
  case 62:
16618
17022
  _l.sent();
16619
- return [4 /*yield*/, (0, custom_aggregation_test_1.custom_aggregation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17023
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_edge_case_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16620
17024
  case 63:
16621
17025
  _l.sent();
16622
- return [4 /*yield*/, (0, no_access_permission_checks_test_1.no_access_permission_checks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17026
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_resubmit_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16623
17027
  case 64:
16624
17028
  _l.sent();
16625
- return [4 /*yield*/, enduser_tests()];
17029
+ return [4 /*yield*/, (0, time_tracks_test_1.time_tracks_appointment_duration_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16626
17030
  case 65:
16627
17031
  _l.sent();
16628
- return [4 /*yield*/, (0, form_started_trigger_test_1.form_started_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17032
+ return [4 /*yield*/, (0, calendar_event_limits_test_1.calendar_event_limits_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16629
17033
  case 66:
16630
17034
  _l.sent();
16631
- return [4 /*yield*/, (0, load_team_chat_test_1.load_team_chat_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17035
+ return [4 /*yield*/, (0, get_some_projection_test_1.get_some_projection_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16632
17036
  case 67:
16633
17037
  _l.sent();
16634
- return [4 /*yield*/, (0, ai_conversations_test_1.ai_conversations_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17038
+ return [4 /*yield*/, (0, elation_user_id_test_1.elation_user_id_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16635
17039
  case 68:
16636
17040
  _l.sent();
16637
- return [4 /*yield*/, (0, inbox_thread_assignment_updates_test_1.inbox_thread_assignment_updates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17041
+ return [4 /*yield*/, (0, custom_dashboards_test_1.custom_dashboards_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16638
17042
  case 69:
16639
17043
  _l.sent();
16640
- return [4 /*yield*/, (0, inbox_thread_draft_scheduled_test_1.inbox_thread_draft_scheduled_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17044
+ return [4 /*yield*/, (0, concurrent_build_threads_test_1.concurrent_build_threads_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16641
17045
  case 70:
16642
17046
  _l.sent();
16643
- return [4 /*yield*/, (0, load_threads_autobuild_test_1.load_threads_autobuild_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17047
+ return [4 /*yield*/, (0, custom_aggregation_test_1.custom_aggregation_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16644
17048
  case 71:
16645
17049
  _l.sent();
16646
- return [4 /*yield*/, inbox_threads_new_fields_tests()];
17050
+ return [4 /*yield*/, (0, no_access_permission_checks_test_1.no_access_permission_checks_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16647
17051
  case 72:
16648
17052
  _l.sent();
16649
- return [4 /*yield*/, (0, auto_merge_form_submission_test_1.auto_merge_form_submission_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17053
+ return [4 /*yield*/, enduser_tests()];
16650
17054
  case 73:
16651
17055
  _l.sent();
16652
- return [4 /*yield*/, threadKeyTests()];
17056
+ return [4 /*yield*/, (0, form_started_trigger_test_1.form_started_trigger_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16653
17057
  case 74:
16654
17058
  _l.sent();
16655
- return [4 /*yield*/, (0, managed_content_enduser_access_test_1.managed_content_enduser_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17059
+ return [4 /*yield*/, (0, load_team_chat_test_1.load_team_chat_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16656
17060
  case 75:
16657
17061
  _l.sent();
16658
- return [4 /*yield*/, (0, managed_content_file_access_test_1.managed_content_file_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17062
+ return [4 /*yield*/, (0, ai_conversations_test_1.ai_conversations_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16659
17063
  case 76:
16660
17064
  _l.sent();
16661
- return [4 /*yield*/, (0, afteraction_day_of_month_delay_test_1.afteraction_day_of_month_delay_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17065
+ return [4 /*yield*/, (0, inbox_thread_assignment_updates_test_1.inbox_thread_assignment_updates_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16662
17066
  case 77:
16663
17067
  _l.sent();
16664
- return [4 /*yield*/, (0, bulk_assignment_test_1.bulk_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17068
+ return [4 /*yield*/, (0, inbox_thread_draft_scheduled_test_1.inbox_thread_draft_scheduled_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16665
17069
  case 78:
16666
17070
  _l.sent();
16667
- return [4 /*yield*/, (0, exports.formsort_tests)()];
17071
+ return [4 /*yield*/, (0, load_threads_autobuild_test_1.load_threads_autobuild_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16668
17072
  case 79:
16669
17073
  _l.sent();
16670
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
17074
+ return [4 /*yield*/, inbox_threads_new_fields_tests()];
16671
17075
  case 80:
16672
17076
  _l.sent();
16673
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
17077
+ return [4 /*yield*/, (0, auto_merge_form_submission_test_1.auto_merge_form_submission_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16674
17078
  case 81:
16675
17079
  _l.sent();
16676
- return [4 /*yield*/, (0, monthly_availability_restrictions_test_1.monthly_availability_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17080
+ return [4 /*yield*/, threadKeyTests()];
16677
17081
  case 82:
16678
17082
  _l.sent();
16679
- return [4 /*yield*/, (0, journey_error_branching_test_1.journey_error_branching_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17083
+ return [4 /*yield*/, (0, managed_content_enduser_access_test_1.managed_content_enduser_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16680
17084
  case 83:
16681
17085
  _l.sent();
16682
- return [4 /*yield*/, (0, message_assignment_trigger_test_1.message_assignment_trigger_tests)({ sdk: sdk })];
17086
+ return [4 /*yield*/, (0, managed_content_file_access_test_1.managed_content_file_access_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16683
17087
  case 84:
16684
17088
  _l.sent();
16685
- return [4 /*yield*/, inbox_threads_building_tests()];
17089
+ return [4 /*yield*/, (0, afteraction_day_of_month_delay_test_1.afteraction_day_of_month_delay_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16686
17090
  case 85:
16687
17091
  _l.sent();
16688
- return [4 /*yield*/, inbox_threads_loading_tests()];
17092
+ return [4 /*yield*/, (0, bulk_assignment_test_1.bulk_assignment_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16689
17093
  case 86:
16690
17094
  _l.sent();
16691
- return [4 /*yield*/, (0, load_inbox_data_test_1.load_inbox_data_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17095
+ return [4 /*yield*/, (0, exports.formsort_tests)()];
16692
17096
  case 87:
16693
17097
  _l.sent();
16694
- return [4 /*yield*/, (0, enduser_observations_acknowledge_test_1.enduser_observations_acknowledge_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17098
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
16695
17099
  case 88:
16696
17100
  _l.sent();
16697
- return [4 /*yield*/, (0, create_user_notifications_trigger_test_1.create_user_notifications_trigger_tests)({ sdk: sdk })];
17101
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
16698
17102
  case 89:
16699
17103
  _l.sent();
16700
- return [4 /*yield*/, group_mms_active_tests()];
17104
+ return [4 /*yield*/, (0, monthly_availability_restrictions_test_1.monthly_availability_restrictions_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16701
17105
  case 90:
16702
17106
  _l.sent();
16703
- return [4 /*yield*/, auto_reply_tests()];
17107
+ return [4 /*yield*/, (0, journey_error_branching_test_1.journey_error_branching_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16704
17108
  case 91:
16705
17109
  _l.sent();
16706
- return [4 /*yield*/, (0, exports.relationships_tests)()];
17110
+ return [4 /*yield*/, (0, message_assignment_trigger_test_1.message_assignment_trigger_tests)({ sdk: sdk })];
16707
17111
  case 92:
16708
17112
  _l.sent();
16709
- return [4 /*yield*/, rate_limit_tests()];
17113
+ return [4 /*yield*/, inbox_threads_building_tests()];
16710
17114
  case 93:
16711
17115
  _l.sent();
16712
- return [4 /*yield*/, ip_address_form_tests()];
17116
+ return [4 /*yield*/, inbox_threads_loading_tests()];
16713
17117
  case 94:
16714
17118
  _l.sent();
16715
- return [4 /*yield*/, bulk_update_tests()];
17119
+ return [4 /*yield*/, (0, load_inbox_data_test_1.load_inbox_data_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16716
17120
  case 95:
16717
17121
  _l.sent();
16718
- return [4 /*yield*/, (0, calendar_events_bulk_update_test_1.calendar_events_bulk_update_tests)({ sdk: sdk })];
17122
+ return [4 /*yield*/, (0, enduser_observations_acknowledge_test_1.enduser_observations_acknowledge_tests)({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16719
17123
  case 96:
16720
17124
  _l.sent();
16721
- return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
17125
+ return [4 /*yield*/, (0, create_user_notifications_trigger_test_1.create_user_notifications_trigger_tests)({ sdk: sdk })];
16722
17126
  case 97:
16723
17127
  _l.sent();
16724
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17128
+ return [4 /*yield*/, group_mms_active_tests()];
16725
17129
  case 98:
17130
+ _l.sent();
17131
+ return [4 /*yield*/, auto_reply_tests()];
17132
+ case 99:
17133
+ _l.sent();
17134
+ return [4 /*yield*/, (0, exports.relationships_tests)()];
17135
+ case 100:
17136
+ _l.sent();
17137
+ return [4 /*yield*/, rate_limit_tests()];
17138
+ case 101:
17139
+ _l.sent();
17140
+ return [4 /*yield*/, ip_address_form_tests()];
17141
+ case 102:
17142
+ _l.sent();
17143
+ return [4 /*yield*/, bulk_update_tests()];
17144
+ case 103:
17145
+ _l.sent();
17146
+ return [4 /*yield*/, (0, calendar_events_bulk_update_test_1.calendar_events_bulk_update_tests)({ sdk: sdk })];
17147
+ case 104:
17148
+ _l.sent();
17149
+ return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
17150
+ case 105:
17151
+ _l.sent();
17152
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17153
+ case 106:
16726
17154
  _l.sent(); // should come right after setup tests
16727
17155
  return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
16728
- case 99:
17156
+ case 107:
16729
17157
  _l.sent(); // should come directly after setup to avoid extra sync values
16730
17158
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
16731
- case 100:
17159
+ case 108:
16732
17160
  _l.sent(); // should come directly after setup to avoid extra sync values
16733
17161
  return [4 /*yield*/, get_templated_message_tests()];
16734
- case 101:
17162
+ case 109:
16735
17163
  _l.sent();
16736
17164
  return [4 /*yield*/, updatedAt_tests()];
16737
- case 102:
17165
+ case 110:
16738
17166
  _l.sent();
16739
17167
  return [4 /*yield*/, file_source_tests()];
16740
- case 103:
17168
+ case 111:
16741
17169
  _l.sent();
16742
17170
  return [4 /*yield*/, enduser_access_tags_tests()];
16743
- case 104:
17171
+ case 112:
16744
17172
  _l.sent();
16745
17173
  return [4 /*yield*/, enduserAccessTests()];
16746
- case 105:
17174
+ case 113:
16747
17175
  _l.sent();
16748
17176
  return [4 /*yield*/, test_form_response_search()];
16749
- case 106:
17177
+ case 114:
16750
17178
  _l.sent();
16751
17179
  return [4 /*yield*/, date_parsing_tests()];
16752
- case 107:
17180
+ case 115:
16753
17181
  _l.sent();
16754
17182
  return [4 /*yield*/, fromEmailOverride_tests()];
16755
- case 108:
17183
+ case 116:
16756
17184
  _l.sent();
16757
17185
  return [4 /*yield*/, ticket_tests()];
16758
- case 109:
17186
+ case 117:
16759
17187
  _l.sent();
16760
17188
  return [4 /*yield*/, uniqueness_tests()];
16761
- case 110:
17189
+ case 118:
16762
17190
  _l.sent();
16763
17191
  return [4 /*yield*/, (0, exports.enduser_orders_tests)()];
16764
- case 111:
17192
+ case 119:
16765
17193
  _l.sent();
16766
17194
  return [4 /*yield*/, calendar_event_care_team_tests()];
16767
- case 112:
17195
+ case 120:
16768
17196
  _l.sent();
16769
17197
  return [4 /*yield*/, merge_enduser_tests()];
16770
- case 113:
17198
+ case 121:
16771
17199
  _l.sent();
16772
17200
  return [4 /*yield*/, input_modifier_tests()];
16773
- case 114:
17201
+ case 122:
16774
17202
  _l.sent();
16775
17203
  return [4 /*yield*/, (0, exports.switch_to_related_contacts_tests)()];
16776
- case 115:
17204
+ case 123:
16777
17205
  _l.sent();
16778
17206
  return [4 /*yield*/, redaction_tests()];
16779
- case 116:
17207
+ case 124:
16780
17208
  _l.sent();
16781
17209
  return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
16782
- case 117:
17210
+ case 125:
16783
17211
  _l.sent();
16784
17212
  return [4 /*yield*/, mdb_filter_tests()];
16785
- case 118:
17213
+ case 126:
16786
17214
  _l.sent();
16787
17215
  return [4 /*yield*/, superadmin_tests()];
16788
- case 119:
17216
+ case 127:
16789
17217
  _l.sent();
16790
17218
  return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
16791
- case 120:
17219
+ case 128:
16792
17220
  _l.sent();
16793
17221
  return [4 /*yield*/, vital_trigger_tests()];
16794
- case 121:
17222
+ case 129:
16795
17223
  _l.sent();
16796
17224
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
16797
- case 122:
17225
+ case 130:
16798
17226
  _l.sent();
16799
17227
  return [4 /*yield*/, register_as_enduser_tests()];
16800
- case 123:
17228
+ case 131:
16801
17229
  _l.sent();
16802
17230
  return [4 /*yield*/, lockout_tests()];
16803
- case 124:
17231
+ case 132:
16804
17232
  _l.sent();
16805
17233
  return [4 /*yield*/, delete_user_tests()
16806
17234
  // await test_send_with_template()
16807
17235
  ];
16808
- case 125:
17236
+ case 133:
16809
17237
  _l.sent();
16810
17238
  // await test_send_with_template()
16811
17239
  return [4 /*yield*/, bulk_read_tests()];
16812
- case 126:
17240
+ case 134:
16813
17241
  // await test_send_with_template()
16814
17242
  _l.sent();
16815
17243
  return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
16816
- case 127:
17244
+ case 135:
16817
17245
  _l.sent();
16818
17246
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
16819
- case 128:
17247
+ case 136:
16820
17248
  _l.sent();
16821
17249
  return [4 /*yield*/, unique_strings_tests()];
16822
- case 129:
17250
+ case 137:
16823
17251
  _l.sent();
16824
17252
  return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
16825
- case 130:
17253
+ case 138:
16826
17254
  _l.sent();
16827
17255
  return [4 /*yield*/, role_based_access_tests()];
16828
- case 131:
17256
+ case 139:
16829
17257
  _l.sent();
16830
17258
  return [4 /*yield*/, enduser_session_tests()];
16831
- case 132:
17259
+ case 140:
16832
17260
  _l.sent();
16833
17261
  return [4 /*yield*/, nextReminderInMS_tests()];
16834
- case 133:
17262
+ case 141:
16835
17263
  _l.sent();
16836
17264
  return [4 /*yield*/, wait_for_trigger_tests()];
16837
- case 134:
17265
+ case 142:
16838
17266
  _l.sent();
16839
17267
  return [4 /*yield*/, pdf_generation()];
16840
- case 135:
17268
+ case 143:
16841
17269
  _l.sent();
16842
17270
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
16843
- case 136:
17271
+ case 144:
16844
17272
  _l.sent(); // timing is unreliable, uncomment if changing logic
16845
17273
  return [4 /*yield*/, sub_organization_enduser_tests()];
16846
- case 137:
17274
+ case 145:
16847
17275
  _l.sent();
16848
17276
  return [4 /*yield*/, sub_organization_tests()];
16849
- case 138:
17277
+ case 146:
16850
17278
  _l.sent();
16851
17279
  return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
16852
- case 139:
17280
+ case 147:
16853
17281
  _l.sent();
16854
17282
  return [4 /*yield*/, generate_user_auth_tests()];
16855
- case 140:
17283
+ case 148:
16856
17284
  _l.sent();
16857
17285
  return [4 /*yield*/, generateEnduserAuthTests()];
16858
- case 141:
17286
+ case 149:
16859
17287
  _l.sent();
16860
17288
  return [4 /*yield*/, public_form_tests()];
16861
- case 142:
17289
+ case 150:
16862
17290
  _l.sent();
16863
17291
  return [4 /*yield*/, badInputTests()];
16864
- case 143:
17292
+ case 151:
16865
17293
  _l.sent();
16866
17294
  return [4 /*yield*/, filterTests()];
16867
- case 144:
17295
+ case 152:
16868
17296
  _l.sent();
16869
17297
  return [4 /*yield*/, updatesTests()];
16870
- case 145:
17298
+ case 153:
16871
17299
  _l.sent();
16872
- return [3 /*break*/, 147];
16873
- case 146:
17300
+ return [3 /*break*/, 155];
17301
+ case 154:
16874
17302
  err_1 = _l.sent();
16875
17303
  console.error("Failed during custom test");
16876
17304
  if (err_1.message && err_1.info) {
@@ -16880,18 +17308,18 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16880
17308
  console.error(err_1);
16881
17309
  }
16882
17310
  process.exit(1);
16883
- return [3 /*break*/, 147];
16884
- case 147:
17311
+ return [3 /*break*/, 155];
17312
+ case 155:
16885
17313
  _a = schema_1.schema;
16886
17314
  _b = [];
16887
17315
  for (_c in _a)
16888
17316
  _b.push(_c);
16889
17317
  _i = 0;
16890
- _l.label = 148;
16891
- case 148:
16892
- if (!(_i < _b.length)) return [3 /*break*/, 151];
17318
+ _l.label = 156;
17319
+ case 156:
17320
+ if (!(_i < _b.length)) return [3 /*break*/, 159];
16893
17321
  _c = _b[_i];
16894
- if (!(_c in _a)) return [3 /*break*/, 150];
17322
+ if (!(_c in _a)) return [3 /*break*/, 158];
16895
17323
  n = _c;
16896
17324
  returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
16897
17325
  return [4 /*yield*/, run_generated_tests({
@@ -16902,41 +17330,41 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16902
17330
  create: returnValidation // ModelFields<ClientModel>,
16903
17331
  }
16904
17332
  })];
16905
- case 149:
17333
+ case 157:
16906
17334
  _l.sent();
16907
- _l.label = 150;
16908
- case 150:
17335
+ _l.label = 158;
17336
+ case 158:
16909
17337
  _i++;
16910
- return [3 /*break*/, 148];
16911
- case 151:
17338
+ return [3 /*break*/, 156];
17339
+ case 159:
16912
17340
  _d = tests;
16913
17341
  _f = [];
16914
17342
  for (_g in _d)
16915
17343
  _f.push(_g);
16916
17344
  _h = 0;
16917
- _l.label = 152;
16918
- case 152:
16919
- if (!(_h < _f.length)) return [3 /*break*/, 157];
17345
+ _l.label = 160;
17346
+ case 160:
17347
+ if (!(_h < _f.length)) return [3 /*break*/, 165];
16920
17348
  _g = _f[_h];
16921
- if (!(_g in _d)) return [3 /*break*/, 156];
17349
+ if (!(_g in _d)) return [3 /*break*/, 164];
16922
17350
  t = _g;
16923
- _l.label = 153;
16924
- case 153:
16925
- _l.trys.push([153, 155, , 156]);
17351
+ _l.label = 161;
17352
+ case 161:
17353
+ _l.trys.push([161, 163, , 164]);
16926
17354
  return [4 /*yield*/, tests[t]()];
16927
- case 154:
17355
+ case 162:
16928
17356
  _l.sent();
16929
- return [3 /*break*/, 156];
16930
- case 155:
17357
+ return [3 /*break*/, 164];
17358
+ case 163:
16931
17359
  err_2 = _l.sent();
16932
17360
  console.error("Error running test:");
16933
17361
  console.error(err_2);
16934
17362
  process.exit(1);
16935
- return [3 /*break*/, 156];
16936
- case 156:
17363
+ return [3 /*break*/, 164];
17364
+ case 164:
16937
17365
  _h++;
16938
- return [3 /*break*/, 152];
16939
- case 157:
17366
+ return [3 /*break*/, 160];
17367
+ case 165:
16940
17368
  process.exit();
16941
17369
  return [2 /*return*/];
16942
17370
  }