@tellescope/sdk 1.4.37 → 1.4.38

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 (39) 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 +6 -3
  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.js +1 -1
  12. package/lib/cjs/tests/tests.d.ts.map +1 -1
  13. package/lib/cjs/tests/tests.js +181 -130
  14. package/lib/cjs/tests/tests.js.map +1 -1
  15. package/lib/cjs/tests/webhooks_tests.js +47 -41
  16. package/lib/cjs/tests/webhooks_tests.js.map +1 -1
  17. package/lib/esm/enduser.d.ts +5 -4
  18. package/lib/esm/enduser.d.ts.map +1 -1
  19. package/lib/esm/enduser.js +1 -1
  20. package/lib/esm/public.d.ts +2 -2
  21. package/lib/esm/public.d.ts.map +1 -1
  22. package/lib/esm/sdk.d.ts +10 -6
  23. package/lib/esm/sdk.d.ts.map +1 -1
  24. package/lib/esm/sdk.js +1 -1
  25. package/lib/esm/session.d.ts +2 -3
  26. package/lib/esm/session.d.ts.map +1 -1
  27. package/lib/esm/session.js +2 -2
  28. package/lib/esm/session.js.map +1 -1
  29. package/lib/esm/tests/public_endpoint_tests.js +1 -1
  30. package/lib/esm/tests/socket_tests.js +1 -1
  31. package/lib/esm/tests/tests.d.ts.map +1 -1
  32. package/lib/esm/tests/tests.js +181 -130
  33. package/lib/esm/tests/tests.js.map +1 -1
  34. package/lib/esm/tests/webhooks_tests.js +47 -41
  35. package/lib/esm/tests/webhooks_tests.js.map +1 -1
  36. package/lib/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +8 -8
  38. package/src/sdk.ts +1 -1
  39. package/src/tests/tests.ts +20 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAo9DA,eAAO,MAAM,qBAAqB,qBA8IjC,CAAA;AA4ID,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAmJhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAq+DA,eAAO,MAAM,qBAAqB,qBA8IjC,CAAA;AA4ID,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAmJhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA"}
@@ -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];
@@ -1636,138 +1678,141 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1636
1678
  });
1637
1679
  }); };
