@tellescope/sdk 1.246.2 → 1.248.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/lib/cjs/sdk.d.ts +7 -1
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/sdk.js +2 -0
  4. package/lib/cjs/sdk.js.map +1 -1
  5. package/lib/cjs/tests/api_tests/date_string_validation.test.d.ts +6 -0
  6. package/lib/cjs/tests/api_tests/date_string_validation.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/date_string_validation.test.js +142 -0
  8. package/lib/cjs/tests/api_tests/date_string_validation.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.d.ts +6 -0
  10. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.d.ts.map +1 -0
  11. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js +243 -0
  12. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js.map +1 -0
  13. package/lib/cjs/tests/api_tests/field_redaction.test.d.ts +13 -0
  14. package/lib/cjs/tests/api_tests/field_redaction.test.d.ts.map +1 -0
  15. package/lib/cjs/tests/api_tests/field_redaction.test.js +818 -0
  16. package/lib/cjs/tests/api_tests/field_redaction.test.js.map +1 -0
  17. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts +6 -0
  18. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -0
  19. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js +429 -0
  20. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js.map +1 -0
  21. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts +6 -0
  22. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts.map +1 -0
  23. package/lib/cjs/tests/api_tests/integrations_redacted.test.js +273 -0
  24. package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -0
  25. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts +6 -0
  26. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts.map +1 -0
  27. package/lib/cjs/tests/api_tests/mdb_sort.test.js +370 -0
  28. package/lib/cjs/tests/api_tests/mdb_sort.test.js.map +1 -0
  29. package/lib/cjs/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
  30. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js +108 -24
  31. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  32. package/lib/cjs/tests/tests.d.ts.map +1 -1
  33. package/lib/cjs/tests/tests.js +303 -180
  34. package/lib/cjs/tests/tests.js.map +1 -1
  35. package/lib/esm/sdk.d.ts +7 -1
  36. package/lib/esm/sdk.d.ts.map +1 -1
  37. package/lib/esm/sdk.js +2 -0
  38. package/lib/esm/sdk.js.map +1 -1
  39. package/lib/esm/tests/api_tests/date_string_validation.test.d.ts +6 -0
  40. package/lib/esm/tests/api_tests/date_string_validation.test.d.ts.map +1 -0
  41. package/lib/esm/tests/api_tests/date_string_validation.test.js +138 -0
  42. package/lib/esm/tests/api_tests/date_string_validation.test.js.map +1 -0
  43. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.d.ts +6 -0
  44. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.d.ts.map +1 -0
  45. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js +239 -0
  46. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js.map +1 -0
  47. package/lib/esm/tests/api_tests/field_redaction.test.d.ts +13 -0
  48. package/lib/esm/tests/api_tests/field_redaction.test.d.ts.map +1 -0
  49. package/lib/esm/tests/api_tests/field_redaction.test.js +814 -0
  50. package/lib/esm/tests/api_tests/field_redaction.test.js.map +1 -0
  51. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts +6 -0
  52. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -0
  53. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js +425 -0
  54. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js.map +1 -0
  55. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts +6 -0
  56. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts.map +1 -0
  57. package/lib/esm/tests/api_tests/integrations_redacted.test.js +269 -0
  58. package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -0
  59. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts +6 -0
  60. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts.map +1 -0
  61. package/lib/esm/tests/api_tests/mdb_sort.test.js +366 -0
  62. package/lib/esm/tests/api_tests/mdb_sort.test.js.map +1 -0
  63. package/lib/esm/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
  64. package/lib/esm/tests/api_tests/openloop_webhooks.test.js +108 -24
  65. package/lib/esm/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  66. package/lib/esm/tests/tests.d.ts.map +1 -1
  67. package/lib/esm/tests/tests.js +303 -180
  68. package/lib/esm/tests/tests.js.map +1 -1
  69. package/lib/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +10 -10
  71. package/src/sdk.ts +11 -0
  72. package/src/tests/api_tests/calendar_events_bulk_update.test.ts +418 -0
  73. package/src/tests/api_tests/date_string_validation.test.ts +107 -0
  74. package/src/tests/api_tests/enduser_session_invalidation.test.ts +138 -0
  75. package/src/tests/api_tests/field_redaction.test.ts +669 -0
  76. package/src/tests/api_tests/form_started_trigger.test.ts +1 -1
  77. package/src/tests/api_tests/form_submitted_trigger.test.ts +281 -0
  78. package/src/tests/api_tests/integrations_redacted.test.ts +245 -0
  79. package/src/tests/api_tests/mdb_sort.test.ts +259 -0
  80. package/src/tests/api_tests/openloop_webhooks.test.ts +64 -0
  81. package/src/tests/api_tests/organization_settings_duplicates.test.ts +201 -0
  82. package/src/tests/tests.ts +92 -6
  83. package/test_generated.pdf +0 -0
