@tellescope/sdk 1.74.3 → 1.76.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.
@@ -4918,7 +4918,7 @@ var filter_by_date_tests = function () { return __awaiter(void 0, void 0, void 0
4918
4918
  }); };
4919
4919
  exports.filter_by_date_tests = filter_by_date_tests;
4920
4920
  var self_serve_appointment_booking_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4921
- var e1, e2, event15min, event30min, dayOfWeekStartingSundayIndexedByZero, nySlots, bookedAppointment, conflict, multiSlots, bookedMultiAppointment;
4921
+ var e1, e2, e3, event15min, event30min, event30minGroup, dayOfWeekStartingSundayIndexedByZero, enduserSDK2, enduserSDK3, nySlots, bookedAppointment, conflict, groupEvent, multiSlots, bookedMultiAppointment;
4922
4922
  return __generator(this, function (_a) {
4923
4923
  switch (_a.label) {
4924
4924
  case 0:
@@ -4929,28 +4929,42 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
4929
4929
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'sebass+ca@tellescope.com', state: 'CA' })];
4930
4930
  case 2:
4931
4931
  e2 = _a.sent();
4932
- return [4 /*yield*/, sdk.api.endusers.set_password({ id: e1.id, password: password })];
4932
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'sebass+3@tellescope.com' })];
4933
4933
  case 3:
4934
+ e3 = _a.sent();
4935
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: e1.id, password: password })];
4936
+ case 4:
4934
4937
  _a.sent();
4935
4938
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: e2.id, password: password })];
4936
- case 4:
4939
+ case 5:
4940
+ _a.sent();
4941
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: e3.id, password: password })];
4942
+ case 6:
4937
4943
  _a.sent();
4938
4944
  return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
4939
4945
  title: 'test 2', durationInMinutes: 15,
4940
4946
  confirmationEmailDisabled: true,
4941
4947
  confirmationSMSDisabled: true,
4942
4948
  })];
4943
- case 5:
4949
+ case 7:
4944
4950
  event15min = _a.sent();
4945
4951
  return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
4946
4952
  title: 'test 1', durationInMinutes: 30,
4947
4953
  confirmationEmailDisabled: true,
4948
4954
  confirmationSMSDisabled: true,
4955
+ })];
4956
+ case 8:
4957
+ event30min = _a.sent();
4958
+ return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
4959
+ title: 'test group', durationInMinutes: 30,
4960
+ confirmationEmailDisabled: true,
4961
+ confirmationSMSDisabled: true,
4962
+ enduserAttendeeLimit: 2,
4949
4963
  })
4950
4964
  // ensure it doesn't match current day, to avoid errors on testing
4951
4965
  ];
4952
- case 6:
4953
- event30min = _a.sent();
4966
+ case 9:
4967
+ event30minGroup = _a.sent();
4954
4968
  dayOfWeekStartingSundayIndexedByZero = (new Date().getDay() + 1) % 7;
4955
4969
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
4956
4970
  weeklyAvailabilities: [
@@ -4970,7 +4984,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
4970
4984
  }, {
4971
4985
  replaceObjectFields: true,
4972
4986
  })];
4973
- case 7:
4987
+ case 10:
4974
4988
  _a.sent();
4975
4989
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
4976
4990
  weeklyAvailabilities: [
@@ -4984,14 +4998,22 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
4984
4998
  timezone: 'America/Los_Angeles',
4985
4999
  }, {
4986
5000
  replaceObjectFields: true,
4987
- })
5001
+ })];
5002
+ case 11:
5003
+ _a.sent();
5004
+ enduserSDK2 = new sdk_1.EnduserSession({ host: host, businessId: businessId });
5005
+ return [4 /*yield*/, enduserSDK2.authenticate('sebass+ca@tellescope.com', password).catch(console.error)];
5006
+ case 12:
5007
+ _a.sent();
5008
+ enduserSDK3 = new sdk_1.EnduserSession({ host: host, businessId: businessId });
5009
+ return [4 /*yield*/, enduserSDK3.authenticate('sebass+3@tellescope.com', password).catch(console.error)
4988
5010
  // NY Enduser Tests
4989
5011
  ];
4990
- case 8:
5012
+ case 13:
4991
5013
  _a.sent();
4992
5014
  // NY Enduser Tests
4993
5015
  return [4 /*yield*/, enduserSDK.authenticate('sebass+ny@tellescope.com', password).catch(console.error)];
4994
- case 9:
5016
+ case 14:
4995
5017
  // NY Enduser Tests
4996
5018
  _a.sent();