1638
1680
  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) {
1681
+ var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _c, _i, n, ticketAccessible, ticketInaccessible;
1682
+ var _d, _e, _f, _g, _h, _j;
1683
+ return __generator(this, function (_k) {
1684
+ switch (_k.label) {
1643
1685
  case 0:
1644
1686
  log_header("Enduser Access");
1645
1687
  email = 'enduser@tellescope.com';
1646
1688
  password = 'testpassword';
1647
1689
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1648
1690
  case 1:
1649
- enduser = _j.sent();
1691
+ enduser = _k.sent();
1650
1692
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'hi' + email })];
1651
1693
  case 2:
1652
- enduser2 = _j.sent();
1694
+ enduser2 = _k.sent();
1653
1695
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1654
1696
  case 3:
1655
- _j.sent();
1697
+ _k.sent();
1656
1698
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1657
1699
  case 4:
1658
- _j.sent();
1700
+ _k.sent();
1659
1701
  return [4 /*yield*/, wait(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
1660
1702
  case 5:
1661
- _j.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1703
+ _k.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1662
1704
  uInfo = enduserSDK.userInfo;
1663
1705
  originalAuthToken = enduserSDK.authToken;
1664
1706
  return [4 /*yield*/, enduserSDK.refresh_session()];
1665
1707
  case 6:
1666
- _j.sent();
1708
+ _k.sent();
1667
1709
  assert(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
1668
1710
  assert(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
1669
1711
  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
1712
  case 7:
1671
- _j.sent();
1713
+ _k.sent();
1672
1714
  _loop_1 = function (n) {
1673
1715
  var endpoint, model;
1674
- return __generator(this, function (_k) {
1675
- switch (_k.label) {
1716
+ return __generator(this, function (_l) {
1717
+ switch (_l.label) {
1676
1718
  case 0:
1677
1719
  endpoint = url_safe_path(n);
1678
1720
  model = schema[n];
1679
1721
  if (n === 'webhooks')
1680
1722
  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];
1723
+ 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
1724
  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
1725
  case 1:
1684
- _k.sent();
1685
- _k.label = 2;
1726
+ _l.sent();
1727
+ _l.label = 2;
1686
1728
  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];
1729
+ if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1688
1730
  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
1731
  case 3:
1690
- _k.sent();
1691
- _k.label = 4;
1732
+ _l.sent();
1733
+ _l.label = 4;
1692
1734
  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];
1735
+ if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1694
1736
  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
1737
  case 5:
1696
- _k.sent();
1697
- _k.label = 6;
1738
+ _l.sent();
1739
+ _l.label = 6;
1698
1740
  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];
1741
+ if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1700
1742
  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
1743
  case 7:
1702
- _k.sent();
1703
- _k.label = 8;
1744
+ _l.sent();
1745
+ _l.label = 8;
1704
1746
  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];
1747
+ if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1706
1748
  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
1749
  case 9:
1708
- _k.sent();
1709
- _k.label = 10;
1750
+ _l.sent();
1751
+ _l.label = 10;
1710
1752
  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];
1753
+ if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1712
1754
  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
1755
  case 11:
1714
- _k.sent();
1715
- _k.label = 12;
1756
+ _l.sent();
1757
+ _l.label = 12;
1716
1758
  case 12: return [2 /*return*/];
1717
1759
  }
1718
1760
  });
1719
1761
  };
1720
- _a = [];
1721
- for (_b in schema)
1722
- _a.push(_b);
1762
+ _a = schema;
1763
+ _b = [];
1764
+ for (_c in _a)
1765
+ _b.push(_c);
1723
1766
  _i = 0;
1724
- _j.label = 8;
1767
+ _k.label = 8;
1725
1768
  case 8:
1726
- if (!(_i < _a.length)) return [3 /*break*/, 11];
1727
- n = _a[_i];
1769
+ if (!(_i < _b.length)) return [3 /*break*/, 11];
1770
+ _c = _b[_i];
1771
+ if (!(_c in _a)) return [3 /*break*/, 10];
1772
+ n = _c;
1728
1773
  return [5 /*yield**/, _loop_1(n)];
1729
1774
  case 9:
1730
- _j.sent();
1731
- _j.label = 10;
1775
+ _k.sent();
1776
+ _k.label = 10;
1732
1777
  case 10:
1733
1778
  _i++;
1734
1779
  return [3 /*break*/, 8];
1735
1780
  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
1781
  case 12:
1737
- _j.sent();
1782
+ _k.sent();
1738
1783
  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
1784
  case 13:
1740
- _j.sent();
1785
+ _k.sent();
1741
1786
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
1742
1787
  case 14:
1743
- ticketAccessible = _j.sent();
1788
+ ticketAccessible = _k.sent();
1744
1789
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: PLACEHOLDER_ID, title: "Inaccessible ticket" })];
1745
1790
  case 15:
1746
- ticketInaccessible = _j.sent();
1791
+ ticketInaccessible = _k.sent();
1747
1792
  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
1793
  case 16:
1749
- _j.sent();
1794
+ _k.sent();
1750
1795
  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
1796
  case 17:
1752
- _j.sent();
1797
+ _k.sent();
1753
1798
  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
1799
  case 18:
1755
- _j.sent();
1800
+ _k.sent();
1756
1801
  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
1802
  case 19:
1758
- _j.sent();
1803
+ _k.sent();
1759
1804
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
1760
1805
  case 20:
1761
- _j.sent();
1806
+ _k.sent();
1762
1807
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
1763
1808
  case 21:
1764
- _j.sent();
1809
+ _k.sent();
1765
1810
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1766
1811
  case 22:
1767
- _j.sent();
1812
+ _k.sent();
1768
1813
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
1769
1814
  case 23:
1770
- _j.sent();
1815
+ _k.sent();
1771
1816
  return [2 /*return*/];
1772
1817
  }
1773
1818
  });
@@ -2233,7 +2278,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
2233
2278
  return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
2234
2279
  case 16:
2235
2280
  _c.sent();
