@tellescope/sdk 1.123.0 → 1.124.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.
@@ -9641,6 +9641,56 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9641
9641
  }
9642
9642
  });
9643
9643
  }); };
9644
+ var uniqueness_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
9645
+ var email, externalId, dateOfBirth, form, _a, eExternalId, other, eExternalIdOnUpdate, enduserNoCreator;
9646
+ return __generator(this, function (_b) {
9647
+ switch (_b.label) {
9648
+ case 0:
9649
+ (0, testing_1.log_header)("Uniqueness Tests");
9650
+ email = "test@tellescope.com";
9651
+ externalId = "12345";
9652
+ dateOfBirth = "12-20-1997";
9653
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'test form for duplication', allowPublicURL: true })];
9654
+ case 1:
9655
+ form = _b.sent();
9656
+ return [4 /*yield*/, sdk.api.form_fields.createOne({ formId: form.id, title: 'title', type: 'string', previousFields: [{ type: 'root', info: {} }] })];
9657
+ case 2:
9658
+ _b.sent();
9659
+ return [4 /*yield*/, sdk.api.endusers.createSome([{ email: email, externalId: externalId }, {}])];
9660
+ case 3:
9661
+ _a = (_b.sent()).created, eExternalId = _a[0], other = _a[1];
9662
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
9663
+ case 4:
9664
+ eExternalIdOnUpdate = _b.sent();
9665
+ return [4 /*yield*/, enduserSDK.api.form_responses.session_for_public_form({ businessId: form.businessId, formId: form.id, skipMatch: true, dateOfBirth: dateOfBirth })];
9666
+ case 5:
9667
+ _b.sent();
9668
+ return [4 /*yield*/, sdk.api.endusers.getOne({ dateOfBirth: dateOfBirth })];
9669
+ case 6:
9670
+ enduserNoCreator = _b.sent();
9671
+ (0, testing_1.assert)(enduserNoCreator.creator === null, 'creator null from public form', 'creator null from public form');
9672
+ return [4 /*yield*/, (0, testing_1.async_test)("Cannot create with duplicate externalId", function () { return sdk.api.endusers.createOne({ email: 'notaconflict2@tellescope.com', phone: "+15555555555", externalId: externalId }); }, { shouldError: true, onError: function (e) { return e.message === UniquenessViolationMessage; } })];
9673
+ case 7:
9674
+ _b.sent();
9675
+ return [4 /*yield*/, (0, testing_1.async_test)("Cannot update to set duplicate externalId", function () { return sdk.api.endusers.updateOne(eExternalIdOnUpdate.id, { email: email, phone: "+15555555555", externalId: externalId }, { replaceObjectFields: true }); }, { shouldError: true, onError: function (e) { return e.message === UniquenessViolationMessage; } })];
9676
+ case 8:
9677
+ _b.sent();
9678
+ return [4 /*yield*/, (0, testing_1.async_test)("Cannot update to set duplicate externalId", function () { return sdk.api.endusers.updateOne(enduserNoCreator.id, { email: email, phone: "+15555555555", externalId: externalId }, { replaceObjectFields: true }); }, { shouldError: true, onError: function (e) { return e.message === UniquenessViolationMessage; } })];
9679
+ case 9:
9680
+ _b.sent();
9681
+ return [4 /*yield*/, Promise.all([
9682
+ sdk.api.endusers.deleteOne(eExternalId.id),
9683
+ sdk.api.endusers.deleteOne(other.id),
9684
+ sdk.api.endusers.deleteOne(eExternalIdOnUpdate.id),
9685
+ sdk.api.endusers.deleteOne(enduserNoCreator.id),
9686
+ sdk.api.forms.deleteOne(form.id),
9687
+ ])];
9688
+ case 10:
9689
+ _b.sent();
9690
+ return [2 /*return*/];
9691
+ }
9692
+ });
9693
+ }); };
9644
9694
  (function () { return __awaiter(void 0, void 0, void 0, function () {
9645
9695
  var fields, err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
9646
9696
  var _j, _k;
@@ -9653,7 +9703,7 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9653
9703
  _l.sent();
9654
9704
  _l.label = 2;
9655
9705
  case 2:
9656
- _l.trys.push([2, 56, , 57]);
9706
+ _l.trys.push([2, 59, , 60]);
9657
9707
  (0, exports.form_conditional_logic_tests)();
9658
9708
  return [4 /*yield*/, test_weighted_round_robin()];
9659
9709
  case 3:
@@ -9677,7 +9727,55 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9677
9727
  ])];
9678
9728
  case 5:
9679
9729
  _l.sent();
9680
- console.log("Authentication done");
9730
+ return [4 /*yield*/, (0, testing_1.async_test)('Nested error message', function () { return sdk.api.endusers.createOne({ bookingNotes: [{ note: 'optional note' }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Value not provided for required field: bookingNotes.bookingPageId'; } })];
9731
+ case 6:
9732
+ _l.sent();
9733
+ return [4 /*yield*/, (0, testing_1.async_test)('Nested error message', function () { return sdk.api.endusers.createOne({ weight: { unit: undefined, value: 10 } }); }, { shouldError: true, onError: function (e) { return e.message === 'Value not provided for required field: weight.unit'; } })
9734
+ // await async_test(
9735
+ // 'Nested error message?',
9736
+ // () => sdk.api.form_responses.createOne({
9737
+ // enduserId: PLACEHOLDER_ID,
9738
+ // formId: PLACEHOLDER_ID,
9739
+ // formTitle: 'test',
9740
+ // responses: [
9741
+ // {
9742
+ // 'fieldId': '113',
9743
+ // 'fieldTitle': 'Thanks! Could you share a few more details about your insurance plan with us, please?',
9744
+ // answer: {
9745
+ // type: "Table Input",
9746
+ // value: [
9747
+ // []
9748
+ // ]
9749
+ // }
9750
+ // },
9751
+ // ]
9752
+ // }),
9753
+ // passOnAnyResult
9754
+ // )
9755
+ ];
9756
+ case 7:
9757
+ _l.sent();
9758
+ // await async_test(
9759
+ // 'Nested error message?',
9760
+ // () => sdk.api.form_responses.createOne({
9761
+ // enduserId: PLACEHOLDER_ID,
9762
+ // formId: PLACEHOLDER_ID,
9763
+ // formTitle: 'test',
9764
+ // responses: [
9765
+ // {
9766
+ // 'fieldId': '113',
9767
+ // 'fieldTitle': 'Thanks! Could you share a few more details about your insurance plan with us, please?',
9768
+ // answer: {
9769
+ // type: "Table Input",
9770
+ // value: [
9771
+ // []
9772
+ // ]
9773
+ // }
9774
+ // },
9775
+ // ]
9776
+ // }),
9777
+ // passOnAnyResult
9778
+ // )
9681
9779
  return [4 /*yield*/, (0, testing_1.async_test)("Uniqueness violation redacts sensitive existing record details", function () { return sdk.api.users.createOne({ email: email }); }, {
9682
9780
  shouldError: true,
9683
9781
  onError: function (e) {
@@ -9692,167 +9790,191 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9692
9790
  })
9693
9791
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
9694
9792
  ];
9695
- case 6:
9793
+ case 8:
9794
+ // await async_test(
9795
+ // 'Nested error message?',
9796
+ // () => sdk.api.form_responses.createOne({
9797
+ // enduserId: PLACEHOLDER_ID,
9798
+ // formId: PLACEHOLDER_ID,
9799
+ // formTitle: 'test',
9800
+ // responses: [
9801
+ // {
9802
+ // 'fieldId': '113',
9803
+ // 'fieldTitle': 'Thanks! Could you share a few more details about your insurance plan with us, please?',
9804
+ // answer: {
9805
+ // type: "Table Input",
9806
+ // value: [
9807
+ // []
9808
+ // ]
9809
+ // }
9810
+ // },
9811
+ // ]
9812
+ // }),
9813
+ // passOnAnyResult
9814
+ // )
9696
9815
  _l.sent();
9697
9816
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
9698
9817
  return [4 /*yield*/, (0, testing_1.async_test)("email validation error message",
9699
9818
  // @ts-ignore
9700
9819
  function () { return sdk.api.endusers.createOne({ email: 'not-an-email' }); }, { shouldError: true, onError: function (e) { return e.message === 'Error parsing field email: Invalid email: not-an-email'; } })];
9701
- case 7:
9820
+ case 9:
9702
9821
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
9703
9822
  _l.sent();
9704
9823
  return [4 /*yield*/, (0, testing_1.async_test)("count exists",
9705
9824
  // @ts-ignore
9706
9825
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
9707
- case 8:
9826
+ case 10:
9708
9827
  _l.sent();
9709
9828
  return [4 /*yield*/, (0, testing_1.async_test)("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: constants_1.PLACEHOLDER_ID }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === 'Could not find a record for the given id'; } })];
9710
- case 9:
9829
+ case 11:
9711
9830
  _l.sent();
9712
9831
  return [4 /*yield*/, (0, testing_1.async_test)("Support phone numbers from Gambia", function () { return sdk.api.endusers.createOne({ phone: "+2201231234" }); }, { onResult: (function (e) { return !!sdk.api.endusers.deleteOne(e.id); }) })];
9713
- case 10:
9832
+ case 12:
9714
9833
  _l.sent();
9715
9834
  return [4 /*yield*/, mfa_tests()];
9716
- case 11:
9835
+ case 13:
9717
9836
  _l.sent();
9718
9837
  return [4 /*yield*/, setup_tests()];
9719
- case 12:
9838
+ case 14:
9720
9839
  _l.sent();
9721
9840
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
9722
- case 13:
9841
+ case 15:
9723
9842
  _l.sent(); // should come right after setup tests
9724
9843
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
9725
- case 14:
9844
+ case 16:
9726
9845
  _l.sent(); // should come directly after setup to avoid extra sync values
9846
+ return [4 /*yield*/, uniqueness_tests()];
9847
+ case 17:
9848
+ _l.sent();
9727
9849
  return [4 /*yield*/, redaction_tests()];
9728
- case 15:
9850
+ case 18:
9729
9851
  _l.sent();
9730
9852
  return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
9731
- case 16:
9853
+ case 19:
9732
9854
  _l.sent();
9733
9855
  return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
9734
- case 17:
9856
+ case 20:
9735
9857
  _l.sent();
9736
9858
  return [4 /*yield*/, rate_limit_tests()];
9737
- case 18:
9859
+ case 21:
9738
9860
  _l.sent();
9739
9861
  return [4 /*yield*/, mdb_filter_tests()];
9740
- case 19:
9862
+ case 22:
9741
9863
  _l.sent();
9742
9864
  return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
9743
- case 20:
9865
+ case 23:
9744
9866
  _l.sent();
9745
9867
  return [4 /*yield*/, superadmin_tests()];
9746
- case 21:
9868
+ case 24:
9747
9869
  _l.sent();
9748
9870
  return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
9749
- case 22:
9871
+ case 25:
9750
9872
  _l.sent();
9751
9873
  return [4 /*yield*/, merge_enduser_tests()];
9752
- case 23:
9874
+ case 26:
9753
9875
  _l.sent();
9754
9876
  return [4 /*yield*/, vital_trigger_tests()];
9755
- case 24:
9877
+ case 27:
9756
9878
  _l.sent();
9757
9879
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
9758
- case 25:
9880
+ case 28:
9759
9881
  _l.sent();
9760
9882
  return [4 /*yield*/, register_as_enduser_tests()];
9761
- case 26:
9883
+ case 29:
9762
9884
  _l.sent();
9763
9885
  return [4 /*yield*/, lockout_tests()];
9764
- case 27:
9886
+ case 30:
9765
9887
  _l.sent();
9766
9888
  return [4 /*yield*/, delete_user_tests()
9767
9889
  // await test_send_with_template()
9768
9890
  ];
9769
- case 28:
9891
+ case 31:
9770
9892
  _l.sent();
9771
9893
  // await test_send_with_template()
9772
9894
  return [4 /*yield*/, bulk_read_tests()];
9773
- case 29:
9895
+ case 32:
9774
9896
  // await test_send_with_template()
9775
9897
  _l.sent();
9776
9898
  return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
9777
- case 30:
9899
+ case 33:
9778
9900
  _l.sent();
9779
9901
  return [4 /*yield*/, enduser_access_tags_tests()];
9780
- case 31:
9902
+ case 34:
9781
9903
  _l.sent();
9782
9904
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
9783
- case 32:
9905
+ case 35:
9784
9906
  _l.sent();
9785
9907
  return [4 /*yield*/, unique_strings_tests()];
9786
- case 33:
9908
+ case 36:
9787
9909
  _l.sent();
9788
9910
  return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
9789
- case 34:
9911
+ case 37:
9790
9912
  _l.sent();
9791
9913
  return [4 /*yield*/, field_equals_trigger_tests()];
9792
- case 35:
9914
+ case 38:
9793
9915
  _l.sent();
9794
9916
  return [4 /*yield*/, role_based_access_tests()];
9795
- case 36:
9917
+ case 39:
9796
9918
  _l.sent();
9797
9919
  return [4 /*yield*/, automation_trigger_tests()];
9798
- case 37:
9920
+ case 40:
9799
9921
  _l.sent();
9800
9922
  return [4 /*yield*/, enduser_session_tests()];
9801
- case 38:
9923
+ case 41:
9802
9924
  _l.sent();
9803
9925
  return [4 /*yield*/, nextReminderInMS_tests()];
9804
- case 39:
9926
+ case 42:
9805
9927
  _l.sent();
9806
9928
  return [4 /*yield*/, search_tests()];
9807
- case 40:
9929
+ case 43:
9808
9930
  _l.sent();
9809
9931
  return [4 /*yield*/, wait_for_trigger_tests()];
9810
- case 41:
9932
+ case 44:
9811
9933
  _l.sent();
9812
9934
  return [4 /*yield*/, pdf_generation()];
9813
- case 42:
9935
+ case 45:
9814
9936
  _l.sent();
9815
9937
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
9816
- case 43:
9938
+ case 46:
9817
9939
  _l.sent();
9818
9940
  return [4 /*yield*/, auto_reply_tests()];
9819
- case 44:
9941
+ case 47:
9820
9942
  _l.sent();
9821
9943
  return [4 /*yield*/, sub_organization_enduser_tests()];
9822
- case 45:
9944
+ case 48:
9823
9945
  _l.sent();
9824
9946
  return [4 /*yield*/, sub_organization_tests()];
9825
- case 46:
9947
+ case 49:
9826
9948
  _l.sent();
9827
9949
  return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
9828
- case 47:
9950
+ case 50:
9829
9951
  _l.sent();
9830
9952
  return [4 /*yield*/, generate_user_auth_tests()];
9831
- case 48:
9953
+ case 51:
9832
9954
  _l.sent();
9833
9955
  return [4 /*yield*/, generateEnduserAuthTests()];
9834
- case 49:
9956
+ case 52:
9835
9957
  _l.sent();
9836
9958
  return [4 /*yield*/, public_form_tests()];
9837
- case 50:
9959
+ case 53:
9838
9960
  _l.sent();
9839
9961
  return [4 /*yield*/, badInputTests()];
9840
- case 51:
9962
+ case 54:
9841
9963
  _l.sent();
9842
9964
  return [4 /*yield*/, filterTests()];
9843
- case 52:
9965
+ case 55:
9844
9966
  _l.sent();
9845
9967
  return [4 /*yield*/, updatesTests()];
9846
- case 53:
9968
+ case 56:
9847
9969
  _l.sent();
9848
9970
  return [4 /*yield*/, threadKeyTests()];
9849
- case 54:
9971
+ case 57:
9850
9972
  _l.sent();
9851
9973
  return [4 /*yield*/, enduserAccessTests()];
9852
- case 55:
9974
+ case 58:
9853
9975
  _l.sent();
9854
- return [3 /*break*/, 57];
9855
- case 56:
9976
+ return [3 /*break*/, 60];
9977
+ case 59:
9856
9978
  err_1 = _l.sent();
9857
9979
  console.error("Failed during custom test");
9858
9980
  if (err_1.message && err_1.info) {
@@ -9862,18 +9984,18 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9862
9984
  console.error(err_1);
9863
9985
  }
9864
9986
  process.exit(1);
9865
- return [3 /*break*/, 57];
9866
- case 57:
9987
+ return [3 /*break*/, 60];
9988
+ case 60:
9867
9989
  _a = schema_1.schema;
9868
9990
  _b = [];
9869
9991
  for (_c in _a)
9870
9992
  _b.push(_c);
9871
9993
  _i = 0;
9872
- _l.label = 58;
9873
- case 58:
9874
- if (!(_i < _b.length)) return [3 /*break*/, 61];
9994
+ _l.label = 61;
9995
+ case 61:
9996
+ if (!(_i < _b.length)) return [3 /*break*/, 64];
9875
9997
  _c = _b[_i];
9876
- if (!(_c in _a)) return [3 /*break*/, 60];
9998
+ if (!(_c in _a)) return [3 /*break*/, 63];
9877
9999
  n = _c;
9878
10000
  returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
9879
10001
  return [4 /*yield*/, run_generated_tests({
@@ -9884,41 +10006,41 @@ var mdb_filter_tests = function () { return __awaiter(void 0, void 0, void 0, fu
9884
10006
  create: returnValidation // ModelFields<ClientModel>,
9885
10007
  }
9886
10008
  })];
9887
- case 59:
10009
+ case 62:
9888
10010
  _l.sent();
9889
- _l.label = 60;
9890
- case 60:
10011
+ _l.label = 63;
10012
+ case 63:
9891
10013
  _i++;
9892
- return [3 /*break*/, 58];
9893
- case 61:
10014
+ return [3 /*break*/, 61];
10015
+ case 64:
9894
10016
  _d = tests;
9895
10017
  _f = [];
9896
10018
  for (_g in _d)
9897
10019
  _f.push(_g);
9898
10020
  _h = 0;
9899
- _l.label = 62;
9900
- case 62:
9901
- if (!(_h < _f.length)) return [3 /*break*/, 67];
10021
+ _l.label = 65;
10022
+ case 65:
10023
+ if (!(_h < _f.length)) return [3 /*break*/, 70];
9902
10024
  _g = _f[_h];
9903
- if (!(_g in _d)) return [3 /*break*/, 66];
10025
+ if (!(_g in _d)) return [3 /*break*/, 69];
9904
10026
  t = _g;
9905
- _l.label = 63;
9906
- case 63:
9907
- _l.trys.push([63, 65, , 66]);
10027
+ _l.label = 66;
10028
+ case 66:
10029
+ _l.trys.push([66, 68, , 69]);
9908
10030
  return [4 /*yield*/, tests[t]()];
9909
- case 64:
10031
+ case 67:
9910
10032
  _l.sent();
9911
- return [3 /*break*/, 66];
9912
- case 65:
10033
+ return [3 /*break*/, 69];
10034
+ case 68:
9913
10035
  err_2 = _l.sent();
9914
10036
  console.error("Error running test:");
9915
10037
  console.error(err_2);
9916
10038
  process.exit(1);
9917
- return [3 /*break*/, 66];
9918
- case 66:
10039
+ return [3 /*break*/, 69];
10040
+ case 69:
9919
10041
  _h++;
9920
- return [3 /*break*/, 62];
9921
- case 67:
10042
+ return [3 /*break*/, 65];
10043
+ case 70:
9922
10044
  process.exit();
9923
10045
  return [2 /*return*/];
9924
10046
  }