4997
5019
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for state restriction', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
@@ -5000,7 +5022,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5000
5022
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5001
5023
  restrictedByState: true,
5002
5024
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
5003
- case 10:
5025
+ case 15:
5004
5026
  _a.sent();
5005
5027
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for state restriction with 15 min interval', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5006
5028
  calendarEventTemplateId: event30min.id,
@@ -5009,7 +5031,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5009
5031
  restrictedByState: true,
5010
5032
  intervalInMinutes: 15,
5011
5033
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
5012
- case 11:
5034
+ case 16:
5013
5035
  _a.sent();
5014
5036
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for state restriction with 10 min interval', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5015
5037
  calendarEventTemplateId: event30min.id,
@@ -5018,7 +5040,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5018
5040
  restrictedByState: true,
5019
5041
  intervalInMinutes: 10,
5020
5042
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 4; } })];
5021
- case 12:
5043
+ case 17:
5022
5044
  _a.sent();
5023
5045
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for no state restrictions', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5024
5046
  calendarEventTemplateId: event30min.id,
@@ -5037,7 +5059,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5037
5059
  }
5038
5060
  return true;
5039
5061
  } })];
5040
- case 13:
5062
+ case 18:
5041
5063
  _a.sent();
5042
5064
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
5043
5065
  calendarEventTemplateId: event30min.id,
@@ -5045,7 +5067,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5045
5067
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5046
5068
  restrictedByState: true,
5047
5069
  })];
5048
- case 14:
5070
+ case 19:
5049
5071
  nySlots = _a.sent();
5050
5072
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
5051
5073
  calendarEventTemplateId: event30min.id,
@@ -5056,7 +5078,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5056
5078
  fields: "Test",
5057
5079
  }
5058
5080
  })];
5059
- case 15:
5081
+ case 20:
5060
5082
  bookedAppointment = (_a.sent()).createdEvent;
5061
5083
  (0, testing_1.assert)(bookedAppointment.attendees.length === 2, 'did not get 2 attendees', '2 attendees fo non-multi-event');
5062
5084
  return [4 /*yield*/, (0, testing_1.async_test)('double-booking prevented', function () { return enduserSDK.api.calendar_events.book_appointment({
@@ -5064,7 +5086,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5064
5086
  startTime: new Date(nySlots.availabilityBlocks[0].startTimeInMS),
5065
5087
  userId: nySlots.availabilityBlocks[0].userId,
5066
5088
  }); }, handleAnyError)];
5067
- case 16:
5089
+ case 21:
5068
5090
  _a.sent();
5069
5091
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for state restriction with 1 overlapping conflict', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5070
5092
  calendarEventTemplateId: event30min.id,
@@ -5076,14 +5098,14 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5076
5098
  && r.availabilityBlocks[0].startTimeInMS === nySlots.availabilityBlocks[1].startTimeInMS;
5077
5099
  } // the first slot of nySlots is booked
5078
5100
  })];
5079
- case 17:
5101
+ case 22:
5080
5102
  _a.sent();
5081
5103
  return [4 /*yield*/, sdk.api.calendar_events.createOne({
5082
5104
  title: 'conflict',
5083
5105
  startTimeInMS: nySlots.availabilityBlocks[1].startTimeInMS,
5084
5106
  durationInMinutes: nySlots.availabilityBlocks[1].durationInMinutes,
5085
5107
  })];
5086
- case 18:
5108
+ case 23:
5087
5109
  conflict = _a.sent();
5088
5110
  return [4 /*yield*/, (0, testing_1.async_test)('30 minute slots for state restriction with 2 overlapping conflict', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5089
5111
  calendarEventTemplateId: event30min.id,
@@ -5091,16 +5113,82 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5091
5113
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5092
5114
  restrictedByState: true,
5093
5115
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 0; } })];
5094
- case 19:
5116
+ case 24:
5095
5117
  _a.sent();