2236
- return [4 /*yield*/, wait(undefined, 2200)]; // wait for tickets to be automatically created
2281
+ return [4 /*yield*/, wait(undefined, 2000)]; // wait for tickets to be automatically created
2237
2282
  case 17:
2238
2283
  _c.sent(); // wait for tickets to be automatically created
2239
2284
  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 +2742,13 @@ var addToJourneyTests = function () { return __awaiter(void 0, void 0, void 0, f
2697
2742
  case 5:
2698
2743
  // add to journey and re-add
2699
2744
  _a.sent();
2700
- return [4 /*yield*/, wait(undefined, 2250)]; // allow onJourneyStart step to trigger
2745
+ return [4 /*yield*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
2701
2746
  case 6:
2702
2747
  _a.sent(); // allow onJourneyStart step to trigger
2703
2748
  return [4 /*yield*/, sdk.api.endusers.add_to_journey({ enduserIds: [enduser.id], journeyId: journey.id })];
2704
2749
  case 7:
2705
2750
  _a.sent();
2706
- return [4 /*yield*/, wait(undefined, 2250)]; // allow onJourneyStart step to trigger
2751
+ return [4 /*yield*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
2707
2752
  case 8:
2708
2753
  _a.sent(); // allow onJourneyStart step to trigger
2709
2754
  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 +4083,15 @@ var tests = {
4038
4083
  integrations: NO_TEST,
4039
4084
  };
4040
4085
  (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) {
4086
+ var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
4087
+ var _h, _j;
4088
+ return __generator(this, function (_k) {
4089
+ switch (_k.label) {
4045
4090
  case 0:
4046
4091
  log_header("API");
4047
- _h.label = 1;
4092
+ _k.label = 1;
4048
4093
  case 1:
4049
- _h.trys.push([1, 21, , 22]);
4094
+ _k.trys.push([1, 21, , 22]);
4050
4095
  return [4 /*yield*/, Promise.all([
4051
4096
  sdk.authenticate(email, password),
4052
4097
  sdkSub.authenticate(subUserEmail, password),
@@ -4055,64 +4100,64 @@ var tests = {
4055
4100
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
4056
4101
  ])];
4057
4102
  case 2:
4058
- _h.sent();
4103
+ _k.sent();
4059
4104
  return [4 /*yield*/, setup_tests()];
4060
4105
  case 3:
4061
- _h.sent();
4106
+ _k.sent();
4062
4107
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
4063
4108
  case 4:
4064
- _h.sent(); // should come right after setup tests
4109
+ _k.sent(); // should come right after setup tests
4065
4110
  return [4 /*yield*/, sub_organization_enduser_tests()];
4066
4111
  case 5:
4067
- _h.sent();
4112
+ _k.sent();
4068
4113
  return [4 /*yield*/, sub_organization_tests()];
4069
4114
  case 6:
4070
- _h.sent();
4115
+ _k.sent();
4071
4116
  return [4 /*yield*/, self_serve_appointment_booking_tests()];
4072
4117
  case 7:
4073
- _h.sent();
4118
+ _k.sent();
4074
4119
  return [4 /*yield*/, filter_by_date_tests()];
4075
4120
  case 8:
4076
- _h.sent();
4121
+ _k.sent();
4077
4122
  return [4 /*yield*/, generate_user_auth_tests()];
4078
4123
  case 9:
4079
- _h.sent();
4124
+ _k.sent();
4080
4125
  return [4 /*yield*/, role_based_access_tests()];
4081
4126
  case 10:
4082
- _h.sent();
4127
+ _k.sent();
4083
4128
  return [4 /*yield*/, generateEnduserAuthTests()];
4084
4129
  case 11:
4085
- _h.sent();
4130
+ _k.sent();
4086
4131
  return [4 /*yield*/, public_form_tests()];
4087
4132
  case 12:
4088
- _h.sent();
4133
+ _k.sent();
4089
4134
  return [4 /*yield*/, search_tests()];
4090
4135
  case 13:
4091
- _h.sent();
4136
+ _k.sent();
4092
4137
  return [4 /*yield*/, badInputTests()];
4093
4138
  case 14:
4094
- _h.sent();
4139
+ _k.sent();
4095
4140
  return [4 /*yield*/, filterTests()];
4096
4141
  case 15:
4097
- _h.sent();
4142
+ _k.sent();
4098
4143
  return [4 /*yield*/, updatesTests()];
4099
4144
  case 16:
4100
- _h.sent();
4145
+ _k.sent();
4101
4146
  return [4 /*yield*/, threadKeyTests()];
4102
4147
  case 17:
4103
- _h.sent();
4148
+ _k.sent();
4104
4149
  return [4 /*yield*/, enduserAccessTests()];
4105
4150
  case 18:
4106
- _h.sent();
4151
+ _k.sent();
4107
4152
  return [4 /*yield*/, enduser_session_tests()];
4108
4153
  case 19:
4109
- _h.sent();
4154
+ _k.sent();
4110
4155
  return [4 /*yield*/, enduser_redaction_tests()];
4111
4156
  case 20:
4112
- _h.sent();
4157
+ _k.sent();
4113
4158
  return [3 /*break*/, 22];
4114
4159
  case 21:
4115
- err_1 = _h.sent();
4160
+ err_1 = _k.sent();
4116
4161
  console.error("Failed during custom test");
4117
4162
  if (err_1.message && err_1.info) {
4118
4163
  console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
@@ -4123,15 +4168,18 @@ var tests = {
4123
4168
  process.exit(1);
4124
4169
  return [3 /*break*/, 22];
4125
4170
  case 22:
4126
- _a = [];
4127
- for (_b in schema)
4128
- _a.push(_b);
4171
+ _a = schema;
4172
+ _b = [];
4173
+ for (_c in _a)
4174
+ _b.push(_c);
4129
4175
  _i = 0;
4130
- _h.label = 23;
4176
+ _k.label = 23;
4131
4177
  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;
4178
+ if (!(_i < _b.length)) return [3 /*break*/, 26];
4179
+ _c = _b[_i];
4180
+ if (!(_c in _a)) return [3 /*break*/, 25];
4181
+ n = _c;
4182
+ returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
4135
4183
  return [4 /*yield*/, run_generated_tests({
4136
4184
  queries: sdk.api[n],
4137
4185
  model: schema[n],
@@ -4141,35 +4189,38 @@ var tests = {
4141
4189
  }
4142
4190
  })];
4143
4191
  case 24:
4144
- _h.sent();
4145
- _h.label = 25;
4192
+ _k.sent();
4193
+ _k.label = 25;
4146
4194
  case 25:
4147
4195
  _i++;
4148
4196
  return [3 /*break*/, 23];
4149
4197
  case 26:
4150
- _c = [];
4151
- for (_d in tests)
4152
- _c.push(_d);
4153
- _e = 0;
4154
- _h.label = 27;
4198
+ _d = tests;
4199
+ _e = [];
4200
+ for (_f in _d)
4201
+ _e.push(_f);
4202
+ _g = 0;
4203
+ _k.label = 27;
4155
4204
  case 27:
4156
- if (!(_e < _c.length)) return [3 /*break*/, 32];
4157
- t = _c[_e];
4158
- _h.label = 28;
4205
+ if (!(_g < _e.length)) return [3 /*break*/, 32];
4206
+ _f = _e[_g];
4207
+ if (!(_f in _d)) return [3 /*break*/, 31];
4208
+ t = _f;
4209
+ _k.label = 28;
4159
4210
  case 28:
4160
- _h.trys.push([28, 30, , 31]);
4211
+ _k.trys.push([28, 30, , 31]);
4161
4212
  return [4 /*yield*/, tests[t]()];
4162
4213
  case 29:
4163
- _h.sent();
4214
+ _k.sent();
4164
4215
  return [3 /*break*/, 31];
4165
4216
  case 30:
4166
- err_2 = _h.sent();
4217
+ err_2 = _k.sent();
4167
4218
  console.error("Error running test:");
4168
4219
  console.error(err_2);
4169
4220
  process.exit(1);
4170
4221
  return [3 /*break*/, 31];
4171
4222
  case 31:
4172
- _e++;
4223
+ _g++;
4173
4224
  return [3 /*break*/, 27];
4174
4225
  case 32:
4175
4226
  process.exit();