@tellescope/sdk 1.69.5 → 1.70.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.
@@ -7203,35 +7203,121 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7203
7203
  _a.sent();
7204
7204
  return [4 /*yield*/, async_test("tickets filter enduser invalid", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: dontMatchEnduser.id } }); }, {
7205
7205
  onResult: function (r) { return r.length === 0; }
7206
- })
7206
+ })];
7207
+ case 47:
7208
+ _a.sent();
7209
+ return [4 /*yield*/, async_test("Non-admin can't update tags", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'] }); }, handleAnyError)];
7210
+ case 48:
7211
+ _a.sent();
7212
+ return [4 /*yield*/, async_test("Non-admin can't update tags (with other updates)", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: ['new tag'], bio: '' }); }, handleAnyError)];
7213
+ case 49:
7214
+ _a.sent();
7215
+ return [4 /*yield*/, async_test("Non-admin can update other fields", function () { return sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, { bio: '' }); }, passOnAnyResult)
7207
7216
  // cleanup
7208
7217
  ];
7209
- case 47:
7218
+ case 50:
7210
7219
  _a.sent();
7211
7220
  // cleanup
7212
7221
  return [4 /*yield*/, sdk.api.organizations.updateOne(sdkNonAdmin.userInfo.businessId, {
7213
7222
  settings: { endusers: { enableAccessTags: false } }
7214
7223
  })];
7215
- case 48:
7224
+ case 51:
7216
7225
  // cleanup
7217
7226
  _a.sent();
7218
7227
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { tags: [] }, { replaceObjectFields: true })];
7219
- case 49:
7228
+ case 52:
7220
7229
  _a.sent();
7221
7230
  return [4 /*yield*/, sdkNonAdmin.refresh_session()];
7222
- case 50:
7231
+ case 53:
7223
7232
  _a.sent();
7224
7233
  return [4 /*yield*/, Promise.all([
7225
7234
  sdk.api.endusers.deleteOne(matchEnduser.id),
7226
7235
  sdk.api.endusers.deleteOne(matchMultiTagEnduser.id),
7227
7236
  sdk.api.endusers.deleteOne(dontMatchEnduser.id),
7228
7237
  ])];
7229
- case 51:
7238
+ case 54:
7230
7239
  _a.sent();
7231
7240
  return [2 /*return*/];
7232
7241
  }
7233
7242
  });
7234
7243
  }); };