@@ -36,7 +36,9 @@ import {
36
36
 
37
37
  import { Session, APIQuery, EnduserSession } from "../sdk"
38
38
  import { enduser_observations_acknowledge_tests } from "./api_tests/enduser_observations_acknowledge.test"
39
+ import { integrations_redacted_tests } from "./api_tests/integrations_redacted.test"
39
40
  import { get_some_projection_tests } from "./api_tests/get_some_projection.test"
41
+ import { mdb_sort_tests } from "./api_tests/mdb_sort.test"
40
42
  import { create_user_notifications_trigger_tests } from "./api_tests/create_user_notifications_trigger.test"
41
43
  import { inbox_thread_assignment_updates_tests } from "./api_tests/inbox_thread_assignment_updates.test"
42
44
  import { inbox_thread_draft_scheduled_tests } from "./api_tests/inbox_thread_draft_scheduled.test"
@@ -79,6 +81,7 @@ import { monthly_availability_restrictions_tests } from "./api_tests/monthly_ava
79
81
  import { calendar_event_limits_tests } from "./api_tests/calendar_event_limits.test";
80
82
  import { custom_aggregation_tests } from "./api_tests/custom_aggregation.test";
81
83
  import { no_access_permission_checks_tests } from "./api_tests/no_access_permission_checks.test";
84
+ import { field_redaction_tests } from "./api_tests/field_redaction.test";
82
85
  import { bulk_assignment_tests } from "./api_tests/bulk_assignment.test";
83
86
  import { managed_content_enduser_access_tests } from "./api_tests/managed_content_enduser_access.test";
84
87
  import { auto_merge_form_submission_tests } from "./api_tests/auto_merge_form_submission.test";
@@ -86,10 +89,15 @@ import { database_cascade_delete_tests } from "./api_tests/database_cascade_dele
86
89
  import { ai_conversations_tests } from "./api_tests/ai_conversations.test";
87
90
  import { load_team_chat_tests } from "./api_tests/load_team_chat.test";
88
91
  import { form_started_trigger_tests } from "./api_tests/form_started_trigger.test";
92
+ import { form_submitted_trigger_tests } from "./api_tests/form_submitted_trigger.test";
89
93
  import { medication_added_trigger_tests } from "./api_tests/medication_added_trigger.test";
90
94
  import { elation_user_id_tests } from "./api_tests/elation_user_id.test";
95
+ import { organization_settings_duplicates_tests } from "./api_tests/organization_settings_duplicates.test";
96
+ import { calendar_events_bulk_update_tests } from "./api_tests/calendar_events_bulk_update.test";
91
97
  import { openloop_webhooks_tests } from "./api_tests/openloop_webhooks.test";
92
98
  import { beluga_pharmacy_mappings_tests } from "./api_tests/beluga_pharmacy_mappings.test";
99
+ import { date_string_validation_tests } from "./api_tests/date_string_validation.test";
100
+ import { enduser_session_invalidation_tests } from "./api_tests/enduser_session_invalidation.test";
93
101
 
94
102
  const UniquenessViolationMessage = 'Uniqueness Violation'
95
103
 
@@ -3426,6 +3434,12 @@ const order_status_equals_tests = async () => {
3426
3434
  status: 'Active',
3427
3435
  title: "Title Partial And Condition"
3428
3436
  })
3437
+ const t9 = await sdk.api.automation_triggers.createOne({
3438
+ event: { type: 'Order Status Equals', info: { source: 'Source', status: "Update", protocols: ['Protocol-A'] } },
3439
+ action: { type: 'Add Tags', info: { tags: ['Protocol Match'] }},
3440
+ status: 'Active',
3441
+ title: "Protocol Condition"
3442
+ })
3429
3443
 
3430
3444
  const e = await sdk.api.endusers.createOne({})
3431
3445
 
@@ -3607,6 +3621,38 @@ const order_status_equals_tests = async () => {
3607
3621
  ) }
3608
3622
  )
3609
3623
 