5096
5118
  return [4 /*yield*/, (0, testing_1.async_test)('booking against conflict prevented', function () { return enduserSDK.api.calendar_events.book_appointment({
5097
5119
  calendarEventTemplateId: event30min.id,
5098
5120
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
5099
5121
  userId: nySlots.availabilityBlocks[1].userId,
5100
5122
  }); }, handleAnyError)
5123
+ // test group bookings
5124
+ ];
5125
+ case 25:
5126
+ _a.sent();
5127
+ // test group bookings
5128
+ return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict.id, { enduserAttendeeLimit: 2 })];
5129
+ case 26:
5130
+ // test group bookings
5131
+ _a.sent();
5132
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] different event type conflict as group still blocks availability', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5133
+ calendarEventTemplateId: event30minGroup.id,
5134
+ from: new Date(Date.now() - 10000),
5135
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5136
+ }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
5137
+ case 27:
5138
+ _a.sent();
5139
+ return [4 /*yield*/, sdk.api.calendar_events.deleteOne(conflict.id)];
5140
+ case 28:
5141
+ _a.sent();
5142
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] availability', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5143
+ calendarEventTemplateId: event30minGroup.id,
5144
+ from: new Date(Date.now() - 10000),
5145
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5146
+ }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
5147
+ case 29:
5148
+ _a.sent();
5149
+ return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
5150
+ calendarEventTemplateId: event30minGroup.id,
5151
+ startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
5152
+ userId: nySlots.availabilityBlocks[1].userId,
5153
+ })];
5154
+ case 30:
5155
+ groupEvent = (_a.sent()).createdEvent;
5156
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] more booking allowed', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5157
+ calendarEventTemplateId: event30minGroup.id,
5158
+ from: new Date(Date.now() - 10000),
5159
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5160
+ }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
5161
+ case 31:
5162
+ _a.sent();
5163
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] prevent double-book same-enduser', function () { return enduserSDK.api.calendar_events.book_appointment({
5164
+ calendarEventTemplateId: event30minGroup.id,
5165
+ startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
5166
+ userId: nySlots.availabilityBlocks[1].userId,
5167
+ }); }, handleAnyError)];
5168
+ case 32:
5169
+ _a.sent();
5170
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] allow other enduser to book', function () { return enduserSDK2.api.calendar_events.book_appointment({
5171
+ calendarEventTemplateId: event30minGroup.id,
5172
+ startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
5173
+ userId: nySlots.availabilityBlocks[1].userId,
5174
+ }); }, passOnAnyResult)];
5175
+ case 33:
5176
+ _a.sent();
5177
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] no more booking allowed', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
5178
+ calendarEventTemplateId: event30minGroup.id,
5179
+ from: new Date(Date.now() - 10000),
5180
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
5181
+ }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
5182
+ case 34:
5183
+ _a.sent();
5184
+ return [4 /*yield*/, (0, testing_1.async_test)('[group booking] other enduser cant book over capacity', function () { return enduserSDK3.api.calendar_events.book_appointment({
5185
+ calendarEventTemplateId: event30minGroup.id,
5186
+ startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
5187
+ userId: nySlots.availabilityBlocks[1].userId,
5188
+ }); }, handleAnyError)
5101
5189
  // test 'multi' flag for booking multiple providers for a given patient
5102
5190
  ];
5103
- case 20:
5191
+ case 35:
5104
5192
  _a.sent();
5105
5193
  // test 'multi' flag for booking multiple providers for a given patient
5106
5194
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
@@ -5115,7 +5203,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5115
5203
  }, {
5116
5204
  replaceObjectFields: true,
5117
5205
  })];
5118
- case 21:
5206
+ case 36:
5119
5207
  // test 'multi' flag for booking multiple providers for a given patient
5120
5208
  _a.sent();
5121
5209
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
@@ -5130,7 +5218,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5130
5218
  }, {
5131
5219
  replaceObjectFields: true,
5132
5220
  })];
5133
- case 22:
5221
+ case 37:
5134
5222
  _a.sent();
5135
5223
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
5136
5224
  calendarEventTemplateId: event30min.id,
@@ -5139,7 +5227,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5139
5227
  multi: true,
5140
5228
  userIds: [sdk.userInfo.id, sdkNonAdmin.userInfo.id]
5141
5229
  })];
5142
- case 23:
5230
+ case 38:
5143
5231
  multiSlots = _a.sent();
5144
5232
  (0, testing_1.assert)(multiSlots.availabilityBlocks.length === 2, 'expected 2 slots', 'multi slots are intersection of availability');
5145
5233
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
@@ -5148,7 +5236,7 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5148
5236
  userId: sdk.userInfo.id,
5149
5237
  otherUserIds: [sdkNonAdmin.userInfo.id]
5150
5238
  })];
5151
- case 24:
5239
+ case 39:
5152
5240
  bookedMultiAppointment = (_a.sent()).createdEvent;
5153
5241
  (0, testing_1.assert)((bookedMultiAppointment.attendees.length === 3
5154
5242
  && bookedMultiAppointment.attendees.filter(function (a) { return a.type === 'enduser'; }).length === 1), 'did not get valid attendees', 'Multi attendees fo multi-event');