7244
+ var unique_strings_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7245
+ var e;
7246
+ return __generator(this, function (_a) {
7247
+ switch (_a.label) {
7248
+ case 0:
7249
+ log_header("unique_strings test");
7250
+ return [4 /*yield*/, sdk.api.endusers.createOne({ assignedTo: ['1', '2', '2', '1', '3'] })];
7251
+ case 1:
7252
+ e = _a.sent();
7253
+ return [4 /*yield*/, async_test("Duplicate care team assignments are prevented", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 3 && e.assignedTo.includes('1') && e.assignedTo.includes('2') && e.assignedTo.includes('3'); } })
7254
+ // attempt to push duplicates of each
7255
+ ];
7256
+ case 2:
7257
+ _a.sent();
7258
+ // attempt to push duplicates of each
7259
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { assignedTo: ['1', '2', '3'] }, { replaceObjectFields: false })];
7260
+ case 3:
7261
+ // attempt to push duplicates of each
7262
+ _a.sent();
7263
+ return [4 /*yield*/, async_test("Duplicate care team assignments are prevented (update)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return ((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) === 3 && e.assignedTo.includes('1') && e.assignedTo.includes('2') && e.assignedTo.includes('3'); } })
7264
+ // validate setting empty is allowed
7265
+ ];
7266
+ case 4:
7267
+ _a.sent();
7268
+ // validate setting empty is allowed
7269
+ return [4 /*yield*/, async_test("Setting empty is still allowed", function () { return sdk.api.endusers.updateOne(e.id, { assignedTo: [] }, { replaceObjectFields: true }); }, passOnAnyResult)];
7270
+ case 5:
7271
+ // validate setting empty is allowed
7272
+ _a.sent();
7273
+ return [4 /*yield*/, Promise.all([
7274
+ sdk.api.endusers.deleteOne(e.id),
7275
+ ])];
7276
+ case 6: return [2 /*return*/, _a.sent()];
7277
+ }
7278
+ });
7279
+ }); };
7280
+ var marketing_email_unsubscribe_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7281
+ var e;
7282
+ return __generator(this, function (_a) {
7283
+ switch (_a.label) {
7284
+ case 0:
7285
+ log_header("marketing_email_unsubscribe_tests");
7286
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'test@tellescope.com' })];
7287
+ case 1:
7288
+ e = _a.sent();
7289
+ return [4 /*yield*/, async_test("Non-marketing email good", function () { return sdk.api.emails.createOne({ logOnly: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)];
7290
+ case 2:
7291
+ _a.sent();
7292
+ return [4 /*yield*/, async_test("Marketing email good when subscribed", function () { return sdk.api.emails.createOne({ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)
7293
+ // attempt to push duplicates of each
7294
+ ];
7295
+ case 3:
7296
+ _a.sent();
7297
+ // attempt to push duplicates of each
7298
+ return [4 /*yield*/, sdk.GET('/v1/unsubscribe', { enduserId: e.id })];
7299
+ case 4:
7300
+ // attempt to push duplicates of each
7301
+ _a.sent();
7302
+ return [4 /*yield*/, async_test("GET /v1/unsubscribe works", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { return e.unsubscribedFromMarketing === true; } })];
7303
+ case 5:
7304
+ _a.sent();
7305
+ return [4 /*yield*/, async_test("Non-marketing email good", function () { return sdk.api.emails.createOne({ logOnly: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, passOnAnyResult)];
7306
+ case 6:
7307
+ _a.sent();
7308
+ return [4 /*yield*/, async_test("Marketing email bad when unsubscribed", function () { return sdk.api.emails.createOne({ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }); }, handleAnyError)];
7309
+ case 7:
7310
+ _a.sent();
7311
+ return [4 /*yield*/, async_test("Marketing email bad when unsubscribed (bulk)", function () { return sdk.api.emails.createSome([{ logOnly: true, isMarketing: true, subject: '', enduserId: e.id, textContent: '', HTMLContent: '' }]); }, handleAnyError)];
7312
+ case 8:
7313
+ _a.sent();
7314
+ return [4 /*yield*/, Promise.all([
7315
+ sdk.api.endusers.deleteOne(e.id),
7316
+ ])];
7317
+ case 9: return [2 /*return*/, _a.sent()];
7318
+ }
7319
+ });
7320
+ }); };
7235
7321
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7236
7322
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
7237
7323
  var _h, _j;
@@ -7244,7 +7330,7 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7244
7330
  _k.sent();
7245
7331
  _k.label = 2;
7246
7332
  case 2:
7247
- _k.trys.push([2, 41, , 42]);
7333
+ _k.trys.push([2, 43, , 44]);
7248
7334
  return [4 /*yield*/, test_weighted_round_robin()];
7249
7335
  case 3:
7250
7336
  _k.sent();
@@ -7281,98 +7367,104 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7281
7367
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7282
7368
  case 10:
7283
7369
  _k.sent(); // should come right after setup tests
7284
- return [4 /*yield*/, enduser_access_tags_tests()];
7370
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7285
7371
  case 11:
7286
7372
  _k.sent();
7287
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
7373
+ return [4 /*yield*/, unique_strings_tests()];
7288
7374
  case 12:
7289
7375
  _k.sent();
7290
- return [4 /*yield*/, alternate_phones_tests()];
7376
+ return [4 /*yield*/, enduser_access_tags_tests()];
7291
7377
  case 13:
7292
7378
  _k.sent();
7293
- return [4 /*yield*/, ticket_queue_tests()];
7379
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
7294
7380
  case 14:
7295
7381
  _k.sent();
7296
- return [4 /*yield*/, no_chained_triggers_tests()];
7382
+ return [4 /*yield*/, alternate_phones_tests()];
7297
7383
  case 15:
7298
7384
  _k.sent();
7299
- return [4 /*yield*/, field_equals_trigger_tests()];
7385
+ return [4 /*yield*/, ticket_queue_tests()];
7300
7386
  case 16:
7301
7387
  _k.sent();
7302
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7388
+ return [4 /*yield*/, no_chained_triggers_tests()];
7303
7389
  case 17:
7304
7390
  _k.sent();
7305
- return [4 /*yield*/, role_based_access_tests()];
7391
+ return [4 /*yield*/, field_equals_trigger_tests()];
7306
7392
  case 18:
7307
7393
  _k.sent();
7308
- return [4 /*yield*/, automation_trigger_tests()];
7394
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7309
7395
  case 19:
7310
7396
  _k.sent();
7311
- return [4 /*yield*/, enduser_session_tests()];
7397
+ return [4 /*yield*/, role_based_access_tests()];
7312
7398
  case 20:
7313
7399
  _k.sent();
7314
- return [4 /*yield*/, nextReminderInMS_tests()];
7400
+ return [4 /*yield*/, automation_trigger_tests()];
7315
7401
  case 21:
7316
7402
  _k.sent();
7317
- return [4 /*yield*/, search_tests()];
7403
+ return [4 /*yield*/, enduser_session_tests()];
7318
7404
  case 22:
7319
7405
  _k.sent();
7320
- return [4 /*yield*/, wait_for_trigger_tests()];
7406
+ return [4 /*yield*/, nextReminderInMS_tests()];
7321
7407
  case 23:
7322
7408
  _k.sent();
7323
- return [4 /*yield*/, pdf_generation()];
7409
+ return [4 /*yield*/, search_tests()];
7324
7410
  case 24:
7325
7411
  _k.sent();
7326
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7412
+ return [4 /*yield*/, wait_for_trigger_tests()];
7327
7413
  case 25:
7328
7414
  _k.sent();
7329
- return [4 /*yield*/, rate_limit_tests()];
7415
+ return [4 /*yield*/, pdf_generation()];
7330
7416
  case 26:
7331
7417
  _k.sent();
7332
- return [4 /*yield*/, merge_enduser_tests()];
7418
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7333
7419
  case 27:
7334
7420
  _k.sent();
7335
- return [4 /*yield*/, auto_reply_tests()];
7421
+ return [4 /*yield*/, rate_limit_tests()];
7336
7422
  case 28:
7337
7423
  _k.sent();
7338
- return [4 /*yield*/, sub_organization_enduser_tests()];
7424
+ return [4 /*yield*/, merge_enduser_tests()];
7339
7425
  case 29:
7340
7426
  _k.sent();
7341
- return [4 /*yield*/, sub_organization_tests()];
7427
+ return [4 /*yield*/, auto_reply_tests()];
7342
7428
  case 30:
7343
7429
  _k.sent();
7344
- return [4 /*yield*/, filter_by_date_tests()];
7430
+ return [4 /*yield*/, sub_organization_enduser_tests()];
7345
7431
  case 31:
7346
7432
  _k.sent();
7347
- return [4 /*yield*/, generate_user_auth_tests()];
7433
+ return [4 /*yield*/, sub_organization_tests()];
7348
7434
  case 32:
7349
7435
  _k.sent();
7350
- return [4 /*yield*/, generateEnduserAuthTests()];
7436
+ return [4 /*yield*/, filter_by_date_tests()];
7351
7437
  case 33:
7352
7438
  _k.sent();
7353
- return [4 /*yield*/, public_form_tests()];
7439
+ return [4 /*yield*/, generate_user_auth_tests()];
7354
7440
  case 34:
7355
7441
  _k.sent();
7356
- return [4 /*yield*/, badInputTests()];
7442
+ return [4 /*yield*/, generateEnduserAuthTests()];
7357
7443
  case 35:
7358
7444
  _k.sent();
7359
- return [4 /*yield*/, filterTests()];
7445
+ return [4 /*yield*/, public_form_tests()];
7360
7446
  case 36:
7361
7447
  _k.sent();
7362
- return [4 /*yield*/, updatesTests()];
7448
+ return [4 /*yield*/, badInputTests()];
7363
7449
  case 37:
7364
7450
  _k.sent();
7365
- return [4 /*yield*/, threadKeyTests()];
7451
+ return [4 /*yield*/, filterTests()];
7366
7452
  case 38:
7367
7453
  _k.sent();
7368
- return [4 /*yield*/, enduserAccessTests()];
7454
+ return [4 /*yield*/, updatesTests()];
7369
7455
  case 39:
7370
7456
  _k.sent();
7371
- return [4 /*yield*/, enduser_redaction_tests()];
7457
+ return [4 /*yield*/, threadKeyTests()];
7372
7458
  case 40:
7373
7459
  _k.sent();
7374
- return [3 /*break*/, 42];
7460
+ return [4 /*yield*/, enduserAccessTests()];
7375
7461
  case 41:
7462
+ _k.sent();
7463
+ return [4 /*yield*/, enduser_redaction_tests()];
7464
+ case 42:
7465
+ _k.sent();
7466
+ return [3 /*break*/, 44];
7467
+ case 43:
7376
7468
  err_1 = _k.sent();
7377
7469
  console.error("Failed during custom test");
7378
7470
  if (err_1.message && err_1.info) {
@@ -7382,18 +7474,18 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7382
7474
  console.error(err_1);
7383
7475
  }
7384
7476
  process.exit(1);
7385
- return [3 /*break*/, 42];
7386
- case 42:
7477
+ return [3 /*break*/, 44];
7478
+ case 44:
7387
7479
  _a = schema;
7388
7480
  _b = [];
7389
7481
  for (_c in _a)
7390
7482
  _b.push(_c);
7391
7483
  _i = 0;
7392
- _k.label = 43;
7393
- case 43:
7394
- if (!(_i < _b.length)) return [3 /*break*/, 46];
7484
+ _k.label = 45;
7485
+ case 45:
7486
+ if (!(_i < _b.length)) return [3 /*break*/, 48];
7395
7487
  _c = _b[_i];
7396
- if (!(_c in _a)) return [3 /*break*/, 45];
7488
+ if (!(_c in _a)) return [3 /*break*/, 47];
7397
7489
  n = _c;
7398
7490
  returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
7399
7491
  return [4 /*yield*/, run_generated_tests({
@@ -7404,41 +7496,41 @@ var enduser_access_tags_tests = function () { return __awaiter(void 0, void 0, v
7404
7496
  create: returnValidation // ModelFields<ClientModel>,
7405
7497
  }
7406
7498
  })];
7407
- case 44:
7499
+ case 46:
7408
7500
  _k.sent();
7409
- _k.label = 45;
7410
- case 45:
7501
+ _k.label = 47;
7502
+ case 47:
7411
7503
  _i++;
7412
- return [3 /*break*/, 43];
7413
- case 46:
7504
+ return [3 /*break*/, 45];
7505
+ case 48:
7414
7506
  _d = tests;
7415
7507
  _e = [];
7416
7508
  for (_f in _d)
7417
7509
  _e.push(_f);
7418
7510
  _g = 0;
7419
- _k.label = 47;
7420
- case 47:
7421
- if (!(_g < _e.length)) return [3 /*break*/, 52];
7511
+ _k.label = 49;
7512
+ case 49:
7513
+ if (!(_g < _e.length)) return [3 /*break*/, 54];
7422
7514
  _f = _e[_g];
7423
- if (!(_f in _d)) return [3 /*break*/, 51];
7515
+ if (!(_f in _d)) return [3 /*break*/, 53];
7424
7516
  t = _f;
7425
- _k.label = 48;
7426
- case 48:
7427
- _k.trys.push([48, 50, , 51]);
7517
+ _k.label = 50;
7518
+ case 50:
7519
+ _k.trys.push([50, 52, , 53]);
7428
7520
  return [4 /*yield*/, tests[t]()];
7429
- case 49:
7521
+ case 51:
7430
7522
  _k.sent();
7431
- return [3 /*break*/, 51];
7432
- case 50:
7523
+ return [3 /*break*/, 53];
7524
+ case 52:
7433
7525
  err_2 = _k.sent();
7434
7526
  console.error("Error running test:");
7435
7527
  console.error(err_2);
7436
7528
  process.exit(1);
7437
- return [3 /*break*/, 51];
7438
- case 51:
7529
+ return [3 /*break*/, 53];
7530
+ case 53:
7439
7531
  _g++;
7440
- return [3 /*break*/, 47];
7441
- case 52:
7532
+ return [3 /*break*/, 49];
7533
+ case 54:
7442
7534
  process.exit();
7443
7535
  return [2 /*return*/];
7444
7536
  }