3624
+ await sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 7" })
3625
+ await sdk.api.enduser_orders.updateOne(u.id, { status: "Update", protocol: 'Protocol-Mismatch', externalId: 'avoid rate limiting 7' })
3626
+ await wait(undefined, 500) // allow triggers to happen
3627
+ await async_test(
3628
+ "Protocol no match (wrong protocol)",
3629
+ () => sdk.api.endusers.getOne(e.id),
3630
+ { onResult: e => !!(
3631
+ e.tags?.length === 8
3632
+ && !e.tags?.includes('Protocol Match')
3633
+ ) }
3634
+ )
3635
+
3636
+ await sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 8" })
3637
+ await sdk.api.enduser_orders.updateOne(u.id, { status: "Update", protocol: 'Protocol-A', externalId: 'avoid rate limiting 8' })
3638
+ await wait(undefined, 500) // allow triggers to happen
3639
+ await async_test(
3640
+ "Protocol match tag added",
3641
+ () => sdk.api.endusers.getOne(e.id),
3642
+ { onResult: e => !!(
3643
+ e.tags?.length === 9
3644
+ && e.tags?.includes('Source')
3645
+ && e.tags?.includes('Fill')
3646
+ && e.tags?.includes('Status Update')
3647
+ && e.tags?.includes('Fill Update')
3648
+ && e.tags?.includes('SKU Update')
3649
+ && e.tags?.includes('SKU Partial Update')
3650
+ && e.tags?.includes('Title Partial Update')
3651
+ && e.tags?.includes('Title Partial And Update')
3652
+ && e.tags?.includes('Protocol Match')
3653
+ ) }
3654
+ )
3655
+
3610
3656
  await Promise.all([
3611
3657
  sdk.api.automation_triggers.deleteOne(t1.id),
3612
3658
  sdk.api.automation_triggers.deleteOne(t2.id),
@@ -3616,6 +3662,7 @@ const order_status_equals_tests = async () => {
3616
3662
  sdk.api.automation_triggers.deleteOne(t6.id),
3617
3663
  sdk.api.automation_triggers.deleteOne(t7.id),
3618
3664
  sdk.api.automation_triggers.deleteOne(t8.id),
3665
+ sdk.api.automation_triggers.deleteOne(t9.id),
3619
3666
  sdk.api.endusers.deleteOne(e.id),
3620
3667
  ])
3621
3668
  }
