@tellescope/sdk 1.4.37 → 1.4.42

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.
Files changed (44) hide show
  1. package/lib/cjs/enduser.d.ts +3 -3
  2. package/lib/cjs/enduser.d.ts.map +1 -1
  3. package/lib/cjs/enduser.js +1 -1
  4. package/lib/cjs/sdk.d.ts +9 -4
  5. package/lib/cjs/sdk.d.ts.map +1 -1
  6. package/lib/cjs/sdk.js +1 -1
  7. package/lib/cjs/session.d.ts +0 -1
  8. package/lib/cjs/session.d.ts.map +1 -1
  9. package/lib/cjs/session.js +1 -1
  10. package/lib/cjs/tests/public_endpoint_tests.js +1 -1
  11. package/lib/cjs/tests/socket_tests.d.ts.map +1 -1
  12. package/lib/cjs/tests/socket_tests.js +22 -9
  13. package/lib/cjs/tests/socket_tests.js.map +1 -1
  14. package/lib/cjs/tests/tests.d.ts.map +1 -1
  15. package/lib/cjs/tests/tests.js +225 -156
  16. package/lib/cjs/tests/tests.js.map +1 -1
  17. package/lib/cjs/tests/webhooks_tests.js +47 -41
  18. package/lib/cjs/tests/webhooks_tests.js.map +1 -1
  19. package/lib/esm/enduser.d.ts +5 -4
  20. package/lib/esm/enduser.d.ts.map +1 -1
  21. package/lib/esm/enduser.js +1 -1
  22. package/lib/esm/public.d.ts +2 -2
  23. package/lib/esm/public.d.ts.map +1 -1
  24. package/lib/esm/sdk.d.ts +11 -5
  25. package/lib/esm/sdk.d.ts.map +1 -1
  26. package/lib/esm/sdk.js +1 -1
  27. package/lib/esm/session.d.ts +2 -2
  28. package/lib/esm/session.d.ts.map +1 -1
  29. package/lib/esm/session.js +2 -2
  30. package/lib/esm/session.js.map +1 -1
  31. package/lib/esm/tests/public_endpoint_tests.js +1 -1
  32. package/lib/esm/tests/socket_tests.d.ts.map +1 -1
  33. package/lib/esm/tests/socket_tests.js +22 -9
  34. package/lib/esm/tests/socket_tests.js.map +1 -1
  35. package/lib/esm/tests/tests.d.ts.map +1 -1
  36. package/lib/esm/tests/tests.js +225 -156
  37. package/lib/esm/tests/tests.js.map +1 -1
  38. package/lib/esm/tests/webhooks_tests.js +47 -41
  39. package/lib/esm/tests/webhooks_tests.js.map +1 -1
  40. package/lib/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +9 -9
  42. package/src/sdk.ts +2 -2
  43. package/src/tests/socket_tests.ts +12 -1
  44. package/src/tests/tests.ts +28 -9
@@ -24,7 +24,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
24
24
  function verb(n) { return function (v) { return step([n, v]); }; }
25
25
  function step(op) {
26
26
  if (f) throw new TypeError("Generator is already executing.");
27
- while (_) try {
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
28
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
29
  if (y = 0, t) op = [op[0] & 2, t.value];
30
30
  switch (op[0]) {
@@ -335,43 +335,82 @@ var sub_organization_tests = function () { return __awaiter(void 0, void 0, void
335
335
  });
336
336
  }); };
337
337
  var sub_organization_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