@@ -5157,14 +5245,14 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5157
5245
  startTime: new Date(multiSlots.availabilityBlocks[0].startTimeInMS),
5158
5246
  userId: sdk.userInfo.id,
5159
5247
  }); }, handleAnyError)];
5160
- case 25:
5248
+ case 40:
5161
5249
  _a.sent();
5162
5250
  return [4 /*yield*/, (0, testing_1.async_test)('booking against conflict prevented other user', function () { return enduserSDK.api.calendar_events.book_appointment({
5163
5251
  calendarEventTemplateId: event30min.id,
5164
5252
  startTime: new Date(multiSlots.availabilityBlocks[0].startTimeInMS),
5165
5253
  userId: sdkNonAdmin.userInfo.id,
5166
5254
  }); }, handleAnyError)];
5167
- case 26:
5255
+ case 41:
5168
5256
  _a.sent();
5169
5257
  return [4 /*yield*/, (0, testing_1.async_test)('booking against conflict prevented 2 users', function () { return enduserSDK.api.calendar_events.book_appointment({
5170
5258
  calendarEventTemplateId: event30min.id,
@@ -5172,18 +5260,20 @@ var self_serve_appointment_booking_tests = function () { return __awaiter(void 0
5172
5260
  userId: sdk.userInfo.id,
5173
5261
  otherUserIds: [sdkNonAdmin.userInfo.id],
5174
5262
  }); }, handleAnyError)];
5175
- case 27:
5263
+ case 42:
5176
5264
  _a.sent();
5177
5265
  return [4 /*yield*/, Promise.all([
5178
5266
  sdk.api.endusers.deleteOne(e1.id),
5179
5267
  sdk.api.endusers.deleteOne(e2.id),
5268
+ sdk.api.endusers.deleteOne(e3.id),
5180
5269
  sdk.api.calendar_event_templates.deleteOne(event30min.id),
5270
+ sdk.api.calendar_event_templates.deleteOne(event30minGroup.id),
5181
5271
  sdk.api.calendar_event_templates.deleteOne(event15min.id),
5182
5272
  sdk.api.calendar_events.deleteOne(bookedAppointment.id),
5183
- sdk.api.calendar_events.deleteOne(conflict.id),
5184
5273
  sdk.api.calendar_events.deleteOne(bookedMultiAppointment.id),
5274
+ sdk.api.calendar_events.deleteOne(groupEvent.id),
5185
5275
  ])];
5186
- case 28:
5276
+ case 43:
5187
5277
  _a.sent();
5188
5278
  return [2 /*return*/];
5189
5279
  }
@@ -6854,6 +6944,7 @@ var alternate_phones_tests = function () { return __awaiter(void 0, void 0, void
6854
6944
  exports.alternate_phones_tests = alternate_phones_tests;
6855
6945
  var NO_TEST = function () { };
6856
6946
  var tests = {
6947
+ enduser_encounters: NO_TEST,
6857
6948
  enduser_orders: NO_TEST,
6858
6949
  ticket_queues: NO_TEST,
6859
6950
  phone_trees: NO_TEST,
@@ -7675,6 +7766,156 @@ var test_send_with_template = function () { return __awaiter(void 0, void 0, voi
7675
7766
  }
7676
7767
  });
7677
7768
  }); };