@@ -5013,8 +5060,8 @@ const trigger_events_api_tests = async () => {
5013
5060
  const automation_trigger_tests = async () => {
5014
5061
  log_header("Automation Trigger Tests")
5015
5062
 
5016
- await medication_added_trigger_tests({ sdk, sdkNonAdmin })
5017
5063
  await order_status_equals_tests()
5064
+ await medication_added_trigger_tests({ sdk, sdkNonAdmin })
5018
5065
  await appointment_cancelled_tests()
5019
5066
  await set_fields_tests()
5020
5067
  await purchase_made_trigger_tests({ sdk, sdkNonAdmin })
@@ -8585,7 +8632,7 @@ export const formsort_tests = async () => {
8585
8632
  const form = await sdk.api.forms.createOne({ title: "FormSort" })
8586
8633
 
8587
8634
  const postToFormsort = async ({ matchByName=false, createNewEnduser=false, enduserId, returnJSON=false, ...o }: {
8588
- answers: { key: string, value: any }[],
8635
+ answers: { key: string, value: any, label?: string }[],
8589
8636
  responder_uuid: string,
8590
8637
  finalized: boolean,
8591
8638
  matchByName?: boolean,
@@ -8602,8 +8649,8 @@ export const formsort_tests = async () => {
8602
8649
  return await axios.post(url.toString(), o)
8603
8650
  }
8604
8651
 
8605
- const postToFormsortGeneric = async ({ matchByName=false, createNewEnduser=false, ...o }: {
8606
- answers: { key: string, value: any }[],
8652
+ const postToFormsortGeneric = async ({ matchByName=false, createNewEnduser=false, ...o }: {
8653
+ answers: { key: string, value: any, label?: string }[],
8607
8654
  responder_uuid: string,
8608
8655
  finalized: boolean,
8609
8656
  matchByName?: boolean,
@@ -8982,6 +9029,37 @@ export const formsort_tests = async () => {
8982
9029
  onResult: r => r?.fname === 'ChangedFirst' && r?.lname === 'ChangedLast'
8983
9030
  })
8984
9031
 
9032
+ // Test label as fieldTitle
9033
+ const validateFieldTitle = (fr: { responses?: { externalId?: string, fieldTitle?: string }[] }, key: string, expectedTitle: string): boolean => {
9034
+ return fr.responses?.find(r => r.externalId === key)?.fieldTitle === expectedTitle
9035
+ }
9036
+
9037
+ // Label provided: fieldTitle should use label, externalId should use key
9038
+ await postToFormsort({
9039
+ answers: [
9040
+ { key: 'email', value: 'label-test@tellescope.com' },
9041
+ { key: 'label_test_key', value: 'test_value', label: 'My Custom Label' },
9042
+ ],
9043
+ responder_uuid: "label-test",
9044
+ finalized: true,
9045
+ })
9046
+ await async_test(`label as fieldTitle`, () => sdk.api.form_responses.getOne({ externalId: 'label-test' }), {
9047
+ onResult: r => validateFieldTitle(r, 'label_test_key', 'My Custom Label')
9048
+ })
9049
+
9050
+ // No label: fieldTitle should fall back to key
9051
+ await postToFormsort({
9052
+ answers: [
9053
+ { key: 'email', value: 'no-label-test@tellescope.com' },
9054
+ { key: 'no_label_key', value: 'test_value' },
9055
+ ],
9056
+ responder_uuid: "no-label-test",
9057
+ finalized: true,
9058
+ })
9059
+ await async_test(`no label falls back to key as fieldTitle`, () => sdk.api.form_responses.getOne({ externalId: 'no-label-test' }), {
9060
+ onResult: r => validateFieldTitle(r, 'no_label_key', 'no_label_key')
9061
+ })
9062
+
8985
9063
  // cleanup
8986
9064
  const endusers = await sdk.api.endusers.getSome()
8987
9065
  await Promise.all([
@@ -14123,6 +14201,14 @@ const ip_address_form_tests = async () => {
14123
14201
  await replace_enduser_template_values_tests()
14124
14202
  await mfa_tests()
14125
14203
  await setup_tests(sdk, sdkNonAdmin)
14204
+ await field_redaction_tests({ sdk, sdkNonAdmin })
14205
+ await form_submitted_trigger_tests({ sdk, sdkNonAdmin })
14206
+ await date_string_validation_tests({ sdk, sdkNonAdmin })
14207
+ await openloop_webhooks_tests({ sdk, sdkNonAdmin })
14208
+ await automation_trigger_tests()
14209
+ await integrations_redacted_tests({ sdk, sdkNonAdmin })
14210
+ await mdb_sort_tests({ sdk, sdkNonAdmin })
14211
+ await organization_settings_duplicates_tests({ sdk, sdkNonAdmin })
14126
14212
  await search_tests()
14127
14213
  await time_tracks_tests({ sdk, sdkNonAdmin })
14128
14214
  await time_tracks_historical_tests({ sdk, sdkNonAdmin })
@@ -14131,8 +14217,6 @@ const ip_address_form_tests = async () => {
14131
14217
  await time_tracks_lock_tests({ sdk, sdkNonAdmin })
14132
14218
  await time_tracks_edge_case_tests({ sdk, sdkNonAdmin })
14133
14219
  await calendar_event_limits_tests({ sdk, sdkNonAdmin })
14134
- await openloop_webhooks_tests({ sdk, sdkNonAdmin })
14135
- await automation_trigger_tests()
14136
14220
  await get_some_projection_tests({ sdk, sdkNonAdmin })
14137
14221
  await elation_user_id_tests({ sdk, sdkNonAdmin })
14138
14222
  await custom_dashboards_tests({ sdk, sdkNonAdmin })
@@ -14163,6 +14247,7 @@ const ip_address_form_tests = async () => {
14163
14247
  await inbox_threads_loading_tests()
14164
14248
  await load_inbox_data_tests({ sdk, sdkNonAdmin })
14165
14249
  await enduser_observations_acknowledge_tests({ sdk, sdkNonAdmin })
14250
+ await enduser_session_invalidation_tests({ sdk, sdkNonAdmin })
14166
14251
  await create_user_notifications_trigger_tests({ sdk })
14167
14252
  await group_mms_active_tests()
14168
14253
  await auto_reply_tests()
@@ -14170,6 +14255,7 @@ const ip_address_form_tests = async () => {
14170
14255
  await rate_limit_tests()
14171
14256
  await ip_address_form_tests()
14172
14257
  await bulk_update_tests()
14258
+ await calendar_events_bulk_update_tests({ sdk })
14173
14259
  await cancel_upcoming_appointments_journey_action_test()
14174
14260
  await multi_tenant_tests() // should come right after setup tests
14175
14261
  await sync_tests_with_access_tags() // should come directly after setup to avoid extra sync values
Binary file