@tellescope/sdk 1.242.6 → 1.242.8

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.
@@ -838,10 +838,42 @@ const enduser_tests = async (queries=sdk.api.endusers) => {
838
838
  )
839
839
  await async_test(
840
840
  `get-enduser test replaceObjectFields verify true unset`,
841
- () => queries.getOne(e1.id ?? ''),
841
+ () => queries.getOne(e1.id ?? ''),
842
842
  { onResult: e => objects_equivalent(e.fields, {}) },
843
843
  )
844
844
 
845
+ // Test updating references field (CU-86e011kjq)
846
+ await async_test(
847
+ `update-enduser references`,
848
+ () => queries.updateOne(e1.id ?? '', {
849
+ references: [{ type: 'Healthie', id: 'Healthie-123' }]
850
+ }),
851
+ passOnVoid,
852
+ )
853
+ await async_test(
854
+ `get-enduser verify references update`,
855
+ () => queries.getOne(e1.id ?? ''),
856
+ { onResult: e => e.references?.length === 1 && e.references[0].type === 'Healthie' && e.references[0].id === 'Healthie-123' },
857
+ )
858
+ await async_test(
859
+ `update-enduser references with optional fields`,
860
+ () => queries.updateOne(e1.id ?? '', {
861
+ references: [{ type: 'Healthie', id: 'Healthie-456', creator: PLACEHOLDER_ID, environment: 'production' }]
862
+ }, { replaceObjectFields: true }),
863
+ passOnVoid,
864
+ )
865
+ await async_test(
866
+ `get-enduser verify references with optional fields`,
867
+ () => queries.getOne(e1.id ?? ''),
868
+ { onResult: e => (
869
+ e.references?.length === 1
870
+ && e.references[0].type === 'Healthie'
871
+ && e.references[0].id === 'Healthie-456'
872
+ && e.references[0].creator === PLACEHOLDER_ID
873
+ && e.references[0].environment === 'production'
874
+ )},
875
+ )
876
+
845
877
  const eToDup1: Partial<Enduser> = { email: 'dup1@tellescope.com' }
846
878
  const eToDup2: Partial<Enduser> = { email: 'dup2@tellescope.com' }
847
879
  await queries.createOne(eToDup1)
@@ -867,10 +899,28 @@ const enduser_tests = async (queries=sdk.api.endusers) => {
867
899
  { onResult: ({ created, errors }) => created.length === 1 && errors.length === 2 }
868
900
  )
869
901
  await async_test(
870
- `create-many-endusers - create conflict, two unique`,
871
- () => queries.createSome([{ email: 'd2@tellescope.com'}, { email: 'd2@tellescope.com'}, { email: 'createme@tellescope.com' }]),
902
+ `create-many-endusers - create conflict, two unique`,
903
+ () => queries.createSome([{ email: 'd2@tellescope.com'}, { email: 'd2@tellescope.com'}, { email: 'createme@tellescope.com' }]),
872
904
  { onResult: ({ created, errors }) => created.length === 2 && errors.length === 1 }
873
905
  )
906
+
907
+ // Cleanup all endusers created in this test
908
+ const endusersToCleanup = await queries.getSome({
909
+ mdbFilter: {
910
+ email: { $in: [
911
+ 'editedtest1@gmail.com', // e1 after update
912
+ 'test2@gmail.com', // e2
913
+ 'test3@gmail.com', // registered enduser
914
+ 'dup1@tellescope.com',
915
+ 'dup2@tellescope.com',
916
+ 'unique@tellescope.com',
917
+ 'd1@tellescope.com',
918
+ 'd2@tellescope.com',
919
+ 'createme@tellescope.com',
920
+ ]}
921
+ }
922
+ })
923
+ await Promise.all(endusersToCleanup.map(e => queries.deleteOne(e.id)))
874
924
  }
875
925
 
876
926
  const api_key_tests = async () => { }
@@ -4808,13 +4858,61 @@ const fields_changed_tests = async () => {
4808
4858
  () => sdk.api.endusers.getOne(e1.id),
4809
4859
  { onResult: e => e.tags?.length === 4 && e.tags.includes('4') && e.tags.includes('2') && e.tags.includes('3') && e.tags.includes('1') },
4810
4860
  )
