@tellescope/sdk 1.204.2 → 1.205.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.
@@ -13118,6 +13118,91 @@ var inbox_loading_tests = function () { return __awaiter(void 0, void 0, void 0,
13118
13118
  }
13119
13119
  });
13120
13120
  }); };
13121
+ var get_next_reminder_timestamp_tests = function () {
13122
+ (0, testing_1.log_header)("Get Next Reminder Timestamp Tests");
13123
+ var startTimeInMS = Date.now();
13124
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [], startTimeInMS: startTimeInMS }) === -1, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, no reminders');
13125
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [], startTimeInMS: startTimeInMS, reminders: [] }) === -1, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, empty reminders');
13126
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [], startTimeInMS: startTimeInMS, reminders: [{ type: 'Remove From Journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 0, didRemind: true }] }) === -1, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, didRemind true');
13127
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [], startTimeInMS: startTimeInMS, reminders: [{ type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 0 }] }) === -1, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, add-to-journey no attendees');
13128
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [], startTimeInMS: startTimeInMS, reminders: [{ type: 'Remove From Journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 0 }] }) === startTimeInMS, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, Remove From Journey');
13129
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [{ id: '', type: 'enduser' }], startTimeInMS: startTimeInMS, reminders: [{ type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 0 }] }) === startTimeInMS, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, add-to-journey with attendees');
13130
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [{ id: '', type: 'enduser' }], startTimeInMS: startTimeInMS, reminders: [{ type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 0 }] }) === startTimeInMS, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, Remove from Journey with attendees');
13131
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [{ id: '', type: 'enduser' }], startTimeInMS: startTimeInMS, reminders: [{ type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: -1000 }] }) === startTimeInMS + 1000, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, start time in future');
13132
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [{ id: '', type: 'enduser' }], startTimeInMS: startTimeInMS, reminders: [{ type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 1000 }] }) === startTimeInMS - 1000, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees, start time in past');
13133
+ (0, testing_1.assert)((0, utilities_1.get_next_reminder_timestamp)({ attendees: [{ id: '', type: 'enduser' }], startTimeInMS: startTimeInMS, reminders: [
13134
+ { type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: 1000 },
13135
+ { type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: -3000 },
13136
+ { type: 'add-to-journey', info: { journeyId: constants_1.PLACEHOLDER_ID }, msBeforeStartTime: -5000 },
13137
+ ] }) === startTimeInMS - 1000, 'invalid get_next_reminder_timestamp', 'get_next_reminder_timestamp with no attendees multiple reminders');
13138
+ };
13139
+ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
13140
+ var form, enduserSDKPublic, enduserId;
13141
+ return __generator(this, function (_a) {
13142
+ switch (_a.label) {
13143
+ case 0:
13144
+ (0, testing_1.log_header)("IP Address Form Tests");
13145
+ return [4 /*yield*/, sdk.api.forms.createOne({
13146
+ title: 'IP Address Form Test',
13147
+ allowPublicURL: true,
13148
+ ipAddressCustomField: 'IP'
13149
+ })
13150
+ // form (may) need at least 1 question for future endpoints to work
13151
+ ];
13152
+ case 1:
13153
+ form = _a.sent();
13154
+ // form (may) need at least 1 question for future endpoints to work
13155
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
13156
+ formId: form.id,
13157
+ title: 'IP Address Field',
13158
+ type: 'description',
13159
+ previousFields: [{ type: 'root', info: {} }]
13160
+ })];
13161
+ case 2:
13162
+ // form (may) need at least 1 question for future endpoints to work
13163
+ _a.sent();
13164
+ enduserSDKPublic = new sdk_1.EnduserSession({ host: host, businessId: form.businessId });
13165
+ return [4 /*yield*/, enduserSDKPublic.api.form_responses.session_for_public_form({
13166
+ formId: form.id,
13167
+ businessId: form.businessId,
13168
+ email: 'test@tellescope.com',
13169
+ phone: '+15555555555',
13170
+ fname: 'session',
13171
+ lname: 'test',
13172
+ })];
13173
+ case 3:
13174
+ enduserId = (_a.sent()).enduserId;
13175
+ (0, testing_1.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); } });
13176
+ // clear ip and set other field to make sure IP doesn't overwrite other custom fields
13177
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduserId, { fields: { otherField: "Set" } }, { replaceObjectFields: true })
13178
+ // should match and update in place
13179
+ ];
13180
+ case 4:
13181
+ // clear ip and set other field to make sure IP doesn't overwrite other custom fields
13182
+ _a.sent();
13183
+ // should match and update in place
13184
+ return [4 /*yield*/, enduserSDKPublic.api.form_responses.session_for_public_form({
13185
+ formId: form.id,
13186
+ businessId: form.businessId,
13187
+ email: 'test@tellescope.com',
13188
+ phone: '+15555555555',
13189
+ fname: 'session',
13190
+ lname: 'test',
13191
+ })];
13192
+ case 5:
13193
+ // should match and update in place
13194
+ _a.sent();
13195
+ (0, testing_1.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; } });
13196
+ return [4 /*yield*/, Promise.all([
13197
+ sdk.api.forms.deleteOne(form.id),
13198
+ sdk.api.endusers.deleteOne(enduserId),
13199
+ ])];
13200
+ case 6:
13201
+ _a.sent();
13202
+ return [2 /*return*/];
13203
+ }
13204
+ });
13205
+ }); };
13121
13206
  (function () { return __awaiter(void 0, void 0, void 0, function () {
13122
13207
  var fields, err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
13123
13208
  var _j, _k;
@@ -13130,7 +13215,8 @@ var inbox_loading_tests = function () { return __awaiter(void 0, void 0, void 0,
13130
13215
  _l.sent();
13131
13216
  _l.label = 2;
13132
13217
  case 2:
13133
- _l.trys.push([2, 77, , 78]);
13218
+ _l.trys.push([2, 78, , 79]);
13219
+ get_next_reminder_timestamp_tests();
13134
13220
  (0, exports.form_conditional_logic_tests)();
13135
13221
  return [4 /*yield*/, test_weighted_round_robin()];
13136
13222
  case 3:
@@ -13270,192 +13356,195 @@ var inbox_loading_tests = function () { return __awaiter(void 0, void 0, void 0,
13270
13356
  return [4 /*yield*/, setup_tests()];
13271
13357
  case 16:
13272
13358
  _l.sent();
13273
- return [4 /*yield*/, bulk_update_tests()];
13359
+ return [4 /*yield*/, ip_address_form_tests()];
13274
13360
  case 17:
13275
13361
  _l.sent();
13276
- return [4 /*yield*/, (0, exports.formsort_tests)()];
13362
+ return [4 /*yield*/, bulk_update_tests()];
13277
13363
  case 18:
13278
13364
  _l.sent();
13279
- return [4 /*yield*/, inbox_loading_tests()];
13365
+ return [4 /*yield*/, (0, exports.formsort_tests)()];
13280
13366
  case 19:
13281
13367
  _l.sent();
13282
- return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
13368
+ return [4 /*yield*/, inbox_loading_tests()];
13283
13369
  case 20:
13284
13370
  _l.sent();
13285
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
13371
+ return [4 /*yield*/, (0, exports.cancel_upcoming_appointments_journey_action_test)()];
13286
13372
  case 21:
13373
+ _l.sent();
13374
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
13375
+ case 22:
13287
13376
  _l.sent(); // should come right after setup tests
13288
13377
  return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
13289
- case 22:
13378
+ case 23:
13290
13379
  _l.sent(); // should come directly after setup to avoid extra sync values
13291
13380
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
13292
- case 23:
13381
+ case 24:
13293
13382
  _l.sent(); // should come directly after setup to avoid extra sync values
13294
13383
  return [4 /*yield*/, get_templated_message_tests()];
13295
- case 24:
13384
+ case 25:
13296
13385
  _l.sent();
13297
13386
  return [4 /*yield*/, updatedAt_tests()];
13298
- case 25:
13387
+ case 26:
13299
13388
  _l.sent();
13300
13389
  return [4 /*yield*/, automation_trigger_tests()];
13301
- case 26:
13390
+ case 27:
13302
13391
  _l.sent();
13303
13392
  return [4 /*yield*/, file_source_tests()];
13304
- case 27:
13393
+ case 28:
13305
13394
  _l.sent();
13306
13395
  return [4 /*yield*/, enduser_access_tags_tests()];
13307
- case 28:
13396
+ case 29:
13308
13397
  _l.sent();
13309
13398
  return [4 /*yield*/, enduserAccessTests()];
13310
- case 29:
13399
+ case 30:
13311
13400
  _l.sent();
13312
13401
  return [4 /*yield*/, test_form_response_search()];
13313
- case 30:
13402
+ case 31:
13314
13403
  _l.sent();
13315
13404
  return [4 /*yield*/, date_parsing_tests()];
13316
- case 31:
13405
+ case 32:
13317
13406
  _l.sent();
13318
13407
  return [4 /*yield*/, fromEmailOverride_tests()];
13319
- case 32:
13408
+ case 33:
13320
13409
  _l.sent();
13321
13410
  return [4 /*yield*/, ticket_tests()];
13322
- case 33:
13411
+ case 34:
13323
13412
  _l.sent();
13324
13413
  return [4 /*yield*/, uniqueness_tests()];
13325
- case 34:
13414
+ case 35:
13326
13415
  _l.sent();
13327
13416
  return [4 /*yield*/, (0, exports.enduser_orders_tests)()];
13328
- case 35:
13417
+ case 36:
13329
13418
  _l.sent();
13330
13419
  return [4 /*yield*/, calendar_event_care_team_tests()];
13331
- case 36:
13420
+ case 37:
13332
13421
  _l.sent();
13333
13422
  return [4 /*yield*/, merge_enduser_tests()];
13334
- case 37:
13423
+ case 38:
13335
13424
  _l.sent();
13336
13425
  return [4 /*yield*/, input_modifier_tests()];
13337
- case 38:
13426
+ case 39:
13338
13427
  _l.sent();
13339
13428
  return [4 /*yield*/, (0, exports.switch_to_related_contacts_tests)()];
13340
- case 39:
13429
+ case 40:
13341
13430
  _l.sent();
13342
13431
  return [4 /*yield*/, redaction_tests()];
13343
- case 40:
13432
+ case 41:
13344
13433
  _l.sent();
13345
13434
  return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
13346
- case 41:
13435
+ case 42:
13347
13436
  _l.sent();
13348
13437
  return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
13349
- case 42:
13438
+ case 43:
13350
13439
  _l.sent();
13351
13440
  return [4 /*yield*/, rate_limit_tests()];
13352
- case 43:
13441
+ case 44:
13353
13442
  _l.sent();
13354
13443
  return [4 /*yield*/, mdb_filter_tests()];
13355
- case 44:
13444
+ case 45:
13356
13445
  _l.sent();
13357
13446
  return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
13358
- case 45:
13447
+ case 46:
13359
13448
  _l.sent();
13360
13449
  return [4 /*yield*/, superadmin_tests()];
13361
- case 46:
13450
+ case 47:
13362
13451
  _l.sent();
13363
13452
  return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
13364
- case 47:
13453
+ case 48:
13365
13454
  _l.sent();
13366
13455
  return [4 /*yield*/, vital_trigger_tests()];
13367
- case 48:
13456
+ case 49:
13368
13457
  _l.sent();
13369
13458
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
13370
- case 49:
13459
+ case 50:
13371
13460
  _l.sent();
13372
13461
  return [4 /*yield*/, register_as_enduser_tests()];
13373
- case 50:
13462
+ case 51:
13374
13463
  _l.sent();
13375
13464
  return [4 /*yield*/, lockout_tests()];
13376
- case 51:
13465
+ case 52:
13377
13466
  _l.sent();
13378
13467
  return [4 /*yield*/, delete_user_tests()
13379
13468
  // await test_send_with_template()
13380
13469
  ];
13381
- case 52:
13470
+ case 53:
13382
13471
  _l.sent();
13383
13472
  // await test_send_with_template()
13384
13473
  return [4 /*yield*/, bulk_read_tests()];
13385
- case 53:
13474
+ case 54:
13386
13475
  // await test_send_with_template()
13387
13476
  _l.sent();
13388
13477
  return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
13389
- case 54:
13478
+ case 55:
13390
13479
  _l.sent();
13391
13480
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
13392
- case 55:
13481
+ case 56:
13393
13482
  _l.sent();
13394
13483
  return [4 /*yield*/, unique_strings_tests()];
13395
- case 56:
13484
+ case 57:
13396
13485
  _l.sent();
13397
13486
  return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
13398
- case 57:
13487
+ case 58:
13399
13488
  _l.sent();
13400
13489
  return [4 /*yield*/, field_equals_trigger_tests()];
13401
- case 58:
13490
+ case 59:
13402
13491
  _l.sent();
13403
13492
  return [4 /*yield*/, role_based_access_tests()];
13404
- case 59:
13493
+ case 60:
13405
13494
  _l.sent();
13406
13495
  return [4 /*yield*/, enduser_session_tests()];
13407
- case 60:
13496
+ case 61:
13408
13497
  _l.sent();
13409
13498
  return [4 /*yield*/, nextReminderInMS_tests()];
13410
- case 61:
13499
+ case 62:
13411
13500
  _l.sent();
13412
13501
  return [4 /*yield*/, search_tests()];
13413
- case 62:
13502
+ case 63:
13414
13503
  _l.sent();
13415
13504
  return [4 /*yield*/, wait_for_trigger_tests()];
13416
- case 63:
13505
+ case 64:
13417
13506
  _l.sent();
13418
13507
  return [4 /*yield*/, pdf_generation()];
13419
- case 64:
13508
+ case 65:
13420
13509
  _l.sent();
13421
13510
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
13422
- case 65:
13511
+ case 66:
13423
13512
  _l.sent(); // timing is unreliable, uncomment if changing logic
13424
13513
  return [4 /*yield*/, auto_reply_tests()];
13425
- case 66:
13426
- _l.sent();
13427
- return [4 /*yield*/, sub_organization_enduser_tests()];
13428
13514
  case 67:
13429
13515
  _l.sent();
13430
- return [4 /*yield*/, sub_organization_tests()];
13516
+ return [4 /*yield*/, sub_organization_enduser_tests()];
13431
13517
  case 68:
13432
13518
  _l.sent();
13433
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
13519
+ return [4 /*yield*/, sub_organization_tests()];
13434
13520
  case 69:
13435
13521
  _l.sent();
13436
- return [4 /*yield*/, generate_user_auth_tests()];
13522
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
13437
13523
  case 70:
13438
13524
  _l.sent();
13439
- return [4 /*yield*/, generateEnduserAuthTests()];
13525
+ return [4 /*yield*/, generate_user_auth_tests()];
13440
13526
  case 71:
13441
13527
  _l.sent();
13442
- return [4 /*yield*/, public_form_tests()];
13528
+ return [4 /*yield*/, generateEnduserAuthTests()];
13443
13529
  case 72:
13444
13530
  _l.sent();
13445
- return [4 /*yield*/, badInputTests()];
13531
+ return [4 /*yield*/, public_form_tests()];
13446
13532
  case 73:
13447
13533
  _l.sent();
13448
- return [4 /*yield*/, filterTests()];
13534
+ return [4 /*yield*/, badInputTests()];
13449
13535
  case 74:
13450
13536
  _l.sent();
13451
- return [4 /*yield*/, updatesTests()];
13537
+ return [4 /*yield*/, filterTests()];
13452
13538
  case 75:
13453
13539
  _l.sent();
13454
- return [4 /*yield*/, threadKeyTests()];
13540
+ return [4 /*yield*/, updatesTests()];
13455
13541
  case 76:
13456
13542
  _l.sent();
13457
- return [3 /*break*/, 78];
13543
+ return [4 /*yield*/, threadKeyTests()];
13458
13544
  case 77:
13545
+ _l.sent();
13546
+ return [3 /*break*/, 79];
13547
+ case 78:
13459
13548
  err_1 = _l.sent();
13460
13549
  console.error("Failed during custom test");
13461
13550
  if (err_1.message && err_1.info) {
@@ -13465,18 +13554,18 @@ var inbox_loading_tests = function () { return __awaiter(void 0, void 0, void 0,
13465
13554
  console.error(err_1);
13466
13555
  }
13467
13556
  process.exit(1);
13468
- return [3 /*break*/, 78];
13469
- case 78:
13557
+ return [3 /*break*/, 79];
13558
+ case 79:
13470
13559
  _a = schema_1.schema;
13471
13560
  _b = [];
13472
13561
  for (_c in _a)
13473
13562
  _b.push(_c);
13474
13563
  _i = 0;
13475
- _l.label = 79;
13476
- case 79:
13477
- if (!(_i < _b.length)) return [3 /*break*/, 82];
13564
+ _l.label = 80;
13565
+ case 80:
13566
+ if (!(_i < _b.length)) return [3 /*break*/, 83];
13478
13567
  _c = _b[_i];
13479
- if (!(_c in _a)) return [3 /*break*/, 81];
13568
+ if (!(_c in _a)) return [3 /*break*/, 82];
13480
13569
  n = _c;
13481
13570
  returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
13482
13571
  return [4 /*yield*/, run_generated_tests({
@@ -13487,41 +13576,41 @@ var inbox_loading_tests = function () { return __awaiter(void 0, void 0, void 0,
13487
13576
  create: returnValidation // ModelFields<ClientModel>,
13488
13577
  }
13489
13578
  })];
13490
- case 80:
13491
- _l.sent();
13492
- _l.label = 81;
13493
13579
  case 81:
13494
- _i++;
13495
- return [3 /*break*/, 79];
13580
+ _l.sent();
13581
+ _l.label = 82;
13496
13582
  case 82:
13583
+ _i++;
13584
+ return [3 /*break*/, 80];
13585
+ case 83:
13497
13586
  _d = tests;
13498
13587
  _f = [];
13499
13588
  for (_g in _d)
13500
13589
  _f.push(_g);
13501
13590
  _h = 0;
13502
- _l.label = 83;
13503
- case 83:
13504
- if (!(_h < _f.length)) return [3 /*break*/, 88];
13505
- _g = _f[_h];
13506
- if (!(_g in _d)) return [3 /*break*/, 87];
13507
- t = _g;
13508
13591
  _l.label = 84;
13509
13592
  case 84:
13510
- _l.trys.push([84, 86, , 87]);
13511
- return [4 /*yield*/, tests[t]()];
13593
+ if (!(_h < _f.length)) return [3 /*break*/, 89];
13594
+ _g = _f[_h];
13595
+ if (!(_g in _d)) return [3 /*break*/, 88];
13596
+ t = _g;
13597
+ _l.label = 85;
13512
13598
  case 85:
13513
- _l.sent();
13514
- return [3 /*break*/, 87];
13599
+ _l.trys.push([85, 87, , 88]);
13600
+ return [4 /*yield*/, tests[t]()];
13515
13601
  case 86:
13602
+ _l.sent();
13603
+ return [3 /*break*/, 88];
13604
+ case 87:
13516
13605
  err_2 = _l.sent();
13517
13606
  console.error("Error running test:");
13518
13607
  console.error(err_2);
13519
13608
  process.exit(1);
13520
- return [3 /*break*/, 87];
13521
- case 87:
13522
- _h++;
13523
- return [3 /*break*/, 83];
13609
+ return [3 /*break*/, 88];
13524
13610
  case 88:
13611
+ _h++;
13612
+ return [3 /*break*/, 84];
13613
+ case 89:
13525
13614
  process.exit();
13526
13615
  return [2 /*return*/];
13527
13616
  }