338
- var _a, _b;
339
- return __generator(this, function (_c) {
340
- switch (_c.label) {
338
+ var rootTicket, rootTicketAfterUpdate;
339
+ var _a, _b, _c;
340
+ return __generator(this, function (_d) {
341
+ switch (_d.label) {
341
342
  case 0:
342
343
  log_header("Sub Organizations (Enduser-Facing Tests)");
343
344
  return [4 /*yield*/, enduserSDK.register({ email: 'root@tellescope.com', password: password })];
344
345
  case 1:
345
- _c.sent();
346
+ _d.sent();
346
347
  return [4 /*yield*/, subEnduserSDK.register({ email: 'sub@tellescope.com', password: password })];
347
348
  case 2:
348
- _c.sent();
349
+ _d.sent();
349
350
  return [4 /*yield*/, enduserSDK.authenticate('root@tellescope.com', password)];
350
351
  case 3:
351
- _c.sent();
352
+ _d.sent();
352
353
  return [4 /*yield*/, subEnduserSDK.authenticate('sub@tellescope.com', password)];
353
354
  case 4:
354
- _c.sent();
355
+ _d.sent();
355
356
  assert(!((_a = enduserSDK.userInfo.organizationIds) === null || _a === void 0 ? void 0 : _a.length), 'bad root organizationIds', 'root auth org ids');
356
357
  assert(((_b = subEnduserSDK.userInfo.organizationIds) === null || _b === void 0 ? void 0 : _b.length) === 1, 'bad sub organizationIds', 'sub auth org ids');
357
- return [4 /*yield*/, async_test("root get root", function () { return sdk.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
358
+ return [4 /*yield*/, enduserSDK.api.tickets.createOne({ title: 'root', enduserId: enduserSDK.userInfo.id })];
358
359
  case 5:
359
- _c.sent();
360
- return [4 /*yield*/, async_test("sub get root error", function () { return sdkSub.api.endusers.getOne(enduserSDK.userInfo.id); }, handleAnyError)];
360
+ rootTicket = _d.sent();
361
+ return [4 /*yield*/, async_test("root get root", function () { return sdk.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
361
362
  case 6:
362
- _c.sent();
363
- return [4 /*yield*/, async_test("root get sub", function () { return sdk.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
363
+ _d.sent();
364
+ return [4 /*yield*/, async_test("sub get root error", function () { return sdkSub.api.endusers.getOne(enduserSDK.userInfo.id); }, handleAnyError)];
364
365
  case 7:
365
- _c.sent();
366
- return [4 /*yield*/, async_test("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
366
+ _d.sent();
367
+ return [4 /*yield*/, async_test("root get sub", function () { return sdk.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
367
368
  case 8:
368
- _c.sent();
369
+ _d.sent();
370
+ return [4 /*yield*/, async_test("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
371
+ case 9:
372
+ _d.sent();
373
+ return [4 /*yield*/, async_test("root get root ticket", function () { return sdk.api.tickets.getOne(rootTicket.id); }, passOnAnyResult)];
374
+ case 10:
375
+ _d.sent();
376
+ return [4 /*yield*/, async_test("sub get root ticket error", function () { return sdkSub.api.tickets.getOne(rootTicket.id); }, handleAnyError)];
377
+ case 11:
378
+ _d.sent();
379
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduserSDK.userInfo.id, { sharedWithOrganizations: [(_c = sdkSub.userInfo.organizationIds) !== null && _c !== void 0 ? _c : []] })];
380
+ case 12:
381
+ _d.sent();
382
+ return [4 /*yield*/, enduserSDK.refresh_session()]; // ensure updated session includes new sharedWithOrganizations
383
+ case 13:
384
+ _d.sent(); // ensure updated session includes new sharedWithOrganizations
385
+ return [4 /*yield*/, enduserSDK.api.tickets.createOne({ title: 'root with shared', enduserId: enduserSDK.userInfo.id })];
386
+ case 14:
387
+ rootTicketAfterUpdate = _d.sent();
388
+ return [4 /*yield*/, async_test("root get root", function () { return sdk.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
389
+ case 15:
390
+ _d.sent();
391
+ return [4 /*yield*/, async_test("sub get root after update", function () { return sdkSub.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
392
+ case 16:
393
+ _d.sent();
394
+ return [4 /*yield*/, async_test("root get sub", function () { return sdk.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
395
+ case 17:
396
+ _d.sent();
397
+ return [4 /*yield*/, async_test("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
398
+ case 18:
399
+ _d.sent();
400
+ return [4 /*yield*/, async_test("root get root ticket after update", function () { return sdk.api.tickets.getOne(rootTicketAfterUpdate.id); }, passOnAnyResult)];
401
+ case 19:
402
+ _d.sent();
403
+ return [4 /*yield*/, async_test("sub get root ticket after update", function () { return sdkSub.api.tickets.getOne(rootTicketAfterUpdate.id); }, passOnAnyResult)];
404
+ case 20:
405
+ _d.sent();
369
406
  return [4 /*yield*/, Promise.all([
370
407
  sdk.api.endusers.deleteOne(enduserSDK.userInfo.id),
371
408
  sdk.api.endusers.deleteOne(subEnduserSDK.userInfo.id),
409
+ sdk.api.tickets.deleteOne(rootTicket.id),
410
+ sdk.api.tickets.deleteOne(rootTicketAfterUpdate.id),
372
411
  ])];
373
- case 9:
374
- _c.sent();
412
+ case 21:
413
+ _d.sent();
375
414
  return [2 /*return*/];
376
415
  }
377
416
  });
@@ -693,9 +732,9 @@ var has_required_field = function (fields) { return Object.values(fields).find(f
693
732
  var verify_missing_defaults = function (_a) {
694
733
  var queries = _a.queries, model = _a.model, name = _a.name;
695
734
  return __awaiter(void 0, void 0, void 0, function () {
696
- var queryForOperation, o, _b, _c, _i;
697
- return __generator(this, function (_d) {
698
- switch (_d.label) {
735
+ var queryForOperation, o, _b, _c, _d, _i;
736
+ return __generator(this, function (_e) {
737
+ switch (_e.label) {
699
738
  case 0:
700
739
  queryForOperation = {
701
740
  create: function () { return queries.createOne({}); },
@@ -705,20 +744,23 @@ var verify_missing_defaults = function (_a) {
705
744
  update: function () { return queries.updateOne('fakeid', {}); },
706
745
  delete: function () { return queries.deleteOne('fakeid'); },
707
746
  };
708
- _b = [];
709
- for (_c in DEFAULT_OPERATIONS)
710
- _b.push(_c);
747
+ _b = DEFAULT_OPERATIONS;
748
+ _c = [];
749
+ for (_d in _b)
750
+ _c.push(_d);
711
751
  _i = 0;
712
- _d.label = 1;
752
+ _e.label = 1;
713
753
  case 1:
714
- if (!(_i < _b.length)) return [3 /*break*/, 4];
715
- o = _b[_i];
754
+ if (!(_i < _c.length)) return [3 /*break*/, 4];
755
+ _d = _c[_i];
756
+ if (!(_d in _b)) return [3 /*break*/, 3];
757
+ o = _d;
716
758
  if (Object.keys(model.defaultActions).includes(o) || model.customActions[o])
717
759
  return [3 /*break*/, 3]; // action is implemented
718
760
  return [4 /*yield*/, async_test("".concat(o, " unavailable for ").concat(name), function () { return queryForOperation[o](); }, { shouldError: true, onError: function (e) { return e.message === 'This action is not allowed' || e.message === 'Inaccessible'; } })];
719
761
  case 2:
720
- _d.sent();
721
- _d.label = 3;
762
+ _e.sent();
763
+ _e.label = 3;
722
764
  case 3:
723
765
  _i++;
724
766
  return [3 /*break*/, 1];
@@ -1501,32 +1543,50 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1501
1543
  case 10:
1502
1544
  _a.sent();
1503
1545
  return [4 /*yield*/, async_test("get-chats for enduser", function () { return enduserSDK.api.chats.getSome({ filter: { roomId: enduserRoom.id } }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.length) === 2; } })
1546
+ // this is allowed now
1504
1547
  // await async_test(
1505
1548
  // `get-chat (without filter)`,
1506
1549
  // () => sdk.api.chats.getOne(chat.id),
1507
1550
  // { shouldError: true, onError: () => true }
1508
1551
  // )
1552
+ // this is allowed now
1553
+ // await async_test(
1554
+ // `get-chats (without filter)`,
1555
+ // () => sdk.api.chats.getSome({}),
1556
+ // { shouldError: true, onError: () => true }
1557
+ // )
1509
1558
  ];
1510
1559
  case 11:
1511
1560
  _a.sent();
1561
+ // this is allowed now
1512
1562
  // await async_test(
1513
1563
  // `get-chat (without filter)`,
1514
1564
  // () => sdk.api.chats.getOne(chat.id),
1515
1565
  // { shouldError: true, onError: () => true }
1516
1566
  // )
1517
- return [4 /*yield*/, async_test("get-chats (without filter)", function () { return sdk.api.chats.getSome({}); }, { shouldError: true, onError: function () { return true; } })];
1567
+ // this is allowed now
1568
+ // await async_test(
1569
+ // `get-chats (without filter)`,
1570
+ // () => sdk.api.chats.getSome({}),
1571
+ // { shouldError: true, onError: () => true }
1572
+ // )
1573
+ return [4 /*yield*/, async_test("get-chats (with filter)", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.length) === 2; } })];
1518
1574
  case 12:
1575
+ // this is allowed now
1519
1576
  // await async_test(
1520
1577
  // `get-chat (without filter)`,
1521
1578
  // () => sdk.api.chats.getOne(chat.id),
1522
1579
  // { shouldError: true, onError: () => true }
1523
1580
  // )
1524
- _a.sent();
1525
- return [4 /*yield*/, async_test("get-chats (with filter)", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.length) === 2; } })];
1526
- case 13:
1581
+ // this is allowed now
1582
+ // await async_test(
1583
+ // `get-chats (without filter)`,
1584
+ // () => sdk.api.chats.getSome({}),
1585
+ // { shouldError: true, onError: () => true }
1586
+ // )
1527
1587
  _a.sent();
1528
1588
  return [4 /*yield*/, async_test("get-chats not allowed", function () { return sdk2.api.chats.getSome({ filter: { roomId: room.id } }); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })];
1529
- case 14:
1589
+ case 13:
1530
1590
  _a.sent();
1531
1591
  return [4 /*yield*/, async_test("get-chats admin", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function () { return true; } })
1532
1592
  // currently disabled endpoint altogether
@@ -1536,7 +1596,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1536
1596
  // { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
1537
1597
  // )
1538
1598
  ];
1539
- case 15:
1599
+ case 14:
1540
1600
  _a.sent();
1541
1601
  // currently disabled endpoint altogether
1542
1602
  // await async_test(
@@ -1552,7 +1612,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1552
1612
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
1553
1613
  // )
1554
1614
  ];
1555
- case 16:
1615
+ case 15:
1556
1616
  // currently disabled endpoint altogether
1557
1617
  // await async_test(
1558
1618
  // `update-chat not allowed`,
@@ -1567,7 +1627,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1567
1627
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
1568
1628
  // )
1569
1629
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1570
- case 17:
1630
+ case 16:
1571
1631
  // currently disabled endpoint altogether
1572
1632
  // await async_test(
1573
1633
  // `update-chat can't update roomId`,
@@ -1576,198 +1636,201 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1576
1636
  // )
1577
1637
  _a.sent();
1578
1638
  return [4 /*yield*/, wait(undefined, 25)];
1579
- case 18:
1639
+ case 17:
1580
1640
  _a.sent();
1581
1641
  return [4 /*yield*/, async_test("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
1582
- case 19:
1642
+ case 18:
1583
1643
  _a.sent();
1584
1644
  return [4 /*yield*/, async_test("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
1585
- case 20:
1645
+ case 19:
1586
1646
  _a.sent();
1587
1647
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId, sdk2.userInfo.id] })];
1588
- case 21:
1648
+ case 20:
1589
1649
  sharedRoom = _a.sent();
1590
1650
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello!", })];
1591
- case 22:
1651
+ case 21:
1592
1652
  sharedChat = _a.sent();
1593
1653
  return [4 /*yield*/, sdk2.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello there!", })];
1594
- case 23:
1654
+ case 22:
1595
1655
  sharedChat2 = _a.sent();
1596
1656
  return [4 /*yield*/, async_test("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
1597
- case 24:
1657
+ case 23:
1598
1658
  _a.sent();
1599
1659
  return [4 /*yield*/, async_test("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
1600
- case 25:
1660
+ case 24:
1601
1661
  _a.sent();
1602
1662
  return [4 /*yield*/, async_test("get-chats (shared, user1)", function () { return sdk.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })];
1603
- case 26:
1663
+ case 25:
1604
1664
  _a.sent();
1605
1665
  return [4 /*yield*/, async_test("get-chats (shared, user2)", function () { return sdk2.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })
1606
1666
  // test setNull dependency
1607
1667
  ];
1608
- case 27:
1668
+ case 26:
1609
1669
  _a.sent();
1610
1670
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
1611
- case 28:
1671
+ case 27:
1612
1672
  roomNull = _a.sent();
1613
1673
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })];
1614
- case 29:
1674
+ case 28:
1615
1675
  chatNull = _a.sent();
1616
1676
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })];
1617
- case 30:
1677
+ case 29:
1618
1678
  chat2Null = _a.sent();
1619
1679
  return [4 /*yield*/, sdk.api.chats.deleteOne(chatNull.id)];
1620
- case 31:
1680
+ case 30:
1621
1681
  _a.sent();
1622
1682
  return [4 /*yield*/, wait(undefined, 250)];
1623
- case 32:
1683
+ case 31:
1624
1684
  _a.sent();
1625
1685
  return [4 /*yield*/, async_test("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id); }, { onResult: function (c) { return c.replyId === null; } })];
1626
- case 33:
1686
+ case 32:
1627
1687
  _a.sent();
1628
1688
  return [4 /*yield*/, Promise.all([
1629
1689
  sdk.api.endusers.deleteOne(enduser.id),
1630
1690
  sdk.api.chat_rooms.deleteOne(enduserRoom.id),
1631
1691
  ])];
1632
- case 34:
1692
+ case 33:
1633
1693
  _a.sent();
1634
1694
  return [2 /*return*/];
1635
1695
  }
1636
1696
  });
1637
1697
  }); };
1638
1698
  var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1639
- var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _i, n, ticketAccessible, ticketInaccessible;
1640
- var _c, _d, _e, _f, _g, _h;
1641
- return __generator(this, function (_j) {
1642
- switch (_j.label) {
1699
+ var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _c, _i, n, ticketAccessible, ticketInaccessible;
1700
+ var _d, _e, _f, _g, _h, _j;
1701
+ return __generator(this, function (_k) {
1702
+ switch (_k.label) {
1643
1703
  case 0:
1644
1704
  log_header("Enduser Access");
1645
1705
  email = 'enduser@tellescope.com';
1646
1706
  password = 'testpassword';
1647
1707
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1648
1708
  case 1:
1649
- enduser = _j.sent();
1709
+ enduser = _k.sent();
1650
1710
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'hi' + email })];
1651
1711
  case 2:
1652
- enduser2 = _j.sent();
1712
+ enduser2 = _k.sent();
1653
1713
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1654
1714
  case 3:
1655
- _j.sent();
1715
+ _k.sent();
1656
1716
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1657
1717
  case 4:
1658
- _j.sent();
1718
+ _k.sent();
1659
1719
  return [4 /*yield*/, wait(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
1660
1720
  case 5:
1661
- _j.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1721
+ _k.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1662
1722
  uInfo = enduserSDK.userInfo;
1663
1723
  originalAuthToken = enduserSDK.authToken;
1664
1724
  return [4 /*yield*/, enduserSDK.refresh_session()];
1665
1725
  case 6:
1666
- _j.sent();
1726
+ _k.sent();
1667
1727
  assert(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
1668
1728
  assert(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
1669
1729
  return [4 /*yield*/, async_test("no-enduser-access for different businessId", function () { return enduserSDKDifferentBusinessId.authenticate(email, password); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === "Could not find a corresponding account"; } })];
1670
1730
  case 7:
1671
- _j.sent();
1731
+ _k.sent();
1672
1732
  _loop_1 = function (n) {
1673
1733
  var endpoint, model;
1674
- return __generator(this, function (_k) {
1675
- switch (_k.label) {
1734
+ return __generator(this, function (_l) {
1735
+ switch (_l.label) {
1676
1736
  case 0:
1677
1737
  endpoint = url_safe_path(n);
1678
1738
  model = schema[n];
1679
1739
  if (n === 'webhooks')
1680
1740
  return [2 /*return*/, "continue"]; // no default endpoints implemented
1681
- if (!(!((_c = model === null || model === void 0 ? void 0 : model.enduserActions) === null || _c === void 0 ? void 0 : _c.read) && (model.defaultActions.read || model.customActions.read))) return [3 /*break*/, 2];
1741
+ if (!(!((_d = model === null || model === void 0 ? void 0 : model.enduserActions) === null || _d === void 0 ? void 0 : _d.read) && (model.defaultActions.read || model.customActions.read))) return [3 /*break*/, 2];
1682
1742
  return [4 /*yield*/, async_test("no-enduser-access getOne (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1683
1743
  case 1:
1684
- _k.sent();
1685
- _k.label = 2;
1744
+ _l.sent();
1745
+ _l.label = 2;
1686
1746
  case 2:
1687
- if (!(!((_d = model.enduserActions) === null || _d === void 0 ? void 0 : _d.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1747
+ if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1688
1748
  return [4 /*yield*/, async_test("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1689
1749
  case 3:
1690
- _k.sent();
1691
- _k.label = 4;
1750
+ _l.sent();
1751
+ _l.label = 4;
1692
1752
  case 4:
1693
- if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1753
+ if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1694
1754
  return [4 /*yield*/, async_test("no-enduser-access createOne (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint.substring(0, endpoint.length - 1))); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1695
1755
  case 5:
1696
- _k.sent();
1697
- _k.label = 6;
1756
+ _l.sent();
1757
+ _l.label = 6;
1698
1758
  case 6:
1699
- if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1759
+ if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1700
1760
  return [4 /*yield*/, async_test("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1701
1761
  case 7:
1702
- _k.sent();
1703
- _k.label = 8;
1762
+ _l.sent();
1763
+ _l.label = 8;
1704
1764
  case 8:
1705
- if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1765
+ if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1706
1766
  return [4 /*yield*/, async_test("no-enduser-access update (".concat(endpoint, ")"), function () { return enduserSDK.PATCH("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1707
1767
  case 9:
1708
- _k.sent();
1709
- _k.label = 10;
1768
+ _l.sent();
1769
+ _l.label = 10;
1710
1770
  case 10:
1711
- if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1771
+ if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1712
1772
  return [4 /*yield*/, async_test("no-enduser-access delete (".concat(endpoint, ")"), function () { return enduserSDK.DELETE("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1713
1773
  case 11:
1714
- _k.sent();
1715
- _k.label = 12;
1774
+ _l.sent();
1775
+ _l.label = 12;
1716
1776
  case 12: return [2 /*return*/];
1717
1777
  }
1718
1778
  });
1719
1779
  };
1720
- _a = [];
1721
- for (_b in schema)
1722
- _a.push(_b);
1780
+ _a = schema;
1781
+ _b = [];
1782
+ for (_c in _a)
1783
+ _b.push(_c);
1723
1784
  _i = 0;
1724
- _j.label = 8;
1785
+ _k.label = 8;
1725
1786
  case 8:
1726
- if (!(_i < _a.length)) return [3 /*break*/, 11];
1727
- n = _a[_i];
1787
+ if (!(_i < _b.length)) return [3 /*break*/, 11];
1788
+ _c = _b[_i];
1789
+ if (!(_c in _a)) return [3 /*break*/, 10];
1790
+ n = _c;
1728
1791
  return [5 /*yield**/, _loop_1(n)];
1729
1792
  case 9:
1730
- _j.sent();
1731
- _j.label = 10;
1793
+ _k.sent();
1794
+ _k.label = 10;
1732
1795
  case 10:
1733
1796
  _i++;
1734
1797
  return [3 /*break*/, 8];
1735
1798
  case 11: return [4 /*yield*/, async_test("enduser can update self", function () { return enduserSDK.api.endusers.updateOne(enduser.id, { fname: "Sebastian", lname: "Coates" }); }, { onResult: function (e) { return e.id === enduser.id && e.fname === 'Sebastian' && e.lname === "Coates"; } })];
1736
1799
  case 12:
1737
- _j.sent();
1800
+ _k.sent();
1738
1801
  return [4 /*yield*/, async_test("enduser can't update other enduser", function () { return enduserSDK.api.endusers.updateOne(enduser2.id, { fname: "Shouldn't Work" }); }, { shouldError: true, onError: function (e) { return e.message === "Endusers may only update their own profile"; } })];
1739
1802
  case 13:
1740
- _j.sent();
1803
+ _k.sent();
1741
1804
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
1742
1805
  case 14:
1743
- ticketAccessible = _j.sent();
1806
+ ticketAccessible = _k.sent();
1744
1807
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: PLACEHOLDER_ID, title: "Inaccessible ticket" })];
1745
1808
  case 15:
1746
- ticketInaccessible = _j.sent();
1809
+ ticketInaccessible = _k.sent();
1747
1810
  return [4 /*yield*/, async_test("enduser cannot create ticket for another enduser", function () { return enduserSDK.api.tickets.createOne({ enduserId: sdk.userInfo.id, title: "Error on Creation" }); }, { shouldError: true, onError: function (e) { return !!e.message; } })];
1748
1811
  case 16:
1749
- _j.sent();
1812
+ _k.sent();
1750
1813
  return [4 /*yield*/, async_test("enduser-access default, no access constraints, matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketAccessible.id); }, { onResult: function (t) { return t.id === ticketAccessible.id; } })];
1751
1814
  case 17:
1752
- _j.sent();
1815
+ _k.sent();
1753
1816
  return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, non-matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketInaccessible.id); }, { shouldError: true, onError: function (e) { return e.message.startsWith("Could not find"); } })];
1754
1817
  case 18:
1755
- _j.sent();
1818
+ _k.sent();
1756
1819
  return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, get many", function () { return enduserSDK.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
1757
1820
  case 19:
1758
- _j.sent();
1821
+ _k.sent();
1759
1822
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
1760
1823
  case 20:
1761
- _j.sent();
1824
+ _k.sent();
1762
1825
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
1763
1826
  case 21:
1764
- _j.sent();
1827
+ _k.sent();
1765
1828
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1766
1829
  case 22:
1767
- _j.sent();
1830
+ _k.sent();
1768
1831
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
1769
1832
  case 23:
1770
- _j.sent();
1833
+ _k.sent();
1771
1834
  return [2 /*return*/];
1772
1835
  }
1773
1836
  });
@@ -1849,7 +1912,7 @@ var files_tests = function () { return __awaiter(void 0, void 0, void 0, functio
1849
1912
  ])];
1850
1913
  case 16:
1851
1914
  _c.sent();
1852
- return [4 /*yield*/, wait(undefined, 1500)]; // wait for files to be deleted as side effect
1915
+ return [4 /*yield*/, wait(undefined, 2000)]; // wait for files to be deleted as side effect
1853
1916
  case 17:
1854
1917
  _c.sent(); // wait for files to be deleted as side effect
1855
1918
  return [4 /*yield*/, async_test("Files cleaned up as side effect of deleting enduser", function () { return sdk.api.files.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (fs) { return fs.length === 0; } })];
@@ -2233,7 +2296,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
2233
2296
  return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
2234
2297
  case 16:
2235
2298
  _c.sent();
2236
- return [4 /*yield*/, wait(undefined, 2200)]; // wait for tickets to be automatically created
2299
+ return [4 /*yield*/, wait(undefined, 2000)]; // wait for tickets to be automatically created
2237
2300
  case 17:
2238
2301
  _c.sent(); // wait for tickets to be automatically created
2239
2302
  return [4 /*yield*/, async_test("Tickets automatically created", function () { return sdk.api.tickets.getSome(); }, { onResult: function (tickets) { return (tickets === null || tickets === void 0 ? void 0 : tickets.length) === 2; } })];
@@ -2697,13 +2760,13 @@ var addToJourneyTests = function () { return __awaiter(void 0, void 0, void 0, f
2697
2760
  case 5:
2698
2761
  // add to journey and re-add
2699
2762
  _a.sent();
2700
- return [4 /*yield*/, wait(undefined, 2250)]; // allow onJourneyStart step to trigger
2763
+ return [4 /*yield*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
2701
2764
  case 6:
2702
2765
  _a.sent(); // allow onJourneyStart step to trigger
2703
2766
  return [4 /*yield*/, sdk.api.endusers.add_to_journey({ enduserIds: [enduser.id], journeyId: journey.id })];
2704
2767
  case 7:
2705
2768
  _a.sent();
2706
- return [4 /*yield*/, wait(undefined, 2250)]; // allow onJourneyStart step to trigger
2769
+ return [4 /*yield*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
2707
2770
  case 8:
2708
2771
  _a.sent(); // allow onJourneyStart step to trigger
2709
2772
  return [4 /*yield*/, async_test("Enduser correctly added and re-added", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (es) { return es.length === 4
@@ -4038,15 +4101,15 @@ var tests = {
4038
4101
  integrations: NO_TEST,
4039
4102
  };
4040
4103
  (function () { return __awaiter(void 0, void 0, void 0, function () {
4041
- var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
4042
- var _f, _g;
4043
- return __generator(this, function (_h) {
4044
- switch (_h.label) {
4104
+ var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
4105
+ var _h, _j;
4106
+ return __generator(this, function (_k) {
4107
+ switch (_k.label) {
4045
4108
  case 0:
4046
4109
  log_header("API");
4047
- _h.label = 1;
4110
+ _k.label = 1;
4048
4111
  case 1:
4049
- _h.trys.push([1, 21, , 22]);
4112
+ _k.trys.push([1, 21, , 22]);
4050
4113
  return [4 /*yield*/, Promise.all([
4051
4114
  sdk.authenticate(email, password),
4052
4115
  sdkSub.authenticate(subUserEmail, password),
@@ -4055,64 +4118,64 @@ var tests = {
4055
4118
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
4056
4119
  ])];
4057
4120
  case 2:
4058
- _h.sent();
4121
+ _k.sent();
4059
4122
  return [4 /*yield*/, setup_tests()];
4060
4123
  case 3:
4061
- _h.sent();
4124
+ _k.sent();
4062
4125
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
4063
4126
  case 4:
4064
- _h.sent(); // should come right after setup tests
4127
+ _k.sent(); // should come right after setup tests
4065
4128
  return [4 /*yield*/, sub_organization_enduser_tests()];
4066
4129
  case 5:
4067
- _h.sent();
4130
+ _k.sent();
4068
4131
  return [4 /*yield*/, sub_organization_tests()];
4069
4132
  case 6:
4070
- _h.sent();
4133
+ _k.sent();
4071
4134
  return [4 /*yield*/, self_serve_appointment_booking_tests()];
4072
4135
  case 7:
4073
- _h.sent();
4136
+ _k.sent();
4074
4137
  return [4 /*yield*/, filter_by_date_tests()];
4075
4138
  case 8:
4076
- _h.sent();
4139
+ _k.sent();
4077
4140
  return [4 /*yield*/, generate_user_auth_tests()];
4078
4141
  case 9:
4079
- _h.sent();
4142
+ _k.sent();
4080
4143
  return [4 /*yield*/, role_based_access_tests()];
4081
4144
  case 10:
4082
- _h.sent();
4145
+ _k.sent();
4083
4146
  return [4 /*yield*/, generateEnduserAuthTests()];
4084
4147
  case 11:
4085
- _h.sent();
4148
+ _k.sent();
4086
4149
  return [4 /*yield*/, public_form_tests()];
4087
4150
  case 12:
4088
- _h.sent();
4151
+ _k.sent();
4089
4152
  return [4 /*yield*/, search_tests()];
4090
4153
  case 13:
4091
- _h.sent();
4154
+ _k.sent();
4092
4155
  return [4 /*yield*/, badInputTests()];
4093
4156
  case 14:
4094
- _h.sent();
4157
+ _k.sent();
4095
4158
  return [4 /*yield*/, filterTests()];
4096
4159
  case 15:
4097
- _h.sent();
4160
+ _k.sent();
4098
4161
  return [4 /*yield*/, updatesTests()];
4099
4162
  case 16:
4100
- _h.sent();
4163
+ _k.sent();
4101
4164
  return [4 /*yield*/, threadKeyTests()];
4102
4165
  case 17:
4103
- _h.sent();
4166
+ _k.sent();
4104
4167
  return [4 /*yield*/, enduserAccessTests()];
4105
4168
  case 18:
4106
- _h.sent();
4169
+ _k.sent();
4107
4170
  return [4 /*yield*/, enduser_session_tests()];
4108
4171
  case 19:
4109
- _h.sent();
4172
+ _k.sent();
4110
4173
  return [4 /*yield*/, enduser_redaction_tests()];
4111
4174
  case 20:
4112
- _h.sent();
4175
+ _k.sent();
4113
4176
  return [3 /*break*/, 22];
4114
4177
  case 21:
4115
- err_1 = _h.sent();
4178
+ err_1 = _k.sent();
4116
4179
  console.error("Failed during custom test");
4117
4180
  if (err_1.message && err_1.info) {
4118
4181
  console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
@@ -4123,15 +4186,18 @@ var tests = {
4123
4186
  process.exit(1);
4124
4187
  return [3 /*break*/, 22];
4125
4188
  case 22:
4126
- _a = [];
4127
- for (_b in schema)
4128
- _a.push(_b);
4189
+ _a = schema;
4190
+ _b = [];
4191
+ for (_c in _a)
4192
+ _b.push(_c);
4129
4193
  _i = 0;
4130
- _h.label = 23;
4194
+ _k.label = 23;
4131
4195
  case 23:
4132
- if (!(_i < _a.length)) return [3 /*break*/, 26];
4133
- n = _a[_i];
4134
- returnValidation = (_g = (_f = schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
4196
+ if (!(_i < _b.length)) return [3 /*break*/, 26];
4197
+ _c = _b[_i];
4198
+ if (!(_c in _a)) return [3 /*break*/, 25];
4199
+ n = _c;
4200
+ returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
4135
4201
  return [4 /*yield*/, run_generated_tests({
4136
4202
  queries: sdk.api[n],
4137
4203
  model: schema[n],
@@ -4141,35 +4207,38 @@ var tests = {
4141
4207
  }
4142
4208
  })];
4143
4209
  case 24:
4144
- _h.sent();
4145
- _h.label = 25;
4210
+ _k.sent();
4211
+ _k.label = 25;
4146
4212
  case 25:
4147
4213
  _i++;
4148
4214
  return [3 /*break*/, 23];
4149
4215
  case 26:
4150
- _c = [];
4151
- for (_d in tests)
4152
- _c.push(_d);
4153
- _e = 0;
4154
- _h.label = 27;
4216
+ _d = tests;
4217
+ _e = [];
4218
+ for (_f in _d)
4219
+ _e.push(_f);
4220
+ _g = 0;
4221
+ _k.label = 27;
4155
4222
  case 27:
4156
- if (!(_e < _c.length)) return [3 /*break*/, 32];
4157
- t = _c[_e];
4158
- _h.label = 28;
4223
+ if (!(_g < _e.length)) return [3 /*break*/, 32];
4224
+ _f = _e[_g];
4225
+ if (!(_f in _d)) return [3 /*break*/, 31];
4226
+ t = _f;
4227
+ _k.label = 28;
4159
4228
  case 28:
4160
- _h.trys.push([28, 30, , 31]);
4229
+ _k.trys.push([28, 30, , 31]);
4161
4230
  return [4 /*yield*/, tests[t]()];
4162
4231
  case 29:
4163
- _h.sent();
4232
+ _k.sent();
4164
4233
  return [3 /*break*/, 31];
4165
4234
  case 30:
4166
- err_2 = _h.sent();
4235
+ err_2 = _k.sent();
4167
4236
  console.error("Error running test:");
4168
4237
  console.error(err_2);
4169
4238
  process.exit(1);
4170
4239
  return [3 /*break*/, 31];
4171
4240
  case 31:
4172
- _e++;
4241
+ _g++;
4173
4242
  return [3 /*break*/, 27];
4174
4243
  case 32:
4175
4244
  process.exit();