4811
-
4861
+
4862
+ // Test insurance payer name fields
4863
+ const t5 = await sdk.api.automation_triggers.createOne({
4864
+ title: "Insurance payer name changed", status: 'Active',
4865
+ event: { type: 'Fields Changed', info: { fields: ['insurance.payerName'] } },
4866
+ action: { type: 'Add Tags', info: { tags: ['5'] } }
4867
+ })
4868
+ const t6 = await sdk.api.automation_triggers.createOne({
4869
+ title: "Secondary insurance payer name changed", status: 'Active',
4870
+ event: { type: 'Fields Changed', info: { fields: ['insuranceSecondary.payerName'] } },
4871
+ action: { type: 'Add Tags', info: { tags: ['6'] } }
4872
+ })
4873
+
4874
+ const e2 = await sdk.api.endusers.createOne({ fname: 'Insurance Test' })
4875
+ await wait (undefined, 500) // allow triggers to happen
4876
+
4877
+ // changing insurance payer name should trigger t5
4878
+ await sdk.api.endusers.updateOne(e2.id, { insurance: { payerName: 'Blue Cross' } })
4879
+ await wait (undefined, 500) // allow triggers to happen
4880
+ await async_test(
4881
+ 'Trigger on insurance payer name change',
4882
+ () => sdk.api.endusers.getOne(e2.id),
4883
+ { onResult: e => e.tags?.length === 1 && e.tags.includes('5') },
4884
+ )
4885
+
4886
+ // changing secondary insurance payer name should trigger t6
4887
+ await sdk.api.endusers.updateOne(e2.id, { insuranceSecondary: { payerName: 'Aetna' } })
4888
+ await wait (undefined, 500) // allow triggers to happen
4889
+ await async_test(
4890
+ 'Trigger on secondary insurance payer name change',
4891
+ () => sdk.api.endusers.getOne(e2.id),
4892
+ { onResult: e => e.tags?.length === 2 && e.tags.includes('5') && e.tags.includes('6') },
4893
+ )
4894
+
4895
+ // changing both insurance payer names should trigger both t5 and t6
4896
+ await sdk.api.endusers.updateOne(e2.id, {
4897
+ insurance: { payerName: 'United Healthcare' },
4898
+ insuranceSecondary: { payerName: 'Cigna' }
4899
+ })
4900
+ await wait (undefined, 500) // allow triggers to happen
4901
+ await async_test(
4902
+ 'Trigger on both insurance payer names change',
4903
+ () => sdk.api.endusers.getOne(e2.id),
4904
+ { onResult: e => e.tags?.length === 2 && e.tags.includes('5') && e.tags.includes('6') },
4905
+ )
4906
+
4812
4907
  return Promise.all([
4813
4908
  sdk.api.endusers.deleteOne(e1.id),
4909
+ sdk.api.endusers.deleteOne(e2.id),
4814
4910
  sdk.api.automation_triggers.deleteOne(t1.id),
4815
4911
  sdk.api.automation_triggers.deleteOne(t2.id),
4816
4912
  sdk.api.automation_triggers.deleteOne(t3.id),
4817
4913
  sdk.api.automation_triggers.deleteOne(t4.id),
4914
+ sdk.api.automation_triggers.deleteOne(t5.id),
4915
+ sdk.api.automation_triggers.deleteOne(t6.id),
4818
4916
  ])
4819
4917
  }
4820
4918
 
@@ -13732,6 +13830,7 @@ const ip_address_form_tests = async () => {
13732
13830
  await replace_enduser_template_values_tests()
13733
13831
  await mfa_tests()
13734
13832
  await setup_tests(sdk, sdkNonAdmin)
13833
+ await enduser_tests()
13735
13834
  await form_started_trigger_tests({ sdk, sdkNonAdmin })
13736
13835
  await load_team_chat_tests({ sdk, sdkNonAdmin })
13737
13836
  await ai_conversations_tests({ sdk, sdkNonAdmin })
Binary file