7769
+ var delete_user_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7770
+ var existing, u, authToken, createdUserSDK, enduser, enduserAuthToken, enduserSDK;
7771
+ var _a;
7772
+ return __generator(this, function (_b) {
7773
+ switch (_b.label) {
7774
+ case 0:
7775
+ (0, testing_1.log_header)("Delete user tests");
7776
+ return [4 /*yield*/, sdk.api.users.getSome({ filter: { email: 'deleteme@tellescope.com' } })];
7777
+ case 1:
7778
+ existing = _b.sent();
7779
+ if (!(((_a = existing[0]) === null || _a === void 0 ? void 0 : _a.email) === 'deleteme@tellescope.com')) return [3 /*break*/, 3];
7780
+ return [4 /*yield*/, sdk.api.users.deleteOne(existing[0].id)];
7781
+ case 2:
7782
+ _b.sent();
7783
+ _b.label = 3;
7784
+ case 3: return [4 /*yield*/, sdk.api.users.createOne({ email: 'deleteme@tellescope.com', verifiedEmail: true })];
7785
+ case 4:
7786
+ u = _b.sent();
7787
+ return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: u.id })];
7788
+ case 5:
7789
+ authToken = (_b.sent()).authToken;
7790
+ createdUserSDK = new sdk_1.Session({ host: host, authToken: authToken });
7791
+ return [4 /*yield*/, (0, testing_1.async_test)("Authenticated", createdUserSDK.test_authenticated, passOnAnyResult)];
7792
+ case 6:
7793
+ _b.sent();
7794
+ return [4 /*yield*/, sdk.api.users.deleteOne(u.id)];
7795
+ case 7:
7796
+ _b.sent();
7797
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
7798
+ case 8:
7799
+ _b.sent();
7800
+ return [4 /*yield*/, (0, testing_1.async_test)("De-authenticated after deletion", createdUserSDK.test_authenticated, handleAnyError)];
7801
+ case 9:
7802
+ _b.sent();
7803
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
7804
+ case 10:
7805
+ enduser = _b.sent();
7806
+ return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: enduser.id })];
7807
+ case 11:
7808
+ enduserAuthToken = (_b.sent()).authToken;
7809
+ enduserSDK = new sdk_1.EnduserSession({ host: host, businessId: businessId, authToken: enduserAuthToken });
7810
+ return [4 /*yield*/, (0, testing_1.async_test)("Enduser Authenticated", function () { return enduserSDK.api.endusers.getSome(); }, passOnAnyResult)];
7811
+ case 12:
7812
+ _b.sent();
7813
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
7814
+ case 13:
7815
+ _b.sent();
7816
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
7817
+ case 14:
7818
+ _b.sent();
7819
+ return [4 /*yield*/, (0, testing_1.async_test)("Enduser De-authenticated after deletion", function () { return enduserSDK.api.endusers.getSome(); }, handleAnyError)];
7820
+ case 15:
7821
+ _b.sent();
7822
+ return [2 /*return*/];
7823
+ }
7824
+ });
7825
+ }); };
7826
+ var sdkMfaApiKeyUserId = '6525a43e1e75f0350d62afc4';
7827
+ var lockout_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7828
+ var nonAdminId;
7829
+ return __generator(this, function (_a) {
7830
+ switch (_a.label) {
7831
+ case 0:
7832
+ (0, testing_1.log_header)("Lockout tests");
7833
+ return [4 /*yield*/, (0, testing_1.async_test)("API Key is authenticated", sdkMfaApiKey.test_authenticated, passOnAnyResult)];
7834
+ case 1:
7835
+ _a.sent();
7836
+ return [4 /*yield*/, (0, testing_1.async_test)("API Key lock to future date", function () { return sdk.api.users.updateOne(sdkMfaApiKeyUserId, { lockedOutUntil: 0 }); }, passOnAnyResult)];
7837
+ case 2:
7838
+ _a.sent();
7839
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
7840
+ case 3:
7841
+ _a.sent();
7842
+ return [4 /*yield*/, (0, testing_1.async_test)("API Key is de-authenticated when locked", sdkMfaApiKey.test_authenticated, handleAnyError)];
7843
+ case 4:
7844
+ _a.sent();
7845
+ return [4 /*yield*/, (0, testing_1.async_test)("API Key unlock to -1", function () { return sdk.api.users.updateOne(sdkMfaApiKeyUserId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
7846
+ case 5:
7847
+ _a.sent();
7848
+ return [4 /*yield*/, (0, testing_1.async_test)("API Key is authenticated", sdkMfaApiKey.test_authenticated, passOnAnyResult)];
7849
+ case 6:
7850
+ _a.sent();
7851
+ nonAdminId = sdkNonAdmin.userInfo.id;
7852
+ return [4 /*yield*/, (0, testing_1.async_test)("users cannot update own lock status", function () { return sdk.api.users.updateOne(sdk.userInfo.id, { lockedOutUntil: -1 }); }, handleAnyError)];
7853
+ case 7:
7854
+ _a.sent();
7855
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin can't lock out others", function () { return sdkNonAdmin.api.users.updateOne(sdk.userInfo.id, { lockedOutUntil: Date.now() }); }, handleAnyError)];
7856
+ case 8:
7857
+ _a.sent();
7858
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is authenticated", sdkNonAdmin.test_authenticated, passOnAnyResult)];
7859
+ case 9:
7860
+ _a.sent();
7861
+ return [4 /*yield*/, (0, testing_1.async_test)("admin unlock to -1", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
7862
+ case 10:
7863
+ _a.sent();
7864
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is authenticated (-1)", sdkNonAdmin.test_authenticated, passOnAnyResult)];
7865
+ case 11:
7866
+ _a.sent();
7867
+ return [4 /*yield*/, (0, testing_1.async_test)("admin lock to past date", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: Date.now() - 1000 }); }, passOnAnyResult)];
7868
+ case 12:
7869
+ _a.sent();
7870
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is authenticated (past date)", sdkNonAdmin.test_authenticated, passOnAnyResult)];
7871
+ case 13:
7872
+ _a.sent();
7873
+ return [4 /*yield*/, (0, testing_1.async_test)("admin lock to 0 (indefinite)", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: 0 }); }, passOnAnyResult)];
7874
+ case 14:
7875
+ _a.sent();
7876
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
7877
+ case 15:
7878
+ _a.sent();
7879
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is de-authenticated when locked to 0", sdkNonAdmin.test_authenticated, handleAnyError)];
7880
+ case 16:
7881
+ _a.sent();
7882
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin can't authenciate when locked to 0", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, handleAnyError)];
7883
+ case 17:
7884
+ _a.sent();
7885
+ return [4 /*yield*/, (0, testing_1.async_test)("admin unlock to -1", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
7886
+ case 18:
7887
+ _a.sent();
7888
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin can re authenciate when locked to 0", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, passOnAnyResult)];
7889
+ case 19:
7890
+ _a.sent();
7891
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is authenticated", sdkNonAdmin.test_authenticated, passOnAnyResult)];
7892
+ case 20:
7893
+ _a.sent();
7894
+ return [4 /*yield*/, (0, testing_1.async_test)("admin lock to future date", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: Date.now() + 10000 }); }, passOnAnyResult)];
7895
+ case 21:
7896
+ _a.sent();
7897
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
7898
+ case 22:
7899
+ _a.sent();
7900
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is de-authenticated when locked to future date", sdkNonAdmin.test_authenticated, handleAnyError)];
7901
+ case 23:
7902
+ _a.sent();
7903
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin can't authenciate when locked to future date", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, handleAnyError)];
7904
+ case 24:
7905
+ _a.sent();
7906
+ return [4 /*yield*/, (0, testing_1.async_test)("admin unlock to -1", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
7907
+ case 25:
7908
+ _a.sent();
7909
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin can re authenciate when locked to future date", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, passOnAnyResult)];
7910
+ case 26:
7911
+ _a.sent();
7912
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin is authenticated", sdkNonAdmin.test_authenticated, passOnAnyResult)];
7913
+ case 27:
7914
+ _a.sent();
7915
+ return [2 /*return*/];
7916
+ }
7917
+ });
7918
+ }); };
7678
7919
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7679
7920
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
7680
7921
  var _j, _k;
