@tellescope/sdk 1.253.0 → 1.254.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.
- package/lib/cjs/sdk.d.ts +4 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/_tmp_bc_verify.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/_tmp_blank_status_verify.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/_tmp_followup_verify.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/_tmp_nonmatch_verify.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js +256 -0
- package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/field_redaction.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/field_redaction.test.js +112 -99
- package/lib/cjs/tests/api_tests/field_redaction.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts +43 -0
- package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js +168 -0
- package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/journey_error_branching.test.js +7 -2
- package/lib/cjs/tests/api_tests/journey_error_branching.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/resource_access_tags.test.d.ts +22 -0
- package/lib/cjs/tests/api_tests/resource_access_tags.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/resource_access_tags.test.js +488 -0
- package/lib/cjs/tests/api_tests/resource_access_tags.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts +23 -0
- package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +325 -0
- package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/time_tracks.test.d.ts +8 -0
- package/lib/cjs/tests/api_tests/time_tracks.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/time_tracks.test.js +638 -1
- package/lib/cjs/tests/api_tests/time_tracks.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/user_portal_settings.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/user_portal_settings.test.js +104 -28
- package/lib/cjs/tests/api_tests/user_portal_settings.test.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +878 -200
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/sdk.d.ts +4 -0
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/_tmp_bc_verify.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/_tmp_bc_verify.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_bc_verify.test.js +120 -0
- package/lib/esm/tests/api_tests/_tmp_bc_verify.test.js.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.js +200 -0
- package/lib/esm/tests/api_tests/_tmp_blank_status_verify.test.js.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_followup_verify.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/_tmp_followup_verify.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_followup_verify.test.js +194 -0
- package/lib/esm/tests/api_tests/_tmp_followup_verify.test.js.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.d.ts +2 -0
- package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.js +115 -0
- package/lib/esm/tests/api_tests/_tmp_nonmatch_verify.test.js.map +1 -0
- package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/beluga_manual_sync.test.js +252 -0
- package/lib/esm/tests/api_tests/beluga_manual_sync.test.js.map +1 -0
- package/lib/esm/tests/api_tests/field_redaction.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/field_redaction.test.js +112 -99
- package/lib/esm/tests/api_tests/field_redaction.test.js.map +1 -1
- package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts +43 -0
- package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/gcal_sync_retry.test.js +164 -0
- package/lib/esm/tests/api_tests/gcal_sync_retry.test.js.map +1 -0
- package/lib/esm/tests/api_tests/journey_error_branching.test.js +7 -2
- package/lib/esm/tests/api_tests/journey_error_branching.test.js.map +1 -1
- package/lib/esm/tests/api_tests/resource_access_tags.test.d.ts +22 -0
- package/lib/esm/tests/api_tests/resource_access_tags.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/resource_access_tags.test.js +484 -0
- package/lib/esm/tests/api_tests/resource_access_tags.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts +23 -0
- package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +321 -0
- package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -0
- package/lib/esm/tests/api_tests/time_tracks.test.d.ts +8 -0
- package/lib/esm/tests/api_tests/time_tracks.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/time_tracks.test.js +635 -0
- package/lib/esm/tests/api_tests/time_tracks.test.js.map +1 -1
- package/lib/esm/tests/api_tests/user_portal_settings.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/user_portal_settings.test.js +104 -28
- package/lib/esm/tests/api_tests/user_portal_settings.test.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +879 -201
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/beluga_manual_sync.test.ts +159 -0
- package/src/tests/api_tests/field_redaction.test.ts +13 -0
- package/src/tests/api_tests/gcal_sync_retry.test.ts +104 -0
- package/src/tests/api_tests/journey_error_branching.test.ts +5 -1
- package/src/tests/api_tests/resource_access_tags.test.ts +303 -0
- package/src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts +214 -0
- package/src/tests/api_tests/time_tracks.test.ts +420 -0
- package/src/tests/api_tests/user_portal_settings.test.ts +71 -1
- package/src/tests/tests.ts +520 -11
- package/test_generated.pdf +0 -0
package/lib/esm/tests/tests.js
CHANGED
|
@@ -102,14 +102,16 @@ import { cross_org_api_key_tests } from "./api_tests/cross_org_api_key.test";
|
|
|
102
102
|
import { custom_dashboards_tests } from "./api_tests/custom_dashboards.test";
|
|
103
103
|
import { message_assignment_trigger_tests } from "./api_tests/message_assignment_trigger.test";
|
|
104
104
|
import { outbound_chat_sent_trigger_tests } from "./api_tests/outbound_chat_sent_trigger.test";
|
|
105
|
-
import { time_tracks_tests, time_tracks_historical_tests, time_tracks_correction_tests, time_tracks_review_tests, time_tracks_lock_tests, time_tracks_edge_case_tests } from "./api_tests/time_tracks.test";
|
|
105
|
+
import { time_tracks_tests, time_tracks_historical_tests, time_tracks_correction_tests, time_tracks_review_tests, time_tracks_lock_tests, time_tracks_edge_case_tests, time_tracks_resubmit_tests, time_tracks_appointment_duration_tests } from "./api_tests/time_tracks.test";
|
|
106
106
|
import { monthly_availability_restrictions_tests } from "./api_tests/monthly_availability_restrictions.test";
|
|
107
107
|
import { calendar_event_limits_tests } from "./api_tests/calendar_event_limits.test";
|
|
108
108
|
import { custom_aggregation_tests } from "./api_tests/custom_aggregation.test";
|
|
109
109
|
import { chats_analytics_tests } from "./api_tests/chats_analytics.test";
|
|
110
110
|
import { no_access_permission_checks_tests } from "./api_tests/no_access_permission_checks.test";
|
|
111
|
+
import { resource_access_tags_tests } from "./api_tests/resource_access_tags.test";
|
|
111
112
|
import { field_redaction_tests } from "./api_tests/field_redaction.test";
|
|
112
113
|
import { data_sync_redaction_bypass_tests } from "./api_tests/security/F-0001-data-sync-redaction-bypass.test";
|
|
114
|
+
import { enduser_write_restrictions_tests } from "./api_tests/security/F-0106-F-0110-enduser-write-restrictions.test";
|
|
113
115
|
import { ai_conversations_rbac_tests } from "./api_tests/security/F-0005-ai-conversations-rbac.test";
|
|
114
116
|
import { cascade_role_rename_cross_tenant_tests } from "./api_tests/security/F-0053-cascade-role-rename-cross-tenant.test";
|
|
115
117
|
import { self_admin_role_assignment_tests } from "./api_tests/security/F-0076-self-admin-role-assignment.test";
|
|
@@ -133,6 +135,7 @@ import { organization_settings_duplicates_tests } from "./api_tests/organization
|
|
|
133
135
|
import { calendar_events_bulk_update_tests } from "./api_tests/calendar_events_bulk_update.test";
|
|
134
136
|
import { openloop_webhooks_tests } from "./api_tests/openloop_webhooks.test";
|
|
135
137
|
import { beluga_pharmacy_mappings_tests } from "./api_tests/beluga_pharmacy_mappings.test";
|
|
138
|
+
import { beluga_manual_sync_tests } from "./api_tests/beluga_manual_sync.test";
|
|
136
139
|
import { mdi_webhooks_tests } from "./api_tests/mdi_webhooks.test";
|
|
137
140
|
import { account_switcher_tests } from "./api_tests/account_switcher.test";
|
|
138
141
|
import { set_fields_order_templates_tests } from "./api_tests/set_fields_order_templates.test";
|
|
@@ -4486,6 +4489,388 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
|
|
|
4486
4489
|
}
|
|
4487
4490
|
});
|
|
4488
4491
|
}); };
|
|
4492
|
+
// Covers the "blank status matches any order status" behavior (Order Status Equals acting as "Order Status Changed").
|
|
4493
|
+
// Kept separate from order_status_equals_tests because a blank-status trigger would break that test's exact tag-count assertions.
|
|
4494
|
+
var order_status_blank_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
4495
|
+
var A, A2, B, C, D, BA, BD, BD2, P, e2, e3, e4, e5, e6, e7, o7, eb1, eb2, eb3, e8, o8, e9, e10;
|
|
4496
|
+
return __generator(this, function (_a) {
|
|
4497
|
+
switch (_a.label) {
|
|
4498
|
+
case 0:
|
|
4499
|
+
log_header("Automation Trigger Tests (Order Status Equals - blank status)");
|
|
4500
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4501
|
+
event: { type: 'Order Status Equals', info: { source: 'BlankSource' } },
|
|
4502
|
+
action: { type: 'Add Tags', info: { tags: ['AnyOmit'] } },
|
|
4503
|
+
status: 'Active',
|
|
4504
|
+
title: "Blank status (omitted)"
|
|
4505
|
+
})];
|
|
4506
|
+
case 1:
|
|
4507
|
+
A = _a.sent();
|
|
4508
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4509
|
+
event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '' } },
|
|
4510
|
+
action: { type: 'Add Tags', info: { tags: ['AnyEmpty'] } },
|
|
4511
|
+
status: 'Active',
|
|
4512
|
+
title: "Blank status (empty string)"
|
|
4513
|
+
})];
|
|
4514
|
+
case 2:
|
|
4515
|
+
A2 = _a.sent();
|
|
4516
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4517
|
+
event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '', skus: ['MATCH-SKU'] } },
|
|
4518
|
+
action: { type: 'Add Tags', info: { tags: ['BlankWithSku'] } },
|
|
4519
|
+
status: 'Active',
|
|
4520
|
+
title: "Blank status with SKU filter"
|
|
4521
|
+
})];
|
|
4522
|
+
case 3:
|
|
4523
|
+
B = _a.sent();
|
|
4524
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4525
|
+
event: { type: 'Order Status Equals', info: { source: 'OtherSource' } },
|
|
4526
|
+
action: { type: 'Add Tags', info: { tags: ['WrongSource'] } },
|
|
4527
|
+
status: 'Active',
|
|
4528
|
+
title: "Blank status, other source"
|
|
4529
|
+
})];
|
|
4530
|
+
case 4:
|
|
4531
|
+
C = _a.sent();
|
|
4532
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4533
|
+
event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: 'Shipped' } },
|
|
4534
|
+
action: { type: 'Add Tags', info: { tags: ['ShippedOnly'] } },
|
|
4535
|
+
status: 'Active',
|
|
4536
|
+
title: "Status-specific (regression)"
|
|
4537
|
+
})
|
|
4538
|
+
// BA/BD exercise the separate bulk-create code path (createSome of 2+); kept on their own source so the
|
|
4539
|
+
// pre-existing "bulk ignores sku/protocol filters" divergence doesn't affect these assertions.
|
|
4540
|
+
];
|
|
4541
|
+
case 5:
|
|
4542
|
+
D = _a.sent();
|
|
4543
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4544
|
+
event: { type: 'Order Status Equals', info: { source: 'BulkSource' } },
|
|
4545
|
+
action: { type: 'Add Tags', info: { tags: ['BulkAny'] } },
|
|
4546
|
+
status: 'Active',
|
|
4547
|
+
title: "Bulk blank status"
|
|
4548
|
+
})];
|
|
4549
|
+
case 6:
|
|
4550
|
+
BA = _a.sent();
|
|
4551
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4552
|
+
event: { type: 'Order Status Equals', info: { source: 'BulkSource', status: 'Shipped' } },
|
|
4553
|
+
action: { type: 'Add Tags', info: { tags: ['BulkShipped'] } },
|
|
4554
|
+
status: 'Active',
|
|
4555
|
+
title: "Bulk status-specific"
|
|
4556
|
+
})
|
|
4557
|
+
// BD2's status matches NO order in the bulk batch below; backwards-compat: it must never fire (the query's $in
|
|
4558
|
+
// branch excludes it entirely, exactly as before the blank-status change).
|
|
4559
|
+
];
|
|
4560
|
+
case 7:
|
|
4561
|
+
BD = _a.sent();
|
|
4562
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4563
|
+
event: { type: 'Order Status Equals', info: { source: 'BulkSource', status: 'NeverInBatch' } },
|
|
4564
|
+
action: { type: 'Add Tags', info: { tags: ['BulkNever'] } },
|
|
4565
|
+
status: 'Active',
|
|
4566
|
+
title: "Bulk status-specific (absent from batch)"
|
|
4567
|
+
})
|
|
4568
|
+
// P: blank status composed with a protocol filter (proves blank works with non-SKU filters + the no-protocol branch)
|
|
4569
|
+
];
|
|
4570
|
+
case 8:
|
|
4571
|
+
BD2 = _a.sent();
|
|
4572
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
4573
|
+
event: { type: 'Order Status Equals', info: { source: 'BlankSource', status: '', protocols: ['Protocol-A'] } },
|
|
4574
|
+
action: { type: 'Add Tags', info: { tags: ['BlankProtocol'] } },
|
|
4575
|
+
status: 'Active',
|
|
4576
|
+
title: "Blank status with protocol filter"
|
|
4577
|
+
})
|
|
4578
|
+
// Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
|
|
4579
|
+
];
|
|
4580
|
+
case 9:
|
|
4581
|
+
P = _a.sent();
|
|
4582
|
+
// Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
|
|
4583
|
+
return [4 /*yield*/, 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; } })];
|
|
4584
|
+
case 10:
|
|
4585
|
+
// Case 1: validation accepts triggers with no status / empty status (A and A2 created above without error)
|
|
4586
|
+
_a.sent();
|
|
4587
|
+
return [4 /*yield*/, 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 === ''; } })
|
|
4588
|
+
// Case 2: blank status fires on an arbitrary status
|
|
4589
|
+
];
|
|
4590
|
+
case 11:
|
|
4591
|
+
_a.sent();
|
|
4592
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4593
|
+
case 12:
|
|
4594
|
+
e2 = _a.sent();
|
|
4595
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'StatusOne', source: 'BlankSource', title: 'Title', externalId: 'blank-1', enduserId: e2.id })];
|
|
4596
|
+
case 13:
|
|
4597
|
+
_a.sent();
|
|
4598
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4599
|
+
case 14:
|
|
4600
|
+
_a.sent(); // allow triggers to happen
|
|
4601
|
+
return [4 /*yield*/, async_test("Blank status fires on arbitrary status (no other tags)", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) {
|
|
4602
|
+
var _a, _b, _c, _d, _f;
|
|
4603
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
|
|
4604
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
|
|
4605
|
+
&& !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BlankWithSku'))
|
|
4606
|
+
&& !((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('WrongSource'))
|
|
4607
|
+
&& !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('ShippedOnly')));
|
|
4608
|
+
} })
|
|
4609
|
+
// Case 3: blank status fires on a totally different status value (status-value-independent)
|
|
4610
|
+
];
|
|
4611
|
+
case 15:
|
|
4612
|
+
_a.sent();
|
|
4613
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4614
|
+
case 16:
|
|
4615
|
+
e3 = _a.sent();
|
|
4616
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'totally-arbitrary-xyz', source: 'BlankSource', title: 'Title', externalId: 'blank-2', enduserId: e3.id })];
|
|
4617
|
+
case 17:
|
|
4618
|
+
_a.sent();
|
|
4619
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4620
|
+
case 18:
|
|
4621
|
+
_a.sent(); // allow triggers to happen
|
|
4622
|
+
return [4 /*yield*/, async_test("Blank status fires on a different arbitrary status", function () { return sdk.api.endusers.getOne(e3.id); }, { onResult: function (e) {
|
|
4623
|
+
var _a, _b;
|
|
4624
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
|
|
4625
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty')));
|
|
4626
|
+
} })
|
|
4627
|
+
// Case 4: source isolation - blank trigger does not fire for a different source
|
|
4628
|
+
];
|
|
4629
|
+
case 19:
|
|
4630
|
+
_a.sent();
|
|
4631
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4632
|
+
case 20:
|
|
4633
|
+
e4 = _a.sent();
|
|
4634
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'StatusOne', source: 'DifferentSource', title: 'Title', externalId: 'blank-3', enduserId: e4.id })];
|
|
4635
|
+
case 21:
|
|
4636
|
+
_a.sent();
|
|
4637
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4638
|
+
case 22:
|
|
4639
|
+
_a.sent(); // allow triggers to happen
|
|
4640
|
+
return [4 /*yield*/, async_test("Blank status is still scoped to its source", function () { return sdk.api.endusers.getOne(e4.id); }, { onResult: function (e) {
|
|
4641
|
+
var _a, _b, _c;
|
|
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('WrongSource')) // C only matches OtherSource
|
|
4645
|
+
);
|
|
4646
|
+
} })
|
|
4647
|
+
// Case 5a: other filters still enforced with blank status (sku mismatch)
|
|
4648
|
+
];
|
|
4649
|
+
case 23:
|
|
4650
|
+
_a.sent();
|
|
4651
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4652
|
+
case 24:
|
|
4653
|
+
e5 = _a.sent();
|
|
4654
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'blank-4', enduserId: e5.id, sku: 'NOPE' })];
|
|
4655
|
+
case 25:
|
|
4656
|
+
_a.sent();
|
|
4657
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4658
|
+
case 26:
|
|
4659
|
+
_a.sent(); // allow triggers to happen
|
|
4660
|
+
return [4 /*yield*/, async_test("Blank status + SKU filter does not fire on SKU mismatch", function () { return sdk.api.endusers.getOne(e5.id); }, { onResult: function (e) {
|
|
4661
|
+
var _a, _b, _c;
|
|
4662
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
|
|
4663
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
|
|
4664
|
+
&& !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('BlankWithSku')));
|
|
4665
|
+
} })
|
|
4666
|
+
// Case 5b: other filters still enforced with blank status (sku match)
|
|
4667
|
+
];
|
|
4668
|
+
case 27:
|
|
4669
|
+
_a.sent();
|
|
4670
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4671
|
+
case 28:
|
|
4672
|
+
e6 = _a.sent();
|
|
4673
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'blank-5', enduserId: e6.id, sku: 'MATCH-SKU' })];
|
|
4674
|
+
case 29:
|
|
4675
|
+
_a.sent();
|
|
4676
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4677
|
+
case 30:
|
|
4678
|
+
_a.sent(); // allow triggers to happen
|
|
4679
|
+
return [4 /*yield*/, async_test("Blank status + SKU filter fires on SKU match", function () { return sdk.api.endusers.getOne(e6.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('BlankWithSku')));
|
|
4684
|
+
} })
|
|
4685
|
+
// Case 6: update path + regression coexistence with a status-specific trigger
|
|
4686
|
+
];
|
|
4687
|
+
case 31:
|
|
4688
|
+
_a.sent();
|
|
4689
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4690
|
+
case 32:
|
|
4691
|
+
e7 = _a.sent();
|
|
4692
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Created', source: 'BlankSource', title: 'Title', externalId: 'blank-6', enduserId: e7.id })];
|
|
4693
|
+
case 33:
|
|
4694
|
+
o7 = _a.sent();
|
|
4695
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4696
|
+
case 34:
|
|
4697
|
+
_a.sent(); // allow triggers to happen
|
|
4698
|
+
return [4 /*yield*/, async_test("Blank fires on create; status-specific (Shipped) does not yet", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) {
|
|
4699
|
+
var _a, _b, _c;
|
|
4700
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
|
|
4701
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
|
|
4702
|
+
&& !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')));
|
|
4703
|
+
} })
|
|
4704
|
+
// update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
|
|
4705
|
+
];
|
|
4706
|
+
case 35:
|
|
4707
|
+
_a.sent();
|
|
4708
|
+
// update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
|
|
4709
|
+
return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o7.id, { status: 'Delivered', externalId: 'blank-6-delivered' })];
|
|
4710
|
+
case 36:
|
|
4711
|
+
// update to a NON-matching status: blank fires again, but the status-specific trigger must stay un-fired
|
|
4712
|
+
_a.sent();
|
|
4713
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4714
|
+
case 37:
|
|
4715
|
+
_a.sent(); // allow triggers to happen
|
|
4716
|
+
return [4 /*yield*/, 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) {
|
|
4717
|
+
var _a, _b, _c;
|
|
4718
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit') // proves the update event was processed
|
|
4719
|
+
)
|
|
4720
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
|
|
4721
|
+
&& !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')) // 'Delivered' must not trigger the 'Shipped' trigger
|
|
4722
|
+
);
|
|
4723
|
+
} })
|
|
4724
|
+
// now update to the matching status: status-specific trigger fires
|
|
4725
|
+
];
|
|
4726
|
+
case 38:
|
|
4727
|
+
_a.sent();
|
|
4728
|
+
// now update to the matching status: status-specific trigger fires
|
|
4729
|
+
return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o7.id, { status: 'Shipped', externalId: 'blank-6-shipped' })];
|
|
4730
|
+
case 39:
|
|
4731
|
+
// now update to the matching status: status-specific trigger fires
|
|
4732
|
+
_a.sent();
|
|
4733
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4734
|
+
case 40:
|
|
4735
|
+
_a.sent(); // allow triggers to happen
|
|
4736
|
+
return [4 /*yield*/, async_test("Blank fires on update too; status-specific (Shipped) now fires", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) {
|
|
4737
|
+
var _a, _b, _c;
|
|
4738
|
+
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('AnyOmit'))
|
|
4739
|
+
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('AnyEmpty'))
|
|
4740
|
+
&& ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('ShippedOnly')));
|
|
4741
|
+
} })
|
|
4742
|
+
// Case 7: bulk create path (createSome of 2+) must honor blank status + status-specific selectivity.
|
|
4743
|
+
// This exercises a SEPARATE matching code path (handle_orders_create bulk branch) from single creates.
|
|
4744
|
+
];
|
|
4745
|
+
case 41:
|
|
4746
|
+
_a.sent();
|
|
4747
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4748
|
+
case 42:
|
|
4749
|
+
eb1 = _a.sent();
|
|
4750
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4751
|
+
case 43:
|
|
4752
|
+
eb2 = _a.sent();
|
|
4753
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4754
|
+
case 44:
|
|
4755
|
+
eb3 = _a.sent();
|
|
4756
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createSome([
|
|
4757
|
+
{ status: 'StatusA', source: 'BulkSource', title: 'Title', externalId: 'bulk-1', enduserId: eb1.id },
|
|
4758
|
+
{ status: 'Shipped', source: 'BulkSource', title: 'Title', externalId: 'bulk-2', enduserId: eb2.id },
|
|
4759
|
+
{ status: 'StatusB', source: 'BulkSource', title: 'Title', externalId: 'bulk-3', enduserId: eb3.id },
|
|
4760
|
+
])];
|
|
4761
|
+
case 45:
|
|
4762
|
+
_a.sent();
|
|
4763
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4764
|
+
case 46:
|
|
4765
|
+
_a.sent(); // allow triggers to happen
|
|
4766
|
+
return [4 /*yield*/, 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'))); } })];
|
|
4767
|
+
case 47:
|
|
4768
|
+
_a.sent();
|
|
4769
|
+
return [4 /*yield*/, 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'))); } })];
|
|
4770
|
+
case 48:
|
|
4771
|
+
_a.sent();
|
|
4772
|
+
return [4 /*yield*/, 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'))); } })
|
|
4773
|
+
// Case 8: an order update that does NOT change status must not run the handler (true "status changed" semantic).
|
|
4774
|
+
];
|
|
4775
|
+
case 49:
|
|
4776
|
+
_a.sent();
|
|
4777
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4778
|
+
case 50:
|
|
4779
|
+
e8 = _a.sent();
|
|
4780
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Shipped', source: 'BlankSource', title: 'Title', externalId: 'noChange-1', enduserId: e8.id })];
|
|
4781
|
+
case 51:
|
|
4782
|
+
o8 = _a.sent();
|
|
4783
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4784
|
+
case 52:
|
|
4785
|
+
_a.sent(); // allow triggers to happen
|
|
4786
|
+
return [4 /*yield*/, 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'))); } })
|
|
4787
|
+
// clear tags (replaceObjectFields forces the empty array to actually replace)
|
|
4788
|
+
];
|
|
4789
|
+
case 53:
|
|
4790
|
+
_a.sent();
|
|
4791
|
+
// clear tags (replaceObjectFields forces the empty array to actually replace)
|
|
4792
|
+
return [4 /*yield*/, sdk.api.endusers.updateOne(e8.id, { tags: [] }, { replaceObjectFields: true })
|
|
4793
|
+
// sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
|
|
4794
|
+
];
|
|
4795
|
+
case 54:
|
|
4796
|
+
// clear tags (replaceObjectFields forces the empty array to actually replace)
|
|
4797
|
+
_a.sent();
|
|
4798
|
+
// sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
|
|
4799
|
+
return [4 /*yield*/, 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); } })
|
|
4800
|
+
// update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
|
|
4801
|
+
// If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
|
|
4802
|
+
];
|
|
4803
|
+
case 55:
|
|
4804
|
+
// sanity-check the clear actually took, so a later failure points at re-firing rather than a broken clear
|
|
4805
|
+
_a.sent();
|
|
4806
|
+
// update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
|
|
4807
|
+
// If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
|
|
4808
|
+
return [4 /*yield*/, sdk.api.enduser_orders.updateOne(o8.id, { tracking: 'tracking-123', externalId: 'noChange-1b' })];
|
|
4809
|
+
case 56:
|
|
4810
|
+
// update a non-status field (status stays 'Shipped'); handler should early-return and re-add nothing.
|
|
4811
|
+
// If it wrongly fired, the blank triggers A/A2 would re-add AnyOmit/AnyEmpty, so empty tags proves non-firing.
|
|
4812
|
+
_a.sent();
|
|
4813
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4814
|
+
case 57:
|
|
4815
|
+
_a.sent(); // allow triggers to happen
|
|
4816
|
+
return [4 /*yield*/, 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); } })
|
|
4817
|
+
// Case 9: protocol filter with blank status - order without a protocol must not fire (the order.protocol ? : false branch)
|
|
4818
|
+
];
|
|
4819
|
+
case 58:
|
|
4820
|
+
_a.sent();
|
|
4821
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4822
|
+
case 59:
|
|
4823
|
+
e9 = _a.sent();
|
|
4824
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'proto-1', enduserId: e9.id })];
|
|
4825
|
+
case 60:
|
|
4826
|
+
_a.sent();
|
|
4827
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4828
|
+
case 61:
|
|
4829
|
+
_a.sent(); // allow triggers to happen
|
|
4830
|
+
return [4 /*yield*/, 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'))); } })];
|
|
4831
|
+
case 62:
|
|
4832
|
+
_a.sent();
|
|
4833
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
4834
|
+
case 63:
|
|
4835
|
+
e10 = _a.sent();
|
|
4836
|
+
return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'whatever', source: 'BlankSource', title: 'Title', externalId: 'proto-2', enduserId: e10.id, protocol: 'Protocol-A' })];
|
|
4837
|
+
case 64:
|
|
4838
|
+
_a.sent();
|
|
4839
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
4840
|
+
case 65:
|
|
4841
|
+
_a.sent(); // allow triggers to happen
|
|
4842
|
+
return [4 /*yield*/, 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'))); } })];
|
|
4843
|
+
case 66:
|
|
4844
|
+
_a.sent();
|
|
4845
|
+
return [4 /*yield*/, Promise.all([
|
|
4846
|
+
sdk.api.automation_triggers.deleteOne(A.id),
|
|
4847
|
+
sdk.api.automation_triggers.deleteOne(A2.id),
|
|
4848
|
+
sdk.api.automation_triggers.deleteOne(B.id),
|
|
4849
|
+
sdk.api.automation_triggers.deleteOne(C.id),
|
|
4850
|
+
sdk.api.automation_triggers.deleteOne(D.id),
|
|
4851
|
+
sdk.api.automation_triggers.deleteOne(BA.id),
|
|
4852
|
+
sdk.api.automation_triggers.deleteOne(BD.id),
|
|
4853
|
+
sdk.api.automation_triggers.deleteOne(BD2.id),
|
|
4854
|
+
sdk.api.automation_triggers.deleteOne(P.id),
|
|
4855
|
+
sdk.api.endusers.deleteOne(e2.id),
|
|
4856
|
+
sdk.api.endusers.deleteOne(e3.id),
|
|
4857
|
+
sdk.api.endusers.deleteOne(e4.id),
|
|
4858
|
+
sdk.api.endusers.deleteOne(e5.id),
|
|
4859
|
+
sdk.api.endusers.deleteOne(e6.id),
|
|
4860
|
+
sdk.api.endusers.deleteOne(e7.id),
|
|
4861
|
+
sdk.api.endusers.deleteOne(eb1.id),
|
|
4862
|
+
sdk.api.endusers.deleteOne(eb2.id),
|
|
4863
|
+
sdk.api.endusers.deleteOne(eb3.id),
|
|
4864
|
+
sdk.api.endusers.deleteOne(e8.id),
|
|
4865
|
+
sdk.api.endusers.deleteOne(e9.id),
|
|
4866
|
+
sdk.api.endusers.deleteOne(e10.id),
|
|
4867
|
+
])];
|
|
4868
|
+
case 67:
|
|
4869
|
+
_a.sent();
|
|
4870
|
+
return [2 /*return*/];
|
|
4871
|
+
}
|
|
4872
|
+
});
|
|
4873
|
+
}); };
|
|
4489
4874
|
var tag_added_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
4490
4875
|
var t1, t2, t3, e;
|
|
4491
4876
|
return __generator(this, function (_a) {
|
|
@@ -5134,7 +5519,7 @@ var contact_created_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
5134
5519
|
}); };
|
|
5135
5520
|
// includes primary care team tests
|
|
5136
5521
|
var assign_care_team_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5137
|
-
var t1, t2, t3, e1;
|
|
5522
|
+
var t1, t2, t3, e1, t4, e2, e3, e4, t5, e5, e6, e7, bulkEvents, t6, bulkEventsAny, u2, t7, e8, t8, e9, e10, bulkEventsOne;
|
|
5138
5523
|
return __generator(this, function (_a) {
|
|
5139
5524
|
switch (_a.label) {
|
|
5140
5525
|
case 0:
|
|
@@ -5217,30 +5602,257 @@ var assign_care_team_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
5217
5602
|
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5218
5603
|
case 13:
|
|
5219
5604
|
_a.sent(); // allow triggers to happen
|
|
5220
|
-
return [4 /*yield*/, async_test("Care team added and set as primary", function () { return sdk.api.endusers.getOne(e1.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1 && e.primaryAssignee === e.assignedTo[0]; } })
|
|
5605
|
+
return [4 /*yield*/, async_test("Care team added and set as primary", function () { return sdk.api.endusers.getOne(e1.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1 && e.primaryAssignee === e.assignedTo[0]; } })
|
|
5606
|
+
// restrictByState (state credentialing) tests
|
|
5607
|
+
];
|
|
5221
5608
|
case 14:
|
|
5222
5609
|
_a.sent();
|
|
5610
|
+
// restrictByState (state credentialing) tests
|
|
5611
|
+
return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, { credentialedStates: [{ state: 'CA' }] }, { replaceObjectFields: true })];
|
|
5612
|
+
case 15:
|
|
5613
|
+
// restrictByState (state credentialing) tests
|
|
5614
|
+
_a.sent();
|
|
5615
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
5616
|
+
title: 't4',
|
|
5617
|
+
event: { type: 'Tag Added', info: { tag: 'Trigger State' } },
|
|
5618
|
+
action: {
|
|
5619
|
+
type: "Assign Care Team",
|
|
5620
|
+
info: {
|
|
5621
|
+
tags: { qualifier: 'One Of', values: ["Assignment"] },
|
|
5622
|
+
restrictByState: true,
|
|
5623
|
+
},
|
|
5624
|
+
},
|
|
5625
|
+
status: 'Active',
|
|
5626
|
+
})];
|
|
5627
|
+
case 16:
|
|
5628
|
+
t4 = _a.sent();
|
|
5629
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'CA' })];
|
|
5630
|
+
case 17:
|
|
5631
|
+
e2 = _a.sent();
|
|
5632
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'NY' })];
|
|
5633
|
+
case 18:
|
|
5634
|
+
e3 = _a.sent();
|
|
5635
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
5636
|
+
case 19:
|
|
5637
|
+
e4 = _a.sent();
|
|
5223
5638
|
return [4 /*yield*/, Promise.all([
|
|
5224
|
-
sdk.api.
|
|
5225
|
-
sdk.api.endusers.
|
|
5226
|
-
sdk.api.
|
|
5227
|
-
sdk.api.automation_triggers.deleteOne(t2.id),
|
|
5228
|
-
sdk.api.automation_triggers.deleteOne(t3.id),
|
|
5639
|
+
sdk.api.endusers.updateOne(e2.id, { tags: ['Trigger State'] }),
|
|
5640
|
+
sdk.api.endusers.updateOne(e3.id, { tags: ['Trigger State'] }),
|
|
5641
|
+
sdk.api.endusers.updateOne(e4.id, { tags: ['Trigger State'] }),
|
|
5229
5642
|
])];
|
|
5230
|
-
case
|
|
5643
|
+
case 20:
|
|
5231
5644
|
_a.sent();
|
|
5232
|
-
return [
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
}); };
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5645
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5646
|
+
case 21:
|
|
5647
|
+
_a.sent(); // allow triggers to happen
|
|
5648
|
+
return [4 /*yield*/, async_test("Care team added for enduser in credentialed state", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
|
|
5649
|
+
case 22:
|
|
5650
|
+
_a.sent();
|
|
5651
|
+
return [4 /*yield*/, async_test("No care team added for enduser in non-credentialed state", function () { return sdk.api.endusers.getOne(e3.id); }, { onResult: function (e) { var _a; return !((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length); } })];
|
|
5652
|
+
case 23:
|
|
5653
|
+
_a.sent();
|
|
5654
|
+
return [4 /*yield*/, async_test("No care team added for enduser with unknown state", function () { return sdk.api.endusers.getOne(e4.id); }, { onResult: function (e) { var _a; return !((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length); } })
|
|
5655
|
+
// creating multiple appointments in a single request routes through bulk_handle_actions_for_triggers
|
|
5656
|
+
// (unlike Tag Added above, which uses the per-enduser handler), covering the bulk Assign Care Team
|
|
5657
|
+
// path with mixed enduser states in one batch
|
|
5658
|
+
];
|
|
5659
|
+
case 24:
|
|
5660
|
+
_a.sent();
|
|
5661
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
5662
|
+
title: 't5',
|
|
5663
|
+
event: { type: 'Appointment Created', info: { titles: ['Bulk Assign State'] } },
|
|
5664
|
+
action: {
|
|
5665
|
+
type: "Assign Care Team",
|
|
5666
|
+
info: {
|
|
5667
|
+
tags: { qualifier: 'One Of', values: ["Assignment"] },
|
|
5668
|
+
restrictByState: true,
|
|
5669
|
+
setAsPrimary: true, // not yet supported in the bulk handler — see canary assertion below
|
|
5670
|
+
},
|
|
5671
|
+
},
|
|
5672
|
+
status: 'Active',
|
|
5673
|
+
})];
|
|
5674
|
+
case 25:
|
|
5675
|
+
t5 = _a.sent();
|
|
5676
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'CA' })];
|
|
5677
|
+
case 26:
|
|
5678
|
+
e5 = _a.sent();
|
|
5679
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'NY' })];
|
|
5680
|
+
case 27:
|
|
5681
|
+
e6 = _a.sent();
|
|
5682
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({})];
|
|
5683
|
+
case 28:
|
|
5684
|
+
e7 = _a.sent();
|
|
5685
|
+
return [4 /*yield*/, sdk.api.calendar_events.createSome([
|
|
5686
|
+
{ title: 'Bulk Assign State', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e5.id }] },
|
|
5687
|
+
{ title: 'Bulk Assign State', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e6.id }] },
|
|
5688
|
+
{ title: 'Bulk Assign State', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e7.id }] },
|
|
5689
|
+
])];
|
|
5690
|
+
case 29:
|
|
5691
|
+
bulkEvents = (_a.sent()).created;
|
|
5692
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5693
|
+
case 30:
|
|
5694
|
+
_a.sent(); // allow triggers to happen
|
|
5695
|
+
return [4 /*yield*/, async_test("(Bulk) Care team added for enduser in credentialed state", function () { return sdk.api.endusers.getOne(e5.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })
|
|
5696
|
+
// canary: the bulk handler doesn't implement setAsPrimary (the per-enduser handler does), so a set
|
|
5697
|
+
// primaryAssignee here means multi-event creates no longer route through the bulk handler (or
|
|
5698
|
+
// setAsPrimary was implemented there — update this test if so)
|
|
5699
|
+
];
|
|
5700
|
+
case 31:
|
|
5701
|
+
_a.sent();
|
|
5702
|
+
// canary: the bulk handler doesn't implement setAsPrimary (the per-enduser handler does), so a set
|
|
5703
|
+
// primaryAssignee here means multi-event creates no longer route through the bulk handler (or
|
|
5704
|
+
// setAsPrimary was implemented there — update this test if so)
|
|
5705
|
+
return [4 /*yield*/, async_test("(Bulk) Primary not set (bulk handler routing canary)", function () { return sdk.api.endusers.getOne(e5.id); }, { onResult: function (e) { return !e.primaryAssignee; } })];
|
|
5706
|
+
case 32:
|
|
5707
|
+
// canary: the bulk handler doesn't implement setAsPrimary (the per-enduser handler does), so a set
|
|
5708
|
+
// primaryAssignee here means multi-event creates no longer route through the bulk handler (or
|
|
5709
|
+
// setAsPrimary was implemented there — update this test if so)
|
|
5710
|
+
_a.sent();
|
|
5711
|
+
return [4 /*yield*/, async_test("(Bulk) No care team added for enduser in non-credentialed state", function () { return sdk.api.endusers.getOne(e6.id); }, { onResult: function (e) { var _a; return !((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length); } })];
|
|
5712
|
+
case 33:
|
|
5713
|
+
_a.sent();
|
|
5714
|
+
return [4 /*yield*/, async_test("(Bulk) No care team added for enduser with unknown state", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) { var _a; return !((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length); } })
|
|
5715
|
+
// bulk path with restrictByState off: state should not matter (default behavior unchanged)
|
|
5716
|
+
];
|
|
5717
|
+
case 34:
|
|
5718
|
+
_a.sent();
|
|
5719
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
5720
|
+
title: 't6',
|
|
5721
|
+
event: { type: 'Appointment Created', info: { titles: ['Bulk Assign Any'] } },
|
|
5722
|
+
action: {
|
|
5723
|
+
type: "Assign Care Team",
|
|
5724
|
+
info: {
|
|
5725
|
+
tags: { qualifier: 'One Of', values: ["Assignment"] },
|
|
5726
|
+
},
|
|
5727
|
+
},
|
|
5728
|
+
status: 'Active',
|
|
5729
|
+
})];
|
|
5730
|
+
case 35:
|
|
5731
|
+
t6 = _a.sent();
|
|
5732
|
+
return [4 /*yield*/, sdk.api.calendar_events.createSome([
|
|
5733
|
+
{ title: 'Bulk Assign Any', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e6.id }] },
|
|
5734
|
+
{ title: 'Bulk Assign Any', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e7.id }] },
|
|
5735
|
+
])];
|
|
5736
|
+
case 36:
|
|
5737
|
+
bulkEventsAny = (_a.sent()).created;
|
|
5738
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5739
|
+
case 37:
|
|
5740
|
+
_a.sent(); // allow triggers to happen
|
|
5741
|
+
return [4 /*yield*/, async_test("(Bulk, no restriction) Care team added for enduser in non-credentialed state", function () { return sdk.api.endusers.getOne(e6.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
|
|
5742
|
+
case 38:
|
|
5743
|
+
_a.sent();
|
|
5744
|
+
return [4 /*yield*/, async_test("(Bulk, no restriction) Care team added for enduser with unknown state", function () { return sdk.api.endusers.getOne(e7.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })
|
|
5745
|
+
// limitToOneUser on both handler branches: with two matching users, exactly one is assigned
|
|
5746
|
+
];
|
|
5747
|
+
case 39:
|
|
5748
|
+
_a.sent();
|
|
5749
|
+
return [4 /*yield*/, sdk.api.users.createOne({
|
|
5750
|
+
email: "assign-care-team-limit-".concat(Date.now(), "@tellescope.example"), fname: 'Throwaway', lname: 'Assignment',
|
|
5751
|
+
})];
|
|
5752
|
+
case 40:
|
|
5753
|
+
u2 = _a.sent();
|
|
5754
|
+
return [4 /*yield*/, sdk.api.users.updateOne(u2.id, { tags: ['Assignment'], credentialedStates: [{ state: 'CA' }] }, { replaceObjectFields: true })];
|
|
5755
|
+
case 41:
|
|
5756
|
+
_a.sent();
|
|
5757
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
5758
|
+
title: 't7',
|
|
5759
|
+
event: { type: 'Tag Added', info: { tag: 'Trigger One' } },
|
|
5760
|
+
action: {
|
|
5761
|
+
type: "Assign Care Team",
|
|
5762
|
+
info: {
|
|
5763
|
+
tags: { qualifier: 'One Of', values: ["Assignment"] },
|
|
5764
|
+
restrictByState: true,
|
|
5765
|
+
limitToOneUser: true,
|
|
5766
|
+
},
|
|
5767
|
+
},
|
|
5768
|
+
status: 'Active',
|
|
5769
|
+
})];
|
|
5770
|
+
case 42:
|
|
5771
|
+
t7 = _a.sent();
|
|
5772
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'CA' })];
|
|
5773
|
+
case 43:
|
|
5774
|
+
e8 = _a.sent();
|
|
5775
|
+
return [4 /*yield*/, sdk.api.endusers.updateOne(e8.id, { tags: ['Trigger One'] })];
|
|
5776
|
+
case 44:
|
|
5777
|
+
_a.sent();
|
|
5778
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5779
|
+
case 45:
|
|
5780
|
+
_a.sent(); // allow triggers to happen
|
|
5781
|
+
return [4 /*yield*/, async_test("(limitToOneUser) Exactly one of multiple matching users assigned", function () { return sdk.api.endusers.getOne(e8.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
|
|
5782
|
+
case 46:
|
|
5783
|
+
_a.sent();
|
|
5784
|
+
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
5785
|
+
title: 't8',
|
|
5786
|
+
event: { type: 'Appointment Created', info: { titles: ['Bulk Assign One'] } },
|
|
5787
|
+
action: {
|
|
5788
|
+
type: "Assign Care Team",
|
|
5789
|
+
info: {
|
|
5790
|
+
tags: { qualifier: 'One Of', values: ["Assignment"] },
|
|
5791
|
+
restrictByState: true,
|
|
5792
|
+
limitToOneUser: true,
|
|
5793
|
+
},
|
|
5794
|
+
},
|
|
5795
|
+
status: 'Active',
|
|
5796
|
+
})];
|
|
5797
|
+
case 47:
|
|
5798
|
+
t8 = _a.sent();
|
|
5799
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'CA' })];
|
|
5800
|
+
case 48:
|
|
5801
|
+
e9 = _a.sent();
|
|
5802
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ state: 'CA' })];
|
|
5803
|
+
case 49:
|
|
5804
|
+
e10 = _a.sent();
|
|
5805
|
+
return [4 /*yield*/, sdk.api.calendar_events.createSome([
|
|
5806
|
+
{ title: 'Bulk Assign One', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e9.id }] },
|
|
5807
|
+
{ title: 'Bulk Assign One', durationInMinutes: 30, startTimeInMS: Date.now(), attendees: [{ type: 'enduser', id: e10.id }] },
|
|
5808
|
+
])];
|
|
5809
|
+
case 50:
|
|
5810
|
+
bulkEventsOne = (_a.sent()).created;
|
|
5811
|
+
return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
|
|
5812
|
+
case 51:
|
|
5813
|
+
_a.sent(); // allow triggers to happen
|
|
5814
|
+
return [4 /*yield*/, async_test("(Bulk, limitToOneUser) Exactly one of multiple matching users assigned", function () { return sdk.api.endusers.getOne(e9.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
|
|
5815
|
+
case 52:
|
|
5816
|
+
_a.sent();
|
|
5817
|
+
return [4 /*yield*/, async_test("(Bulk, limitToOneUser) Exactly one of multiple matching users assigned (second enduser)", function () { return sdk.api.endusers.getOne(e10.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
|
|
5818
|
+
case 53:
|
|
5819
|
+
_a.sent();
|
|
5820
|
+
return [4 /*yield*/, Promise.all(__spreadArray(__spreadArray(__spreadArray([
|
|
5821
|
+
sdk.api.users.updateOne(sdk.userInfo.id, { tags: [], credentialedStates: [] }, { replaceObjectFields: true }),
|
|
5822
|
+
sdk.api.endusers.deleteOne(e1.id),
|
|
5823
|
+
sdk.api.endusers.deleteOne(e2.id),
|
|
5824
|
+
sdk.api.endusers.deleteOne(e3.id),
|
|
5825
|
+
sdk.api.endusers.deleteOne(e4.id),
|
|
5826
|
+
sdk.api.endusers.deleteOne(e5.id),
|
|
5827
|
+
sdk.api.endusers.deleteOne(e6.id),
|
|
5828
|
+
sdk.api.endusers.deleteOne(e7.id),
|
|
5829
|
+
sdk.api.automation_triggers.deleteOne(t1.id),
|
|
5830
|
+
sdk.api.automation_triggers.deleteOne(t2.id),
|
|
5831
|
+
sdk.api.automation_triggers.deleteOne(t3.id),
|
|
5832
|
+
sdk.api.endusers.deleteOne(e8.id),
|
|
5833
|
+
sdk.api.endusers.deleteOne(e9.id),
|
|
5834
|
+
sdk.api.endusers.deleteOne(e10.id),
|
|
5835
|
+
sdk.api.users.deleteOne(u2.id),
|
|
5836
|
+
sdk.api.automation_triggers.deleteOne(t4.id),
|
|
5837
|
+
sdk.api.automation_triggers.deleteOne(t5.id),
|
|
5838
|
+
sdk.api.automation_triggers.deleteOne(t6.id),
|
|
5839
|
+
sdk.api.automation_triggers.deleteOne(t7.id),
|
|
5840
|
+
sdk.api.automation_triggers.deleteOne(t8.id)
|
|
5841
|
+
], bulkEvents.map(function (e) { return sdk.api.calendar_events.deleteOne(e.id); }), true), bulkEventsAny.map(function (e) { return sdk.api.calendar_events.deleteOne(e.id); }), true), bulkEventsOne.map(function (e) { return sdk.api.calendar_events.deleteOne(e.id); }), true))];
|
|
5842
|
+
case 54:
|
|
5843
|
+
_a.sent();
|
|
5844
|
+
return [2 /*return*/];
|
|
5845
|
+
}
|
|
5846
|
+
});
|
|
5847
|
+
}); };
|
|
5848
|
+
var set_fields_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5849
|
+
var _a, calculate_days_between_dates, parse_date_string, resolve_date_value, calculate_days_between_dates_from_enduser, calculate_date_difference_for_set_fields, e1, t1, t2, a1, e2, t3, t4, t5, e3, t6, e4, t7, t8, t9;
|
|
5850
|
+
return __generator(this, function (_b) {
|
|
5851
|
+
switch (_b.label) {
|
|
5852
|
+
case 0:
|
|
5853
|
+
log_header("Automation Trigger Tests (Set Fields)");
|
|
5854
|
+
// First, test the date calculation utilities directly
|
|
5855
|
+
log_header("Date Utility Function Tests");
|
|
5244
5856
|
return [4 /*yield*/, import("@tellescope/utilities")
|
|
5245
5857
|
// Test parse_date_string
|
|
5246
5858
|
];
|
|
@@ -6180,65 +6792,68 @@ var automation_trigger_tests = function () { return __awaiter(void 0, void 0, vo
|
|
|
6180
6792
|
switch (_a.label) {
|
|
6181
6793
|
case 0:
|
|
6182
6794
|
log_header("Automation Trigger Tests");
|
|
6183
|
-
return [4 /*yield*/,
|
|
6795
|
+
return [4 /*yield*/, assign_care_team_tests()];
|
|
6184
6796
|
case 1:
|
|
6185
6797
|
_a.sent();
|
|
6186
|
-
return [4 /*yield*/,
|
|
6798
|
+
return [4 /*yield*/, push_forms_to_portal_group_completion_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6187
6799
|
case 2:
|
|
6188
6800
|
_a.sent();
|
|
6189
|
-
return [4 /*yield*/,
|
|
6801
|
+
return [4 /*yield*/, order_status_equals_tests()];
|
|
6190
6802
|
case 3:
|
|
6191
6803
|
_a.sent();
|
|
6192
|
-
return [4 /*yield*/,
|
|
6804
|
+
return [4 /*yield*/, order_status_blank_tests()];
|
|
6193
6805
|
case 4:
|
|
6194
6806
|
_a.sent();
|
|
6195
|
-
return [4 /*yield*/,
|
|
6807
|
+
return [4 /*yield*/, set_fields_order_templates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6196
6808
|
case 5:
|
|
6197
6809
|
_a.sent();
|
|
6198
|
-
return [4 /*yield*/,
|
|
6810
|
+
return [4 /*yield*/, medication_added_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6199
6811
|
case 6:
|
|
6200
6812
|
_a.sent();
|
|
6201
|
-
return [4 /*yield*/,
|
|
6813
|
+
return [4 /*yield*/, appointment_cancelled_tests()];
|
|
6202
6814
|
case 7:
|
|
6203
6815
|
_a.sent();
|
|
6204
|
-
return [4 /*yield*/,
|
|
6816
|
+
return [4 /*yield*/, set_fields_tests()];
|
|
6205
6817
|
case 8:
|
|
6206
6818
|
_a.sent();
|
|
6207
|
-
return [4 /*yield*/,
|
|
6819
|
+
return [4 /*yield*/, purchase_made_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6208
6820
|
case 9:
|
|
6209
6821
|
_a.sent();
|
|
6210
|
-
return [4 /*yield*/,
|
|
6822
|
+
return [4 /*yield*/, appointment_rescheduled_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6211
6823
|
case 10:
|
|
6212
6824
|
_a.sent();
|
|
6213
|
-
return [4 /*yield*/,
|
|
6825
|
+
return [4 /*yield*/, form_response_set_fields_trigger_tests()];
|
|
6214
6826
|
case 11:
|
|
6215
6827
|
_a.sent();
|
|
6216
|
-
return [4 /*yield*/,
|
|
6828
|
+
return [4 /*yield*/, form_response_set_fields_journey_tests()];
|
|
6217
6829
|
case 12:
|
|
6218
6830
|
_a.sent();
|
|
6219
|
-
return [4 /*yield*/,
|
|
6831
|
+
return [4 /*yield*/, appointment_completed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
6220
6832
|
case 13:
|
|
6221
6833
|
_a.sent();
|
|
6222
|
-
return [4 /*yield*/,
|
|
6834
|
+
return [4 /*yield*/, trigger_events_api_tests()];
|
|
6223
6835
|
case 14:
|
|
6224
6836
|
_a.sent();
|
|
6225
|
-
return [4 /*yield*/,
|
|
6837
|
+
return [4 /*yield*/, fields_changed_tests()];
|
|
6226
6838
|
case 15:
|
|
6227
6839
|
_a.sent();
|
|
6228
|
-
return [4 /*yield*/,
|
|
6840
|
+
return [4 /*yield*/, field_equals_trigger_tests()];
|
|
6229
6841
|
case 16:
|
|
6230
6842
|
_a.sent();
|
|
6231
|
-
return [4 /*yield*/,
|
|
6843
|
+
return [4 /*yield*/, contact_created_tests()];
|
|
6232
6844
|
case 17:
|
|
6233
6845
|
_a.sent();
|
|
6234
|
-
return [4 /*yield*/,
|
|
6846
|
+
return [4 /*yield*/, appointment_created_tests()];
|
|
6235
6847
|
case 18:
|
|
6236
6848
|
_a.sent();
|
|
6237
|
-
return [4 /*yield*/,
|
|
6849
|
+
return [4 /*yield*/, tag_added_tests()];
|
|
6238
6850
|
case 19:
|
|
6239
6851
|
_a.sent();
|
|
6240
|
-
return [4 /*yield*/,
|
|
6852
|
+
return [4 /*yield*/, order_created_tests()];
|
|
6241
6853
|
case 20:
|
|
6854
|
+
_a.sent();
|
|
6855
|
+
return [4 /*yield*/, formSubmittedTriggerTests()];
|
|
6856
|
+
case 21:
|
|
6242
6857
|
_a.sent();
|
|
6243
6858
|
return [2 /*return*/];
|
|
6244
6859
|
}
|
|
@@ -10030,7 +10645,11 @@ export var switch_to_related_contacts_tests = function () { return __awaiter(voi
|
|
|
10030
10645
|
return [4 /*yield*/, sdk.api.endusers.updateOne(child.id, { journeys: (_a = {}, _a[journey.id] = '', _a) })];
|
|
10031
10646
|
case 6:
|
|
10032
10647
|
_b.sent();
|
|
10033
|
-
return [4 /*yield*/, 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')); },
|
|
10648
|
+
return [4 /*yield*/, 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')); },
|
|
10649
|
+
// switchToRelatedContact (cycle 1) then the afterAction addEnduserTags (cycle 2) each wait a
|
|
10650
|
+
// full worker poll cycle (>= 8s, see worker pollingDelaySeconds), so ~16s worst case. Poll for
|
|
10651
|
+
// 30s (500ms x 60) to cover two cycles plus buffer; the old 10s window timed out flakily.
|
|
10652
|
+
500, 60); }, passOnAnyResult)];
|
|
10034
10653
|
case 7:
|
|
10035
10654
|
_b.sent();
|
|
10036
10655
|
return [2 /*return*/, Promise.all([
|
|
@@ -12728,7 +13347,42 @@ var register_as_enduser_tests = function () { return __awaiter(void 0, void 0, v
|
|
|
12728
13347
|
return [4 /*yield*/, async_test("Enduser register", function () { return enduserSDK.register({ email: 'test@tellescope.com', password: 'testpassWord12345!' }); }, passOnAnyResult)];
|
|
12729
13348
|
case 1:
|
|
12730
13349
|
_a.sent();
|
|
12731
|
-
return [4 /*yield*/, async_test("Enduser register (rate limited)",
|
|
13350
|
+
return [4 /*yield*/, async_test("Enduser register (rate limited)",
|
|
13351
|
+
// The register limiter records its throttle event at request start with a 1s expiry
|
|
13352
|
+
// (countPerInterval: 1, intervalInMS: 1000), so back-to-back registers are only
|
|
13353
|
+
// rate limited when they land within 1s of each other. A slow register (bcrypt on a
|
|
13354
|
+
// cold/loaded server) can exceed the window and flake — retry the pair instead of
|
|
13355
|
+
// failing on a timing miss. Any "Too many requests" from either call is the expected error.
|
|
13356
|
+
function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
13357
|
+
var attempt, windowStart;
|
|
13358
|
+
return __generator(this, function (_a) {
|
|
13359
|
+
switch (_a.label) {
|
|
13360
|
+
case 0:
|
|
13361
|
+
attempt = 0;
|
|
13362
|
+
_a.label = 1;
|
|
13363
|
+
case 1:
|
|
13364
|
+
if (!(attempt < 3)) return [3 /*break*/, 6];
|
|
13365
|
+
windowStart = Date.now();
|
|
13366
|
+
return [4 /*yield*/, enduserSDK.register({ email: 'test@tellescope.com', password: 'testpassWord12345!' })];
|
|
13367
|
+
case 2:
|
|
13368
|
+
_a.sent();
|
|
13369
|
+
return [4 /*yield*/, enduserSDK.register({ email: 'test@tellescope.com', password: 'testpassWord12345!' })];
|
|
13370
|
+
case 3:
|
|
13371
|
+
_a.sent();
|
|
13372
|
+
if (Date.now() - windowStart < 900) {
|
|
13373
|
+
return [2 /*return*/, 'two registers within the same 1s window were not rate limited'];
|
|
13374
|
+
}
|
|
13375
|
+
return [4 /*yield*/, wait(undefined, 1100)]; // let the throttle window expire before retrying the pair
|
|
13376
|
+
case 4:
|
|
13377
|
+
_a.sent(); // let the throttle window expire before retrying the pair
|
|
13378
|
+
_a.label = 5;
|
|
13379
|
+
case 5:
|
|
13380
|
+
attempt++;
|
|
13381
|
+
return [3 /*break*/, 1];
|
|
13382
|
+
case 6: return [2 /*return*/, 'rate-limit timing window missed on every attempt'];
|
|
13383
|
+
}
|
|
13384
|
+
});
|
|
13385
|
+
}); }, { shouldError: true, onError: function (e) { return e.message === "Too many requests"; } })];
|
|
12732
13386
|
case 2:
|
|
12733
13387
|
_a.sent();
|
|
12734
13388
|
return [4 /*yield*/, wait(undefined, 1000)];
|
|
@@ -15978,12 +16632,16 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
15978
16632
|
return [4 /*yield*/, wait(undefined, 500)]; // wait for IP to be set
|
|
15979
16633
|
case 4:
|
|
15980
16634
|
_a.sent(); // wait for IP to be set
|
|
15981
|
-
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); } })
|
|
16635
|
+
return [4 /*yield*/, 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); } })
|
|
16636
|
+
// clear ip and set other field to make sure IP doesn't overwrite other custom fields
|
|
16637
|
+
];
|
|
16638
|
+
case 5:
|
|
16639
|
+
_a.sent();
|
|
15982
16640
|
// clear ip and set other field to make sure IP doesn't overwrite other custom fields
|
|
15983
16641
|
return [4 /*yield*/, sdk.api.endusers.updateOne(enduserId, { fields: { otherField: "Set" } }, { replaceObjectFields: true })
|
|
15984
16642
|
// should match and update in place
|
|
15985
16643
|
];
|
|
15986
|
-
case
|
|
16644
|
+
case 6:
|
|
15987
16645
|
// clear ip and set other field to make sure IP doesn't overwrite other custom fields
|
|
15988
16646
|
_a.sent();
|
|
15989
16647
|
// should match and update in place
|
|
@@ -15995,15 +16653,20 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
15995
16653
|
fname: 'session',
|
|
15996
16654
|
lname: 'test',
|
|
15997
16655
|
})];
|
|
15998
|
-
case
|
|
16656
|
+
case 7:
|
|
15999
16657
|
// should match and update in place
|
|
16000
16658
|
_a.sent();
|
|
16001
|
-
|
|
16659
|
+
return [4 /*yield*/, wait(undefined, 500)]; // wait for IP to be re-set
|
|
16660
|
+
case 8:
|
|
16661
|
+
_a.sent(); // wait for IP to be re-set
|
|
16662
|
+
return [4 /*yield*/, 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; } })];
|
|
16663
|
+
case 9:
|
|
16664
|
+
_a.sent();
|
|
16002
16665
|
return [4 /*yield*/, Promise.all([
|
|
16003
16666
|
sdk.api.forms.deleteOne(form.id),
|
|
16004
16667
|
sdk.api.endusers.deleteOne(enduserId),
|
|
16005
16668
|
])];
|
|
16006
|
-
case
|
|
16669
|
+
case 10:
|
|
16007
16670
|
_a.sent();
|
|
16008
16671
|
return [2 /*return*/];
|
|
16009
16672
|
}
|
|
@@ -16024,7 +16687,7 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
16024
16687
|
assert(truncate_string(null, { length: 4, showEllipsis: false }) === '', 'truncate doesnt work for non string', 'trucate works for non-string');
|
|
16025
16688
|
_l.label = 2;
|
|
16026
16689
|
case 2:
|
|
16027
|
-
_l.trys.push([2,
|
|
16690
|
+
_l.trys.push([2, 149, , 150]);
|
|
16028
16691
|
get_next_reminder_timestamp_tests();
|
|
16029
16692
|
form_conditional_logic_tests();
|
|
16030
16693
|
return [4 /*yield*/, test_weighted_round_robin()];
|
|
@@ -16171,387 +16834,402 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
16171
16834
|
return [4 /*yield*/, setup_tests(sdk, sdkNonAdmin)];
|
|
16172
16835
|
case 18:
|
|
16173
16836
|
_l.sent();
|
|
16174
|
-
return [4 /*yield*/,
|
|
16837
|
+
return [4 /*yield*/, resource_access_tags_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16175
16838
|
case 19:
|
|
16176
16839
|
_l.sent();
|
|
16177
|
-
return [4 /*yield*/,
|
|
16840
|
+
return [4 /*yield*/, beluga_manual_sync_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16178
16841
|
case 20:
|
|
16179
16842
|
_l.sent();
|
|
16180
|
-
return [4 /*yield*/,
|
|
16843
|
+
return [4 /*yield*/, beluga_pharmacy_mappings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16181
16844
|
case 21:
|
|
16182
16845
|
_l.sent();
|
|
16183
|
-
return [4 /*yield*/,
|
|
16846
|
+
return [4 /*yield*/, enduser_write_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16184
16847
|
case 22:
|
|
16185
16848
|
_l.sent();
|
|
16186
|
-
return [4 /*yield*/,
|
|
16849
|
+
return [4 /*yield*/, user_portal_settings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16187
16850
|
case 23:
|
|
16188
16851
|
_l.sent();
|
|
16189
|
-
return [4 /*yield*/,
|
|
16852
|
+
return [4 /*yield*/, automation_trigger_tests()];
|
|
16190
16853
|
case 24:
|
|
16191
16854
|
_l.sent();
|
|
16192
|
-
return [4 /*yield*/,
|
|
16855
|
+
return [4 /*yield*/, invite_user_enumeration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16193
16856
|
case 25:
|
|
16194
16857
|
_l.sent();
|
|
16195
|
-
return [4 /*yield*/,
|
|
16858
|
+
return [4 /*yield*/, handle_incoming_communication_cross_tenant_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16196
16859
|
case 26:
|
|
16197
16860
|
_l.sent();
|
|
16198
|
-
return [4 /*yield*/,
|
|
16861
|
+
return [4 /*yield*/, calendar_event_webhook_template_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16199
16862
|
case 27:
|
|
16200
16863
|
_l.sent();
|
|
16201
|
-
return [4 /*yield*/,
|
|
16864
|
+
return [4 /*yield*/, outbound_chat_sent_trigger_tests({ sdk: sdk })];
|
|
16202
16865
|
case 28:
|
|
16203
16866
|
_l.sent();
|
|
16204
|
-
return [4 /*yield*/,
|
|
16867
|
+
return [4 /*yield*/, enduser_login_rate_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16205
16868
|
case 29:
|
|
16206
16869
|
_l.sent();
|
|
16207
|
-
return [4 /*yield*/,
|
|
16870
|
+
return [4 /*yield*/, data_sync_redaction_bypass_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16208
16871
|
case 30:
|
|
16209
16872
|
_l.sent();
|
|
16210
|
-
return [4 /*yield*/,
|
|
16873
|
+
return [4 /*yield*/, ai_conversations_rbac_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16211
16874
|
case 31:
|
|
16212
16875
|
_l.sent();
|
|
16213
|
-
return [4 /*yield*/,
|
|
16876
|
+
return [4 /*yield*/, cascade_role_rename_cross_tenant_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16214
16877
|
case 32:
|
|
16215
16878
|
_l.sent();
|
|
16216
|
-
return [4 /*yield*/,
|
|
16879
|
+
return [4 /*yield*/, self_admin_role_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16217
16880
|
case 33:
|
|
16218
16881
|
_l.sent();
|
|
16219
|
-
return [4 /*yield*/,
|
|
16882
|
+
return [4 /*yield*/, sanitize_user_html_xss_tests()];
|
|
16220
16883
|
case 34:
|
|
16221
16884
|
_l.sent();
|
|
16222
|
-
return [4 /*yield*/,
|
|
16885
|
+
return [4 /*yield*/, prototype_pollution_tests()];
|
|
16223
16886
|
case 35:
|
|
16224
16887
|
_l.sent();
|
|
16225
|
-
return [4 /*yield*/,
|
|
16888
|
+
return [4 /*yield*/, account_switcher_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16226
16889
|
case 36:
|
|
16227
16890
|
_l.sent();
|
|
16228
|
-
return [4 /*yield*/,
|
|
16891
|
+
return [4 /*yield*/, enduser_login_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16229
16892
|
case 37:
|
|
16230
16893
|
_l.sent();
|
|
16231
|
-
return [4 /*yield*/,
|
|
16894
|
+
return [4 /*yield*/, outbound_chat_sent_trigger_tests({ sdk: sdk })];
|
|
16232
16895
|
case 38:
|
|
16233
16896
|
_l.sent();
|
|
16234
|
-
return [4 /*yield*/,
|
|
16897
|
+
return [4 /*yield*/, enduser_cross_access_isolation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16235
16898
|
case 39:
|
|
16236
16899
|
_l.sent();
|
|
16237
|
-
return [4 /*yield*/,
|
|
16900
|
+
return [4 /*yield*/, eom_procedure_codes_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16238
16901
|
case 40:
|
|
16239
16902
|
_l.sent();
|
|
16240
|
-
return [4 /*yield*/,
|
|
16903
|
+
return [4 /*yield*/, cross_org_api_key_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16241
16904
|
case 41:
|
|
16242
16905
|
_l.sent();
|
|
16243
|
-
return [4 /*yield*/,
|
|
16906
|
+
return [4 /*yield*/, organization_settings_duplicates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16244
16907
|
case 42:
|
|
16245
16908
|
_l.sent();
|
|
16246
|
-
return [4 /*yield*/,
|
|
16909
|
+
return [4 /*yield*/, enduser_session_invalidation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16247
16910
|
case 43:
|
|
16248
16911
|
_l.sent();
|
|
16249
|
-
return [4 /*yield*/,
|
|
16912
|
+
return [4 /*yield*/, chats_analytics_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16250
16913
|
case 44:
|
|
16251
16914
|
_l.sent();
|
|
16252
|
-
return [4 /*yield*/,
|
|
16915
|
+
return [4 /*yield*/, field_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16253
16916
|
case 45:
|
|
16254
16917
|
_l.sent();
|
|
16255
|
-
return [4 /*yield*/,
|
|
16918
|
+
return [4 /*yield*/, form_submitted_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16256
16919
|
case 46:
|
|
16257
16920
|
_l.sent();
|
|
16258
|
-
return [4 /*yield*/,
|
|
16921
|
+
return [4 /*yield*/, date_string_validation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16259
16922
|
case 47:
|
|
16260
16923
|
_l.sent();
|
|
16261
|
-
return [4 /*yield*/,
|
|
16924
|
+
return [4 /*yield*/, openloop_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16262
16925
|
case 48:
|
|
16263
16926
|
_l.sent();
|
|
16264
|
-
return [4 /*yield*/,
|
|
16927
|
+
return [4 /*yield*/, mdi_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16265
16928
|
case 49:
|
|
16266
16929
|
_l.sent();
|
|
16267
|
-
return [4 /*yield*/,
|
|
16930
|
+
return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16268
16931
|
case 50:
|
|
16269
16932
|
_l.sent();
|
|
16270
|
-
return [4 /*yield*/,
|
|
16933
|
+
return [4 /*yield*/, mdb_sort_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16271
16934
|
case 51:
|
|
16272
16935
|
_l.sent();
|
|
16273
|
-
return [4 /*yield*/,
|
|
16936
|
+
return [4 /*yield*/, search_tests()];
|
|
16274
16937
|
case 52:
|
|
16275
16938
|
_l.sent();
|
|
16276
|
-
return [4 /*yield*/,
|
|
16939
|
+
return [4 /*yield*/, time_tracks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16277
16940
|
case 53:
|
|
16278
16941
|
_l.sent();
|
|
16279
|
-
return [4 /*yield*/,
|
|
16942
|
+
return [4 /*yield*/, time_tracks_historical_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16280
16943
|
case 54:
|
|
16281
16944
|
_l.sent();
|
|
16282
|
-
return [4 /*yield*/,
|
|
16945
|
+
return [4 /*yield*/, time_tracks_correction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16283
16946
|
case 55:
|
|
16284
16947
|
_l.sent();
|
|
16285
|
-
return [4 /*yield*/,
|
|
16948
|
+
return [4 /*yield*/, time_tracks_review_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16286
16949
|
case 56:
|
|
16287
16950
|
_l.sent();
|
|
16288
|
-
return [4 /*yield*/,
|
|
16951
|
+
return [4 /*yield*/, time_tracks_lock_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16289
16952
|
case 57:
|
|
16290
16953
|
_l.sent();
|
|
16291
|
-
return [4 /*yield*/,
|
|
16954
|
+
return [4 /*yield*/, time_tracks_edge_case_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16292
16955
|
case 58:
|
|
16293
16956
|
_l.sent();
|
|
16294
|
-
return [4 /*yield*/,
|
|
16957
|
+
return [4 /*yield*/, time_tracks_resubmit_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16295
16958
|
case 59:
|
|
16296
16959
|
_l.sent();
|
|
16297
|
-
return [4 /*yield*/,
|
|
16960
|
+
return [4 /*yield*/, time_tracks_appointment_duration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16298
16961
|
case 60:
|
|
16299
16962
|
_l.sent();
|
|
16300
|
-
return [4 /*yield*/,
|
|
16963
|
+
return [4 /*yield*/, calendar_event_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16301
16964
|
case 61:
|
|
16302
16965
|
_l.sent();
|
|
16303
|
-
return [4 /*yield*/,
|
|
16966
|
+
return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16304
16967
|
case 62:
|
|
16305
16968
|
_l.sent();
|
|
16306
|
-
return [4 /*yield*/,
|
|
16969
|
+
return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16307
16970
|
case 63:
|
|
16308
16971
|
_l.sent();
|
|
16309
|
-
return [4 /*yield*/,
|
|
16972
|
+
return [4 /*yield*/, custom_dashboards_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16310
16973
|
case 64:
|
|
16311
16974
|
_l.sent();
|
|
16312
|
-
return [4 /*yield*/,
|
|
16975
|
+
return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16313
16976
|
case 65:
|
|
16314
16977
|
_l.sent();
|
|
16315
|
-
return [4 /*yield*/,
|
|
16978
|
+
return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16316
16979
|
case 66:
|
|
16317
16980
|
_l.sent();
|
|
16318
|
-
return [4 /*yield*/,
|
|
16981
|
+
return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16319
16982
|
case 67:
|
|
16320
16983
|
_l.sent();
|
|
16321
|
-
return [4 /*yield*/,
|
|
16984
|
+
return [4 /*yield*/, enduser_tests()];
|
|
16322
16985
|
case 68:
|
|
16323
16986
|
_l.sent();
|
|
16324
|
-
return [4 /*yield*/,
|
|
16987
|
+
return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16325
16988
|
case 69:
|
|
16326
16989
|
_l.sent();
|
|
16327
|
-
return [4 /*yield*/,
|
|
16990
|
+
return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16328
16991
|
case 70:
|
|
16329
16992
|
_l.sent();
|
|
16330
|
-
return [4 /*yield*/,
|
|
16993
|
+
return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16331
16994
|
case 71:
|
|
16332
16995
|
_l.sent();
|
|
16333
|
-
return [4 /*yield*/,
|
|
16996
|
+
return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16334
16997
|
case 72:
|
|
16335
16998
|
_l.sent();
|
|
16336
|
-
return [4 /*yield*/,
|
|
16999
|
+
return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16337
17000
|
case 73:
|
|
16338
17001
|
_l.sent();
|
|
16339
|
-
return [4 /*yield*/,
|
|
17002
|
+
return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16340
17003
|
case 74:
|
|
16341
17004
|
_l.sent();
|
|
16342
|
-
return [4 /*yield*/,
|
|
17005
|
+
return [4 /*yield*/, inbox_threads_new_fields_tests()];
|
|
16343
17006
|
case 75:
|
|
16344
17007
|
_l.sent();
|
|
16345
|
-
return [4 /*yield*/,
|
|
17008
|
+
return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16346
17009
|
case 76:
|
|
16347
17010
|
_l.sent();
|
|
16348
|
-
return [4 /*yield*/,
|
|
17011
|
+
return [4 /*yield*/, threadKeyTests()];
|
|
16349
17012
|
case 77:
|
|
16350
17013
|
_l.sent();
|
|
16351
|
-
return [4 /*yield*/,
|
|
17014
|
+
return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16352
17015
|
case 78:
|
|
16353
17016
|
_l.sent();
|
|
16354
|
-
return [4 /*yield*/,
|
|
17017
|
+
return [4 /*yield*/, managed_content_file_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16355
17018
|
case 79:
|
|
16356
17019
|
_l.sent();
|
|
16357
|
-
return [4 /*yield*/,
|
|
17020
|
+
return [4 /*yield*/, afteraction_day_of_month_delay_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16358
17021
|
case 80:
|
|
16359
17022
|
_l.sent();
|
|
16360
|
-
return [4 /*yield*/,
|
|
17023
|
+
return [4 /*yield*/, bulk_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16361
17024
|
case 81:
|
|
16362
17025
|
_l.sent();
|
|
16363
|
-
return [4 /*yield*/,
|
|
17026
|
+
return [4 /*yield*/, formsort_tests()];
|
|
16364
17027
|
case 82:
|
|
16365
17028
|
_l.sent();
|
|
16366
|
-
return [4 /*yield*/,
|
|
17029
|
+
return [4 /*yield*/, self_serve_appointment_booking_tests()];
|
|
16367
17030
|
case 83:
|
|
16368
17031
|
_l.sent();
|
|
16369
|
-
return [4 /*yield*/,
|
|
17032
|
+
return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
|
|
16370
17033
|
case 84:
|
|
16371
17034
|
_l.sent();
|
|
16372
|
-
return [4 /*yield*/,
|
|
17035
|
+
return [4 /*yield*/, monthly_availability_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16373
17036
|
case 85:
|
|
16374
17037
|
_l.sent();
|
|
16375
|
-
return [4 /*yield*/,
|
|
17038
|
+
return [4 /*yield*/, journey_error_branching_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16376
17039
|
case 86:
|
|
16377
17040
|
_l.sent();
|
|
16378
|
-
return [4 /*yield*/,
|
|
17041
|
+
return [4 /*yield*/, message_assignment_trigger_tests({ sdk: sdk })];
|
|
16379
17042
|
case 87:
|
|
16380
17043
|
_l.sent();
|
|
16381
|
-
return [4 /*yield*/,
|
|
17044
|
+
return [4 /*yield*/, inbox_threads_building_tests()];
|
|
16382
17045
|
case 88:
|
|
16383
17046
|
_l.sent();
|
|
16384
|
-
return [4 /*yield*/,
|
|
17047
|
+
return [4 /*yield*/, inbox_threads_loading_tests()];
|
|
16385
17048
|
case 89:
|
|
16386
17049
|
_l.sent();
|
|
16387
|
-
return [4 /*yield*/,
|
|
17050
|
+
return [4 /*yield*/, load_inbox_data_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16388
17051
|
case 90:
|
|
16389
17052
|
_l.sent();
|
|
16390
|
-
return [4 /*yield*/,
|
|
17053
|
+
return [4 /*yield*/, enduser_observations_acknowledge_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
|
|
16391
17054
|
case 91:
|
|
16392
17055
|
_l.sent();
|
|
16393
|
-
return [4 /*yield*/,
|
|
17056
|
+
return [4 /*yield*/, create_user_notifications_trigger_tests({ sdk: sdk })];
|
|
16394
17057
|
case 92:
|
|
16395
17058
|
_l.sent();
|
|
16396
|
-
return [4 /*yield*/,
|
|
17059
|
+
return [4 /*yield*/, group_mms_active_tests()];
|
|
16397
17060
|
case 93:
|
|
16398
17061
|
_l.sent();
|
|
16399
|
-
return [4 /*yield*/,
|
|
17062
|
+
return [4 /*yield*/, auto_reply_tests()];
|
|
16400
17063
|
case 94:
|
|
16401
17064
|
_l.sent();
|
|
16402
|
-
return [4 /*yield*/,
|
|
17065
|
+
return [4 /*yield*/, relationships_tests()];
|
|
16403
17066
|
case 95:
|
|
16404
17067
|
_l.sent();
|
|
16405
|
-
return [4 /*yield*/,
|
|
17068
|
+
return [4 /*yield*/, rate_limit_tests()];
|
|
16406
17069
|
case 96:
|
|
17070
|
+
_l.sent();
|
|
17071
|
+
return [4 /*yield*/, ip_address_form_tests()];
|
|
17072
|
+
case 97:
|
|
17073
|
+
_l.sent();
|
|
17074
|
+
return [4 /*yield*/, bulk_update_tests()];
|
|
17075
|
+
case 98:
|
|
17076
|
+
_l.sent();
|
|
17077
|
+
return [4 /*yield*/, calendar_events_bulk_update_tests({ sdk: sdk })];
|
|
17078
|
+
case 99:
|
|
17079
|
+
_l.sent();
|
|
17080
|
+
return [4 /*yield*/, cancel_upcoming_appointments_journey_action_test()];
|
|
17081
|
+
case 100:
|
|
17082
|
+
_l.sent();
|
|
17083
|
+
return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
|
|
17084
|
+
case 101:
|
|
16407
17085
|
_l.sent(); // should come right after setup tests
|
|
16408
17086
|
return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
|
|
16409
|
-
case
|
|
17087
|
+
case 102:
|
|
16410
17088
|
_l.sent(); // should come directly after setup to avoid extra sync values
|
|
16411
17089
|
return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
|
|
16412
|
-
case
|
|
17090
|
+
case 103:
|
|
16413
17091
|
_l.sent(); // should come directly after setup to avoid extra sync values
|
|
16414
17092
|
return [4 /*yield*/, get_templated_message_tests()];
|
|
16415
|
-
case
|
|
17093
|
+
case 104:
|
|
16416
17094
|
_l.sent();
|
|
16417
17095
|
return [4 /*yield*/, updatedAt_tests()];
|
|
16418
|
-
case
|
|
17096
|
+
case 105:
|
|
16419
17097
|
_l.sent();
|
|
16420
17098
|
return [4 /*yield*/, file_source_tests()];
|
|
16421
|
-
case
|
|
17099
|
+
case 106:
|
|
16422
17100
|
_l.sent();
|
|
16423
17101
|
return [4 /*yield*/, enduser_access_tags_tests()];
|
|
16424
|
-
case
|
|
17102
|
+
case 107:
|
|
16425
17103
|
_l.sent();
|
|
16426
17104
|
return [4 /*yield*/, enduserAccessTests()];
|
|
16427
|
-
case
|
|
17105
|
+
case 108:
|
|
16428
17106
|
_l.sent();
|
|
16429
17107
|
return [4 /*yield*/, test_form_response_search()];
|
|
16430
|
-
case
|
|
17108
|
+
case 109:
|
|
16431
17109
|
_l.sent();
|
|
16432
17110
|
return [4 /*yield*/, date_parsing_tests()];
|
|
16433
|
-
case
|
|
17111
|
+
case 110:
|
|
16434
17112
|
_l.sent();
|
|
16435
17113
|
return [4 /*yield*/, fromEmailOverride_tests()];
|
|
16436
|
-
case
|
|
17114
|
+
case 111:
|
|
16437
17115
|
_l.sent();
|
|
16438
17116
|
return [4 /*yield*/, ticket_tests()];
|
|
16439
|
-
case
|
|
17117
|
+
case 112:
|
|
16440
17118
|
_l.sent();
|
|
16441
17119
|
return [4 /*yield*/, uniqueness_tests()];
|
|
16442
|
-
case
|
|
17120
|
+
case 113:
|
|
16443
17121
|
_l.sent();
|
|
16444
17122
|
return [4 /*yield*/, enduser_orders_tests()];
|
|
16445
|
-
case
|
|
17123
|
+
case 114:
|
|
16446
17124
|
_l.sent();
|
|
16447
17125
|
return [4 /*yield*/, calendar_event_care_team_tests()];
|
|
16448
|
-
case
|
|
17126
|
+
case 115:
|
|
16449
17127
|
_l.sent();
|
|
16450
17128
|
return [4 /*yield*/, merge_enduser_tests()];
|
|
16451
|
-
case
|
|
17129
|
+
case 116:
|
|
16452
17130
|
_l.sent();
|
|
16453
17131
|
return [4 /*yield*/, input_modifier_tests()];
|
|
16454
|
-
case
|
|
17132
|
+
case 117:
|
|
16455
17133
|
_l.sent();
|
|
16456
17134
|
return [4 /*yield*/, switch_to_related_contacts_tests()];
|
|
16457
|
-
case
|
|
17135
|
+
case 118:
|
|
16458
17136
|
_l.sent();
|
|
16459
17137
|
return [4 /*yield*/, redaction_tests()];
|
|
16460
|
-
case
|
|
17138
|
+
case 119:
|
|
16461
17139
|
_l.sent();
|
|
16462
17140
|
return [4 /*yield*/, no_chained_triggers_tests()];
|
|
16463
|
-
case
|
|
17141
|
+
case 120:
|
|
16464
17142
|
_l.sent();
|
|
16465
17143
|
return [4 /*yield*/, mdb_filter_tests()];
|
|
16466
|
-
case
|
|
17144
|
+
case 121:
|
|
16467
17145
|
_l.sent();
|
|
16468
17146
|
return [4 /*yield*/, superadmin_tests()];
|
|
16469
|
-
case
|
|
17147
|
+
case 122:
|
|
16470
17148
|
_l.sent();
|
|
16471
17149
|
return [4 /*yield*/, ticket_queue_tests()];
|
|
16472
|
-
case
|
|
17150
|
+
case 123:
|
|
16473
17151
|
_l.sent();
|
|
16474
17152
|
return [4 /*yield*/, vital_trigger_tests()];
|
|
16475
|
-
case
|
|
17153
|
+
case 124:
|
|
16476
17154
|
_l.sent();
|
|
16477
17155
|
return [4 /*yield*/, close_reasons_no_duplicates_tests()];
|
|
16478
|
-
case
|
|
17156
|
+
case 125:
|
|
16479
17157
|
_l.sent();
|
|
16480
17158
|
return [4 /*yield*/, register_as_enduser_tests()];
|
|
16481
|
-
case
|
|
17159
|
+
case 126:
|
|
16482
17160
|
_l.sent();
|
|
16483
17161
|
return [4 /*yield*/, lockout_tests()];
|
|
16484
|
-
case
|
|
17162
|
+
case 127:
|
|
16485
17163
|
_l.sent();
|
|
16486
17164
|
return [4 /*yield*/, delete_user_tests()
|
|
16487
17165
|
// await test_send_with_template()
|
|
16488
17166
|
];
|
|
16489
|
-
case
|
|
17167
|
+
case 128:
|
|
16490
17168
|
_l.sent();
|
|
16491
17169
|
// await test_send_with_template()
|
|
16492
17170
|
return [4 /*yield*/, bulk_read_tests()];
|
|
16493
|
-
case
|
|
17171
|
+
case 129:
|
|
16494
17172
|
// await test_send_with_template()
|
|
16495
17173
|
_l.sent();
|
|
16496
17174
|
return [4 /*yield*/, ticket_reminder_tests()];
|
|
16497
|
-
case
|
|
17175
|
+
case 130:
|
|
16498
17176
|
_l.sent();
|
|
16499
17177
|
return [4 /*yield*/, marketing_email_unsubscribe_tests()];
|
|
16500
|
-
case
|
|
17178
|
+
case 131:
|
|
16501
17179
|
_l.sent();
|
|
16502
17180
|
return [4 /*yield*/, unique_strings_tests()];
|
|
16503
|
-
case
|
|
17181
|
+
case 132:
|
|
16504
17182
|
_l.sent();
|
|
16505
17183
|
return [4 /*yield*/, alternate_phones_tests()];
|
|
16506
|
-
case
|
|
17184
|
+
case 133:
|
|
16507
17185
|
_l.sent();
|
|
16508
17186
|
return [4 /*yield*/, role_based_access_tests()];
|
|
16509
|
-
case
|
|
17187
|
+
case 134:
|
|
16510
17188
|
_l.sent();
|
|
16511
17189
|
return [4 /*yield*/, enduser_session_tests()];
|
|
16512
|
-
case
|
|
17190
|
+
case 135:
|
|
16513
17191
|
_l.sent();
|
|
16514
17192
|
return [4 /*yield*/, nextReminderInMS_tests()];
|
|
16515
|
-
case
|
|
17193
|
+
case 136:
|
|
16516
17194
|
_l.sent();
|
|
16517
17195
|
return [4 /*yield*/, wait_for_trigger_tests()];
|
|
16518
|
-
case
|
|
17196
|
+
case 137:
|
|
16519
17197
|
_l.sent();
|
|
16520
17198
|
return [4 /*yield*/, pdf_generation()];
|
|
16521
|
-
case
|
|
17199
|
+
case 138:
|
|
16522
17200
|
_l.sent();
|
|
16523
17201
|
return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
|
|
16524
|
-
case
|
|
17202
|
+
case 139:
|
|
16525
17203
|
_l.sent(); // timing is unreliable, uncomment if changing logic
|
|
16526
17204
|
return [4 /*yield*/, sub_organization_enduser_tests()];
|
|
16527
|
-
case
|
|
17205
|
+
case 140:
|
|
16528
17206
|
_l.sent();
|
|
16529
17207
|
return [4 /*yield*/, sub_organization_tests()];
|
|
16530
|
-
case
|
|
17208
|
+
case 141:
|
|
16531
17209
|
_l.sent();
|
|
16532
17210
|
return [4 /*yield*/, filter_by_date_tests()];
|
|
16533
|
-
case
|
|
17211
|
+
case 142:
|
|
16534
17212
|
_l.sent();
|
|
16535
17213
|
return [4 /*yield*/, generate_user_auth_tests()];
|
|
16536
|
-
case
|
|
17214
|
+
case 143:
|
|
16537
17215
|
_l.sent();
|
|
16538
17216
|
return [4 /*yield*/, generateEnduserAuthTests()];
|
|
16539
|
-
case
|
|
17217
|
+
case 144:
|
|
16540
17218
|
_l.sent();
|
|
16541
17219
|
return [4 /*yield*/, public_form_tests()];
|
|
16542
|
-
case
|
|
17220
|
+
case 145:
|
|
16543
17221
|
_l.sent();
|
|
16544
17222
|
return [4 /*yield*/, badInputTests()];
|
|
16545
|
-
case
|
|
17223
|
+
case 146:
|
|
16546
17224
|
_l.sent();
|
|
16547
17225
|
return [4 /*yield*/, filterTests()];
|
|
16548
|
-
case
|
|
17226
|
+
case 147:
|
|
16549
17227
|
_l.sent();
|
|
16550
17228
|
return [4 /*yield*/, updatesTests()];
|
|
16551
|
-
case
|
|
17229
|
+
case 148:
|
|
16552
17230
|
_l.sent();
|
|
16553
|
-
return [3 /*break*/,
|
|
16554
|
-
case
|
|
17231
|
+
return [3 /*break*/, 150];
|
|
17232
|
+
case 149:
|
|
16555
17233
|
err_1 = _l.sent();
|
|
16556
17234
|
console.error("Failed during custom test");
|
|
16557
17235
|
if (err_1.message && err_1.info) {
|
|
@@ -16561,18 +17239,18 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
16561
17239
|
console.error(err_1);
|
|
16562
17240
|
}
|
|
16563
17241
|
process.exit(1);
|
|
16564
|
-
return [3 /*break*/,
|
|
16565
|
-
case
|
|
17242
|
+
return [3 /*break*/, 150];
|
|
17243
|
+
case 150:
|
|
16566
17244
|
_a = schema;
|
|
16567
17245
|
_b = [];
|
|
16568
17246
|
for (_c in _a)
|
|
16569
17247
|
_b.push(_c);
|
|
16570
17248
|
_i = 0;
|
|
16571
|
-
_l.label =
|
|
16572
|
-
case
|
|
16573
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
17249
|
+
_l.label = 151;
|
|
17250
|
+
case 151:
|
|
17251
|
+
if (!(_i < _b.length)) return [3 /*break*/, 154];
|
|
16574
17252
|
_c = _b[_i];
|
|
16575
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
17253
|
+
if (!(_c in _a)) return [3 /*break*/, 153];
|
|
16576
17254
|
n = _c;
|
|
16577
17255
|
returnValidation = (_k = (_j = schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
|
|
16578
17256
|
return [4 /*yield*/, run_generated_tests({
|
|
@@ -16583,41 +17261,41 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
16583
17261
|
create: returnValidation // ModelFields<ClientModel>,
|
|
16584
17262
|
}
|
|
16585
17263
|
})];
|
|
16586
|
-
case
|
|
17264
|
+
case 152:
|
|
16587
17265
|
_l.sent();
|
|
16588
|
-
_l.label =
|
|
16589
|
-
case
|
|
17266
|
+
_l.label = 153;
|
|
17267
|
+
case 153:
|
|
16590
17268
|
_i++;
|
|
16591
|
-
return [3 /*break*/,
|
|
16592
|
-
case
|
|
17269
|
+
return [3 /*break*/, 151];
|
|
17270
|
+
case 154:
|
|
16593
17271
|
_d = tests;
|
|
16594
17272
|
_f = [];
|
|
16595
17273
|
for (_g in _d)
|
|
16596
17274
|
_f.push(_g);
|
|
16597
17275
|
_h = 0;
|
|
16598
|
-
_l.label =
|
|
16599
|
-
case
|
|
16600
|
-
if (!(_h < _f.length)) return [3 /*break*/,
|
|
17276
|
+
_l.label = 155;
|
|
17277
|
+
case 155:
|
|
17278
|
+
if (!(_h < _f.length)) return [3 /*break*/, 160];
|
|
16601
17279
|
_g = _f[_h];
|
|
16602
|
-
if (!(_g in _d)) return [3 /*break*/,
|
|
17280
|
+
if (!(_g in _d)) return [3 /*break*/, 159];
|
|
16603
17281
|
t = _g;
|
|
16604
|
-
_l.label =
|
|
16605
|
-
case
|
|
16606
|
-
_l.trys.push([
|
|
17282
|
+
_l.label = 156;
|
|
17283
|
+
case 156:
|
|
17284
|
+
_l.trys.push([156, 158, , 159]);
|
|
16607
17285
|
return [4 /*yield*/, tests[t]()];
|
|
16608
|
-
case
|
|
17286
|
+
case 157:
|
|
16609
17287
|
_l.sent();
|
|
16610
|
-
return [3 /*break*/,
|
|
16611
|
-
case
|
|
17288
|
+
return [3 /*break*/, 159];
|
|
17289
|
+
case 158:
|
|
16612
17290
|
err_2 = _l.sent();
|
|
16613
17291
|
console.error("Error running test:");
|
|
16614
17292
|
console.error(err_2);
|
|
16615
17293
|
process.exit(1);
|
|
16616
|
-
return [3 /*break*/,
|
|
16617
|
-
case
|
|
17294
|
+
return [3 /*break*/, 159];
|
|
17295
|
+
case 159:
|
|
16618
17296
|
_h++;
|
|
16619
|
-
return [3 /*break*/,
|
|
16620
|
-
case
|
|
17297
|
+
return [3 /*break*/, 155];
|
|
17298
|
+
case 160:
|
|
16621
17299
|
process.exit();
|
|
16622
17300
|
return [2 /*return*/];
|
|
16623
17301
|
}
|