@@ -7687,7 +7928,7 @@ var test_send_with_template = function () { return __awaiter(void 0, void 0, voi
7687
7928
  _l.sent();
7688
7929
  _l.label = 2;
7689
7930
  case 2:
7690
- _l.trys.push([2, 45, , 46]);
7931
+ _l.trys.push([2, 47, , 48]);
7691
7932
  (0, exports.form_conditional_logic_tests)();
7692
7933
  return [4 /*yield*/, test_weighted_round_robin()];
7693
7934
  case 3:
@@ -7722,117 +7963,123 @@ var test_send_with_template = function () { return __awaiter(void 0, void 0, voi
7722
7963
  return [4 /*yield*/, setup_tests()];
7723
7964
  case 9:
7724
7965
  _l.sent();
7725
- return [4 /*yield*/, multi_tenant_tests()
7726
- // await test_send_with_template()
7727
- ]; // should come right after setup tests
7966
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7728
7967
  case 10:
7729
7968
  _l.sent(); // should come right after setup tests
7730
- // await test_send_with_template()
7731
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7969
+ return [4 /*yield*/, lockout_tests()];
7732
7970
  case 11:
7733
- // await test_send_with_template()
7734
7971
  _l.sent();
7735
- return [4 /*yield*/, bulk_read_tests()];
7972
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7736
7973
  case 12:
7737
7974
  _l.sent();
7738
- return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
7975
+ return [4 /*yield*/, delete_user_tests()
7976
+ // await test_send_with_template()
7977
+ ];
7739
7978
  case 13:
7740
7979
  _l.sent();
7741
- return [4 /*yield*/, enduser_access_tags_tests()];
7980
+ // await test_send_with_template()
7981
+ return [4 /*yield*/, bulk_read_tests()];
7742
7982
  case 14:
7983
+ // await test_send_with_template()
7743
7984
  _l.sent();
7744
- return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7985
+ return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
7745
7986
  case 15:
7746
7987
  _l.sent();
7747
- return [4 /*yield*/, unique_strings_tests()];
7988
+ return [4 /*yield*/, enduser_access_tags_tests()];
7748
7989
  case 16:
7749
7990
  _l.sent();
7750
- return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7991
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7751
7992
  case 17:
7752
7993
  _l.sent();
7753
- return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7994
+ return [4 /*yield*/, unique_strings_tests()];
7754
7995
  case 18:
7755
7996
  _l.sent();
7756
- return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7997
+ return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7757
7998
  case 19:
7758
7999
  _l.sent();
7759
- return [4 /*yield*/, field_equals_trigger_tests()];
8000
+ return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7760
8001
  case 20:
7761
8002
  _l.sent();
7762
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
8003
+ return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7763
8004
  case 21:
7764
8005
  _l.sent();
7765
- return [4 /*yield*/, role_based_access_tests()];
8006
+ return [4 /*yield*/, field_equals_trigger_tests()];
7766
8007
  case 22:
7767
8008
  _l.sent();
7768
- return [4 /*yield*/, automation_trigger_tests()];
8009
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7769
8010
  case 23:
7770
8011
  _l.sent();
7771
- return [4 /*yield*/, enduser_session_tests()];
8012
+ return [4 /*yield*/, role_based_access_tests()];
7772
8013
  case 24:
7773
8014
  _l.sent();
7774
- return [4 /*yield*/, nextReminderInMS_tests()];
8015
+ return [4 /*yield*/, automation_trigger_tests()];
7775
8016
  case 25:
7776
8017
  _l.sent();
7777
- return [4 /*yield*/, search_tests()];
8018
+ return [4 /*yield*/, enduser_session_tests()];
7778
8019
  case 26:
7779
8020
  _l.sent();
7780
- return [4 /*yield*/, wait_for_trigger_tests()];
8021
+ return [4 /*yield*/, nextReminderInMS_tests()];
7781
8022
  case 27:
7782
8023
  _l.sent();
7783
- return [4 /*yield*/, pdf_generation()];
8024
+ return [4 /*yield*/, search_tests()];
7784
8025
  case 28:
7785
8026
  _l.sent();
7786
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
8027
+ return [4 /*yield*/, wait_for_trigger_tests()];
7787
8028
  case 29:
7788
8029
  _l.sent();
7789
- return [4 /*yield*/, rate_limit_tests()];
8030
+ return [4 /*yield*/, pdf_generation()];
7790
8031
  case 30:
7791
8032
  _l.sent();
7792
- return [4 /*yield*/, merge_enduser_tests()];
8033
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7793
8034
  case 31:
7794
8035
  _l.sent();
7795
- return [4 /*yield*/, auto_reply_tests()];
8036
+ return [4 /*yield*/, rate_limit_tests()];
7796
8037
  case 32:
7797
8038
  _l.sent();
7798
- return [4 /*yield*/, sub_organization_enduser_tests()];
8039
+ return [4 /*yield*/, merge_enduser_tests()];
7799
8040
  case 33:
7800
8041
  _l.sent();
7801
- return [4 /*yield*/, sub_organization_tests()];
8042
+ return [4 /*yield*/, auto_reply_tests()];
7802
8043
  case 34:
7803
8044
  _l.sent();
7804
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
8045
+ return [4 /*yield*/, sub_organization_enduser_tests()];
7805
8046
  case 35:
7806
8047
  _l.sent();
7807
- return [4 /*yield*/, generate_user_auth_tests()];
8048
+ return [4 /*yield*/, sub_organization_tests()];
7808
8049
  case 36:
7809
8050
  _l.sent();
7810
- return [4 /*yield*/, generateEnduserAuthTests()];
8051
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
7811
8052
  case 37:
7812
8053
  _l.sent();
7813
- return [4 /*yield*/, public_form_tests()];
8054
+ return [4 /*yield*/, generate_user_auth_tests()];
7814
8055
  case 38:
7815
8056
  _l.sent();
7816
- return [4 /*yield*/, badInputTests()];
8057
+ return [4 /*yield*/, generateEnduserAuthTests()];
7817
8058
  case 39:
7818
8059
  _l.sent();
7819
- return [4 /*yield*/, filterTests()];
8060
+ return [4 /*yield*/, public_form_tests()];
7820
8061
  case 40:
7821
8062
  _l.sent();
7822
- return [4 /*yield*/, updatesTests()];
8063
+ return [4 /*yield*/, badInputTests()];
7823
8064
  case 41:
7824
8065
  _l.sent();
7825
- return [4 /*yield*/, threadKeyTests()];
8066
+ return [4 /*yield*/, filterTests()];
7826
8067
  case 42:
7827
8068
  _l.sent();
7828
- return [4 /*yield*/, enduserAccessTests()];
8069
+ return [4 /*yield*/, updatesTests()];
7829
8070
  case 43:
7830
8071
  _l.sent();
7831
- return [4 /*yield*/, enduser_redaction_tests()];
8072
+ return [4 /*yield*/, threadKeyTests()];
7832
8073
  case 44:
7833
8074
  _l.sent();
7834
- return [3 /*break*/, 46];
8075
+ return [4 /*yield*/, enduserAccessTests()];
7835
8076
  case 45:
8077
+ _l.sent();
8078
+ return [4 /*yield*/, enduser_redaction_tests()];
8079
+ case 46:
8080
+ _l.sent();
8081
+ return [3 /*break*/, 48];
8082
+ case 47:
7836
8083
  err_1 = _l.sent();
7837
8084
  console.error("Failed during custom test");
7838
8085
  if (err_1.message && err_1.info) {
@@ -7842,18 +8089,18 @@ var test_send_with_template = function () { return __awaiter(void 0, void 0, voi
7842
8089
  console.error(err_1);
7843
8090
  }
7844
8091
  process.exit(1);
7845
- return [3 /*break*/, 46];
7846
- case 46:
8092
+ return [3 /*break*/, 48];
8093
+ case 48:
7847
8094
  _a = schema_1.schema;
7848
8095
  _b = [];
7849
8096
  for (_c in _a)
7850
8097
  _b.push(_c);
7851
8098
  _i = 0;
7852
- _l.label = 47;
7853
- case 47:
7854
- if (!(_i < _b.length)) return [3 /*break*/, 50];
8099
+ _l.label = 49;
8100
+ case 49:
8101
+ if (!(_i < _b.length)) return [3 /*break*/, 52];
7855
8102
  _c = _b[_i];
7856
- if (!(_c in _a)) return [3 /*break*/, 49];
8103
+ if (!(_c in _a)) return [3 /*break*/, 51];
7857
8104
  n = _c;
7858
8105
  returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
7859
8106
  return [4 /*yield*/, run_generated_tests({
@@ -7864,41 +8111,41 @@ var test_send_with_template = function () { return __awaiter(void 0, void 0, voi
7864
8111
  create: returnValidation // ModelFields<ClientModel>,
7865
8112
  }
7866
8113
  })];
7867
- case 48:
8114
+ case 50:
7868
8115
  _l.sent();
7869
- _l.label = 49;
7870
- case 49:
8116
+ _l.label = 51;
8117
+ case 51:
7871
8118
  _i++;
7872
- return [3 /*break*/, 47];
7873
- case 50:
8119
+ return [3 /*break*/, 49];
8120
+ case 52:
7874
8121
  _d = tests;
7875
8122
  _f = [];
7876
8123
  for (_g in _d)
7877
8124
  _f.push(_g);
7878
8125
  _h = 0;
7879
- _l.label = 51;
7880
- case 51:
7881
- if (!(_h < _f.length)) return [3 /*break*/, 56];
8126
+ _l.label = 53;
8127
+ case 53:
8128
+ if (!(_h < _f.length)) return [3 /*break*/, 58];
7882
8129
  _g = _f[_h];
7883
- if (!(_g in _d)) return [3 /*break*/, 55];
8130
+ if (!(_g in _d)) return [3 /*break*/, 57];
7884
8131
  t = _g;
7885
- _l.label = 52;
7886
- case 52:
7887
- _l.trys.push([52, 54, , 55]);
8132
+ _l.label = 54;
8133
+ case 54:
8134
+ _l.trys.push([54, 56, , 57]);
7888
8135
  return [4 /*yield*/, tests[t]()];
7889
- case 53:
8136
+ case 55:
7890
8137
  _l.sent();
7891
- return [3 /*break*/, 55];
7892
- case 54:
8138
+ return [3 /*break*/, 57];
8139
+ case 56:
7893
8140
  err_2 = _l.sent();
7894
8141
  console.error("Error running test:");
7895
8142
  console.error(err_2);
7896
8143
  process.exit(1);
7897
- return [3 /*break*/, 55];
7898
- case 55:
8144
+ return [3 /*break*/, 57];
8145
+ case 57:
7899
8146
  _h++;
7900
- return [3 /*break*/, 51];
7901
- case 56:
8147
+ return [3 /*break*/, 53];
8148
+ case 58:
7902
8149
  process.exit();
7903
8150
  return [2 /*return*/];
7904
8151
  }