@tellescope/sdk 1.74.0 → 1.74.1

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.
@@ -663,139 +663,139 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
663
663
  }); };
664
664
  var generate_user_auth_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
665
665
  var info, externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
666
- return __generator(this, function (_e) {
667
- switch (_e.label) {
666
+ return __generator(this, function (_f) {
667
+ switch (_f.label) {
668
668
  case 0:
669
669
  (0, testing_1.log_header)("Generated User/Enduser authToken");
670
670
  return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: sdk.userInfo.id })];
671
671
  case 1:
672
- info = _e.sent();
672
+ info = _f.sent();
673
673
  sdk.authToken = info.authToken;
674
674
  sdk.userInfo = info.user;
675
675
  externalId = '1029f9v9sjd0as';
676
676
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
677
677
  case 2:
678
- e = _e.sent();
678
+ e = _f.sent();
679
679
  return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: e.id })];
680
680
  case 3:
681
- _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
681
+ _a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
682
682
  if (!enduser)
683
683
  throw new Error("Didn't get enduser when generate_auth_token called");
684
684
  (0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authTokea and get enduser');
685
685
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
686
686
  case 4:
687
- isAuthenticated = (_e.sent()).isAuthenticated;
687
+ isAuthenticated = (_f.sent()).isAuthenticated;
688
688
  (0, testing_1.assert)(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
689
689
  _b = testing_1.assert;
690
690
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
691
691
  case 5:
692
- _b.apply(void 0, [(_e.sent()).isAuthenticated,
692
+ _b.apply(void 0, [(_f.sent()).isAuthenticated,
693
693
  'id omitted results in failed authentication',
694
694
  'id optional for is_authenticated']);
695
695
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
696
696
  case 6:
697
- withDurationResult = _e.sent();
697
+ withDurationResult = _f.sent();
698
698
  (0, testing_1.assert)(!!withDurationResult, 'no result for id with duration', 'id with duration');
699
699
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
700
700
  case 7:
701
- _c = _e.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
701
+ _c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
702
702
  (0, testing_1.assert)(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
703
703
  _d = testing_1.assert;
704
704
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
705
705
  case 8:
706
- _d.apply(void 0, [(_e.sent()).isAuthenticated,
706
+ _d.apply(void 0, [(_f.sent()).isAuthenticated,
707
707
  'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
708
708
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
709
709
  case 9:
710
- withDurationResult = _e.sent();
710
+ withDurationResult = _f.sent();
711
711
  (0, testing_1.assert)(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
712
712
  return [4 /*yield*/, (0, testing_1.async_test)("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
713
713
  case 10:
714
- _e.sent();
714
+ _f.sent();
715
715
  return [4 /*yield*/, (0, testing_1.async_test)("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
716
716
  case 11:
717
- _e.sent();
717
+ _f.sent();
718
718
  return [4 /*yield*/, (0, testing_1.async_test)("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
719
719
  case 12:
720
- _e.sent();
720
+ _f.sent();
721
721
  return [4 /*yield*/, (0, testing_1.async_test)("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
722
722
  case 13:
723
- _e.sent();
723
+ _f.sent();
724
724
  return [4 /*yield*/, (0, testing_1.async_test)("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
725
725
  case 14:
726
- _e.sent();
726
+ _f.sent();
727
727
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
728
728
  case 15:
729
- _e.sent();
729
+ _f.sent();
730
730
  return [2 /*return*/];
731
731
  }
732
732
  });
733
733
  }); };
734
734
  var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
735
735
  var externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
736
- return __generator(this, function (_e) {
737
- switch (_e.label) {
736
+ return __generator(this, function (_f) {
737
+ switch (_f.label) {
738
738
  case 0:
739
739
  (0, testing_1.log_header)("Generated Enduser authToken");
740
740
  externalId = '1029f9v9sjd0as';
741
741
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
742
742
  case 1:
743
- e = _e.sent();
743
+ e = _f.sent();
744
744
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
745
745
  case 2:
746
- _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
746
+ _a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
747
747
  (0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
748
748
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
749
749
  case 3:
750
- isAuthenticated = (_e.sent()).isAuthenticated;
750
+ isAuthenticated = (_f.sent()).isAuthenticated;
751
751
  (0, testing_1.assert)(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
752
752
  _b = testing_1.assert;
753
753
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
754
754
  case 4:
755
- _b.apply(void 0, [(_e.sent()).isAuthenticated,
755
+ _b.apply(void 0, [(_f.sent()).isAuthenticated,
756
756
  'id omitted results in failed authentication',
757
757
  'id optional for is_authenticated']);
758
758
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
759
759
  case 5:
760
- withDurationResult = _e.sent();
760
+ withDurationResult = _f.sent();
761
761
  (0, testing_1.assert)(!!withDurationResult, 'no result for id with duration', 'id with duration');
762
762
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
763
763
  case 6:
764
- _c = _e.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
764
+ _c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
765
765
  (0, testing_1.assert)(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
766
766
  _d = testing_1.assert;
767
767
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
768
768
  case 7:
769
- _d.apply(void 0, [(_e.sent()).isAuthenticated,
769
+ _d.apply(void 0, [(_f.sent()).isAuthenticated,
770
770
  'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
771
771
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
772
772
  case 8:
773
- withDurationResult = _e.sent();
773
+ withDurationResult = _f.sent();
774
774
  (0, testing_1.assert)(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
775
775
  return [4 /*yield*/, (0, testing_1.async_test)("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
776
776
  case 9:
777
- _e.sent();
777
+ _f.sent();
778
778
  return [4 /*yield*/, (0, testing_1.async_test)("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
779
779
  case 10:
780
- _e.sent();
780
+ _f.sent();
781
781
  return [4 /*yield*/, (0, testing_1.async_test)("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
782
782
  case 11:
783
- _e.sent();
783
+ _f.sent();
784
784
  return [4 /*yield*/, (0, testing_1.async_test)("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
785
785
  case 12:
786
- _e.sent();
786
+ _f.sent();
787
787
  return [4 /*yield*/, (0, testing_1.async_test)("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
788
788
  case 13:
789
- _e.sent();
789
+ _f.sent();
790
790
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
791
791
  case 14:
792
- _e.sent();
792
+ _f.sent();
793
793
  return [2 /*return*/];
794
794
  }
795
795
  });
796
796
  }); };
797
797
  var instanceForModel = function (model, i) {
798
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
798
+ var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m;
799
799
  if (i === void 0) { i = 0; }
800
800
  var instance = {};
801
801
  var updates = {};
@@ -804,12 +804,12 @@ var instanceForModel = function (model, i) {
804
804
  if (model.fields[k].readonly)
805
805
  continue;
806
806
  if (((_c = (_b = (_a = model.fields[k]) === null || _a === void 0 ? void 0 : _a.examples) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > i) {
807
- instance[k] = (_e = (_d = model.fields[k]) === null || _d === void 0 ? void 0 : _d.examples) === null || _e === void 0 ? void 0 : _e[i];
808
- if ((_f = model === null || model === void 0 ? void 0 : model.readFilter) === null || _f === void 0 ? void 0 : _f[k]) {
809
- filter[k] = (_h = (_g = model.fields[k]) === null || _g === void 0 ? void 0 : _g.examples) === null || _h === void 0 ? void 0 : _h[i];
807
+ instance[k] = (_f = (_d = model.fields[k]) === null || _d === void 0 ? void 0 : _d.examples) === null || _f === void 0 ? void 0 : _f[i];
808
+ if ((_g = model === null || model === void 0 ? void 0 : model.readFilter) === null || _g === void 0 ? void 0 : _g[k]) {
809
+ filter[k] = (_j = (_h = model.fields[k]) === null || _h === void 0 ? void 0 : _h.examples) === null || _j === void 0 ? void 0 : _j[i];
810
810
  }
811
- if (((_j = model === null || model === void 0 ? void 0 : model.fields) === null || _j === void 0 ? void 0 : _j[k].updatesDisabled) !== true) {
812
- updates[k] = (_l = (_k = model.fields[k]) === null || _k === void 0 ? void 0 : _k.examples) === null || _l === void 0 ? void 0 : _l[i];
811
+ if (((_k = model === null || model === void 0 ? void 0 : model.fields) === null || _k === void 0 ? void 0 : _k[k].updatesDisabled) !== true) {
812
+ updates[k] = (_m = (_l = model.fields[k]) === null || _l === void 0 ? void 0 : _l.examples) === null || _m === void 0 ? void 0 : _m[i];
813
813
  }
814
814
  }
815
815
  }
@@ -820,8 +820,8 @@ var verify_missing_defaults = function (_a) {
820
820
  var queries = _a.queries, model = _a.model, name = _a.name;
821
821
  return __awaiter(void 0, void 0, void 0, function () {
822
822
  var queryForOperation, o, _b, _c, _d, _i;
823
- return __generator(this, function (_e) {
824
- switch (_e.label) {
823
+ return __generator(this, function (_f) {
824
+ switch (_f.label) {
825
825
  case 0:
826
826
  queryForOperation = {
827
827
  create: function () { return queries.createOne({}); },
@@ -836,7 +836,7 @@ var verify_missing_defaults = function (_a) {
836
836
  for (_d in _b)
837
837
  _c.push(_d);
838
838
  _i = 0;
839
- _e.label = 1;
839
+ _f.label = 1;
840
840
  case 1:
841
841
  if (!(_i < _c.length)) return [3 /*break*/, 4];
842
842
  _d = _c[_i];
@@ -846,8 +846,8 @@ var verify_missing_defaults = function (_a) {
846
846
  return [3 /*break*/, 3]; // action is implemented
847
847
  return [4 /*yield*/, (0, testing_1.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'; } })];
848
848
  case 2:
849
- _e.sent();
850
- _e.label = 3;
849
+ _f.sent();
850
+ _f.label = 3;
851
851
  case 3:
852
852
  _i++;
853
853
  return [3 /*break*/, 1];
@@ -1118,21 +1118,21 @@ var journey_tests = function (queries) {
1118
1118
  if (queries === void 0) { queries = sdk.api.journeys; }
1119
1119
  return __awaiter(void 0, void 0, void 0, function () {
1120
1120
  var journey, journey2, updated, fetchAfterDeletion, withAddedState, e1, e2, engagement, es;
1121
- var _a, _b, _c, _d, _e, _f;
1122
- return __generator(this, function (_g) {
1123
- switch (_g.label) {
1121
+ var _a, _b, _c, _d, _f, _g;
1122
+ return __generator(this, function (_h) {
1123
+ switch (_h.label) {
1124
1124
  case 0: return [4 /*yield*/, (0, testing_1.async_test)("create-journey - states missing defaultState", function () { return queries.createOne({ title: 'Error', defaultState: 'default', states: [{ name: 'not-default', priority: 'N/A' }] }); }, { shouldError: true, onError: function (e) { return e.message === 'defaultState does not exist in states'; } })];
1125
1125
  case 1:
1126
- _g.sent();
1126
+ _h.sent();
1127
1127
  return [4 /*yield*/, (0, testing_1.async_test)("create-journey - duplicate states", function () { return queries.createOne({ title: 'Error', defaultState: 'default', states: [{ name: 'default', priority: 'N/A' }, { name: 'default', priority: 'N/A' }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1128
1128
  case 2:
1129
- _g.sent();
1129
+ _h.sent();
1130
1130
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey' })];
1131
1131
  case 3:
1132
- journey = _g.sent();
1132
+ journey = _h.sent();
1133
1133
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey 2' })];
1134
1134
  case 4:
1135
- journey2 = _g.sent();
1135
+ journey2 = _h.sent();
1136
1136
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, {
1137
1137
  states: [
1138
1138
  { name: 'Delete Me 1', priority: 'N/A' },
@@ -1140,89 +1140,89 @@ var journey_tests = function (queries) {
1140
1140
  ]
1141
1141
  })];
1142
1142
  case 5:
1143
- _g.sent();
1143
+ _h.sent();
1144
1144
  return [4 /*yield*/, sdk.api.journeys.delete_states({ id: journey.id, states: ['Delete Me 1', 'Delete Me 2'] })];
1145
1145
  case 6:
1146
- updated = (_g.sent()).updated;
1146
+ updated = (_h.sent()).updated;
1147
1147
  (0, testing_1.assert)(!!updated.id && updated.states.length === 1 && updated.states[0].name === 'New', 'delete states fail on returned update', 'delete states returns updated value');
1148
1148
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1149
1149
  case 7:
1150
- fetchAfterDeletion = _g.sent();
1150
+ fetchAfterDeletion = _h.sent();
1151
1151
  (0, testing_1.assert)(fetchAfterDeletion.states.length === 1 && fetchAfterDeletion.states[0].name === 'New', 'delete states fail', 'delete states worked');
1152
1152
  (0, testing_1.assert)(journey.defaultState === 'New', 'defaultState not set on create', 'journey-create - defaultState initialized');
1153
1153
  (0, testing_1.assert)(journey.states[0].name === 'New', 'defaultState not set on create', 'journey-create - states initialized');
1154
1154
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'ToDuplicate', priority: "N/A" }] })];
1155
1155
  case 8:
1156
- _g.sent();
1156
+ _h.sent();
1157
1157
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1158
1158
  case 9:
1159
- withAddedState = _g.sent();
1159
+ withAddedState = _h.sent();
1160
1160
  (0, testing_1.assert)(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'ToDuplicate'; }) !== undefined, 'new state added', 'journey-update - push state change');
1161
1161
  return [4 /*yield*/, (0, testing_1.async_test)("create-journey - add duplicate state", function () { return sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'ToDuplicate', priority: "N/A" }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1162
1162
  case 10:
1163
- _g.sent();
1163
+ _h.sent();
1164
1164
  return [4 /*yield*/, (0, testing_1.async_test)("create-journey - add duplicate states in update", function () { return sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'DuplicateUpdate', priority: "N/A" }, { name: 'DuplicateUpdate', priority: "N/A" }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1165
1165
  case 11:
1166
- _g.sent();
1166
+ _h.sent();
1167
1167
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { defaultState: 'Added', states: [{ name: 'Added', priority: "N/A" }, { name: "Other", priority: "N/A" }] }, { replaceObjectFields: true })];
1168
1168
  case 12:
1169
- _g.sent();
1169
+ _h.sent();
1170
1170
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1171
1171
  case 13:
1172
- withAddedState = _g.sent();
1172
+ withAddedState = _h.sent();
1173
1173
  (0, testing_1.assert)(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'Added'; }) !== undefined
1174
1174
  && withAddedState.defaultState === 'Added', 'duplicate state not added', 'journey-update - replace states');
1175
1175
  return [4 /*yield*/, (0, testing_1.async_test)("journey-update - states replace with missing default", function () { return queries.updateOne(journey.id, { states: [{ name: 'Not Default', priority: "N/A" }] }, { replaceObjectFields: true }); }, { shouldError: true, onError: function (e) { return e.message === 'defaultState does not exist in states'; } })];
1176
1176
  case 14:
1177
- _g.sent();
1177
+ _h.sent();
1178
1178
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset1@tellescope.com', journeys: (_a = {}, _a[journey.id] = 'Added', _a) })];
1179
1179
  case 15:
1180
- e1 = _g.sent();
1180
+ e1 = _h.sent();
1181
1181
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset2@tellescope.com', journeys: (_b = {}, _b[journey.id] = 'Added', _b[journey2.id] = 'New', _b) })];
1182
1182
  case 16:
1183
- e2 = _g.sent();
1183
+ e2 = _h.sent();
1184
1184
  return [4 /*yield*/, (0, testing_1.async_test)("create-enduser - invalid journey id", function () {
1185
1185
  var _a;
1186
1186
  return sdk.api.endusers.createOne({ email: 'journeyunset3@tellescope.com', journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
1187
1187
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1188
1188
  case 17:
1189
- _g.sent();
1189
+ _h.sent();
1190
1190
  return [4 /*yield*/, (0, testing_1.async_test)("update-enduser - invalid journey id", function () {
1191
1191
  var _a;
1192
1192
  return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
1193
1193
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1194
1194
  case 18:
1195
- _g.sent();
1195
+ _h.sent();
1196
1196
  return [4 /*yield*/, (0, testing_1.async_test)("update-enduser - one invalid journey id", function () {
1197
1197
  var _a;
1198
1198
  return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a[e1.id] = 'Added', _a) });
1199
1199
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1200
1200
  case 19:
1201
- _g.sent();
1201
+ _h.sent();
1202
1202
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[journey.id] = 'Other', _c) })]; // valid state change
1203
1203
  case 20:
1204
- _g.sent(); // valid state change
1204
+ _h.sent(); // valid state change
1205
1205
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_d = {}, _d[journey.id] = 'Added', _d) })]; // change back
1206
1206
  case 21:
1207
- _g.sent(); // change back
1207
+ _h.sent(); // change back
1208
1208
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 25)]; // wait for side effects to add engagement
1209
1209
  case 22:
1210
- _g.sent(); // wait for side effects to add engagement
1210
+ _h.sent(); // wait for side effects to add engagement
1211
1211
  return [4 /*yield*/, sdk.api.engagement_events.getSome()];
1212
1212
  case 23:
1213
- engagement = _g.sent();
1213
+ engagement = _h.sent();
1214
1214
  (0, testing_1.assert)(engagement.filter(function (e) { return e.enduserId === e1.id && e.type === "STATE_CHANGE"; }).length === 2, 'STATE_CHANGE engagement not tracked', 'Update enduser tracks state changes');
1215
- return [4 /*yield*/, sdk.api.endusers.createSome([{ email: "1@tellescope.com", journeys: (_e = {}, _e[journey.id] = 'Added', _e) }, { email: "2@tellescope.com", journeys: (_f = {}, _f[journey.id] = 'Added', _f) }])];
1215
+ return [4 /*yield*/, sdk.api.endusers.createSome([{ email: "1@tellescope.com", journeys: (_f = {}, _f[journey.id] = 'Added', _f) }, { email: "2@tellescope.com", journeys: (_g = {}, _g[journey.id] = 'Added', _g) }])];
1216
1216
  case 24:
1217
- es = (_g.sent()).created;
1217
+ es = (_h.sent()).created;
1218
1218
  return [4 /*yield*/, sdk.api.engagement_events.getSome()];
1219
1219
  case 25:
1220
- engagement = _g.sent();
1220
+ engagement = _h.sent();
1221
1221
  (0, testing_1.assert)(engagement.filter(function (e) { return e.enduserId === es[0].id && e.type === "JOURNEY_SET"; }).length === 1, 'JOURNEY_SET engagement not tracked', 'Create endusers tracks engagement events (1)');
1222
1222
  (0, testing_1.assert)(engagement.filter(function (e) { return e.enduserId === es[1].id && e.type === "JOURNEY_SET"; }).length === 1, 'JOURNEY_SET engagement not tracked', 'Create endusers tracks engagement events (2)');
1223
1223
  return [4 /*yield*/, queries.updateOne(journey.id, { states: [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }] }, { replaceObjectFields: true })];
1224
1224
  case 26:
1225
- _g.sent();
1225
+ _h.sent();
1226
1226
  return [4 /*yield*/, (0, testing_1.async_test)("journey-update - insert new state at front", function () { return queries.getOne(journey.id); }, { onResult: function (j) { return (0, utilities_2.objects_equivalent)(j.states, [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }]); } })
1227
1227
  // removed
1228
1228
  // await async_test(
@@ -1243,7 +1243,7 @@ var journey_tests = function (queries) {
1243
1243
  // )
1244
1244
  ];
1245
1245
  case 27:
1246
- _g.sent();
1246
+ _h.sent();
1247
1247
  // removed
1248
1248
  // await async_test(
1249
1249
  // `journey-updateState`,
@@ -1280,19 +1280,19 @@ var journey_tests = function (queries) {
1280
1280
  // () => sdk.api.endusers.getOne(e2.id),
1281
1281
  // { onResult: e => objects_equivalent(e.journeys, { [journey.id]: 'Updated', [journey2.id]: 'New' })},
1282
1282
  // )
1283
- _g.sent();
1283
+ _h.sent();
1284
1284
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 25)]; // wait for side effects to update endusers
1285
1285
  case 29:
1286
- _g.sent(); // wait for side effects to update endusers
1286
+ _h.sent(); // wait for side effects to update endusers
1287
1287
  return [4 /*yield*/, (0, testing_1.async_test)("journey-delete - corresponding enduser journeys are unset 1", function () { return sdk.api.endusers.getOne(e1.id); }, { onResult: function (e) { return (0, utilities_2.objects_equivalent)(e.journeys, {}); } })];
1288
1288
  case 30:
1289
- _g.sent();
1289
+ _h.sent();
1290
1290
  return [4 /*yield*/, (0, testing_1.async_test)("journey-delete - corresponding enduser journeys are unset, others left", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) {
1291
1291
  var _a;
1292
1292
  return (0, utilities_2.objects_equivalent)(e.journeys, (_a = {}, _a[journey2.id] = 'New', _a));
1293
1293
  } })];
1294
1294
  case 31:
1295
- _g.sent();
1295
+ _h.sent();
1296
1296
  return [2 /*return*/];
1297
1297
  }
1298
1298
  });
@@ -1465,32 +1465,32 @@ var sms_tests = function (queries) {
1465
1465
  var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1466
1466
  var sdk2, email, password, enduser, enduserLoggedIn, room, roomWithMessage, verifyRoomDisplayInfo, emptyRoom, loggedOutEnduser;
1467
1467
  var _a;
1468
- var _b, _c, _d, _e, _f, _g, _h;
1469
- return __generator(this, function (_j) {
1470
- switch (_j.label) {
1468
+ var _b, _c, _d, _f, _g, _h, _j;
1469
+ return __generator(this, function (_k) {
1470
+ switch (_k.label) {
1471
1471
  case 0:
1472
1472
  (0, testing_1.log_header)("Chat Room Tests");
1473
1473
  sdk2 = new sdk_1.Session({ host: host });
1474
1474
  return [4 /*yield*/, sdk2.authenticate(nonAdminEmail, nonAdminPassword)]; // non-admin has access restrictions we want to test
1475
1475
  case 1:
1476
- _j.sent(); // non-admin has access restrictions we want to test
1476
+ _k.sent(); // non-admin has access restrictions we want to test
1477
1477
  email = 'enduser@tellescope.com', password = 'enduserPassword!';
1478
1478
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1479
1479
  case 2:
1480
- enduser = _j.sent();
1480
+ enduser = _k.sent();
1481
1481
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1482
1482
  case 3:
1483
- _j.sent();
1483
+ _k.sent();
1484
1484
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1485
1485
  case 4:
1486
- _j.sent();
1486
+ _k.sent();
1487
1487
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1488
1488
  case 5:
1489
- enduserLoggedIn = _j.sent();
1489
+ enduserLoggedIn = _k.sent();
1490
1490
  (0, testing_1.assert)(new Date(enduserLoggedIn.lastActive).getTime() > Date.now() - 100, 'lastActive fail for enduser', 'lastActive for enduser');
1491
1491
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId], enduserIds: [enduserSDK.userInfo.id] })];
1492
1492
  case 6:
1493
- room = _j.sent();
1493
+ room = _k.sent();
1494
1494
  (0, testing_1.assert)(room.numMessages === 0, 'num mesages no update', 'num messages on creation');
1495
1495
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (not a user)", function () { return sdk2.api.chat_rooms.getOne(room.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })
1496
1496
  // await async_test(
@@ -1500,7 +1500,7 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1500
1500
  // )
1501
1501
  ];
1502
1502
  case 7:
1503
- _j.sent();
1503
+ _k.sent();
1504
1504
  // await async_test(
1505
1505
  // `user_display_info for room (not a user)`,
1506
1506
  // () => sdk2.api.chat_rooms.display_info({ id: room.id }),
@@ -1513,18 +1513,18 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1513
1513
  // () => sdk2.api.chat_rooms.display_info({ id: room.id }),
1514
1514
  // { shouldError: true, onError: e => e.message === "Could not find a record for the given id" }
1515
1515
  // )
1516
- _j.sent();
1516
+ _k.sent();
1517
1517
  return [4 /*yield*/, sdk.api.chat_rooms.getOne(room.id)];
1518
1518
  case 9:
1519
- roomWithMessage = _j.sent();
1519
+ roomWithMessage = _k.sent();
1520
1520
  (0, testing_1.assert)(roomWithMessage.numMessages === 1, 'num mesages no update', 'num messages on send message');
1521
1521
  (0, testing_1.assert)(((_b = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.recentMessageSentAt) !== null && _b !== void 0 ? _b : 0) > Date.now() - 1000, 'recent message timestamp bad', 'recent message timestamp');
1522
1522
  (0, testing_1.assert)(((_d = (_c = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _c === void 0 ? void 0 : _c[userId]) === null || _d === void 0 ? void 0 : _d.unreadCount) === undefined, 'bad unread count for user', 'unread count for user');
1523
- (0, testing_1.assert)(((_f = (_e = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _e === void 0 ? void 0 : _e[enduserSDK.userInfo.id]) === null || _f === void 0 ? void 0 : _f.unreadCount) === 1, 'bad unread count for enduser', 'unread count for enduser');
1523
+ (0, testing_1.assert)(((_g = (_f = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _f === void 0 ? void 0 : _f[enduserSDK.userInfo.id]) === null || _g === void 0 ? void 0 : _g.unreadCount) === 1, 'bad unread count for enduser', 'unread count for enduser');
1524
1524
  return [4 /*yield*/, sdk.api.chat_rooms.updateOne(roomWithMessage.id, { infoForUser: (_a = {}, _a[userId] = { unreadCount: 0 }, _a) })];
1525
1525
  case 10:
1526
- roomWithMessage = _j.sent();
1527
- (0, testing_1.assert)(((_h = (_g = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _g === void 0 ? void 0 : _g[userId]) === null || _h === void 0 ? void 0 : _h.unreadCount) === 0, 'bad reset unread count for user', 'reset unread count for user');
1526
+ roomWithMessage = _k.sent();
1527
+ (0, testing_1.assert)(((_j = (_h = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _h === void 0 ? void 0 : _h[userId]) === null || _j === void 0 ? void 0 : _j.unreadCount) === 0, 'bad reset unread count for user', 'reset unread count for user');
1528
1528
  verifyRoomDisplayInfo = function (info) {
1529
1529
  if (!info)
1530
1530
  return false;
@@ -1557,53 +1557,53 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1557
1557
  };
1558
1558
  return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (for user)", function () { return sdk.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
1559
1559
  case 11:
1560
- _j.sent();
1560
+ _k.sent();
1561
1561
  return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (for enduser)", function () { return enduserSDK.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
1562
1562
  case 12:
1563
- _j.sent();
1563
+ _k.sent();
1564
1564
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1565
1565
  case 13:
1566
- _j.sent();
1566
+ _k.sent();
1567
1567
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
1568
1568
  case 14:
1569
- emptyRoom = _j.sent();
1569
+ emptyRoom = _k.sent();
1570
1570
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (creator can access, even when not in userIds)", function () { return sdk.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1571
1571
  case 15:
1572
- _j.sent();
1572
+ _k.sent();
1573
1573
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (not in empty room)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
1574
1574
  case 16:
1575
- _j.sent();
1575
+ _k.sent();
1576
1576
  return [4 /*yield*/, (0, testing_1.async_test)("join-room", function () { return sdk2.api.chat_rooms.join_room({ id: emptyRoom.id }); }, { onResult: function (_a) {
1577
1577
  var room = _a.room;
1578
1578
  return room.id === emptyRoom.id;
1579
1579
  } })];
1580
1580
  case 17:
1581
- _j.sent();
1581
+ _k.sent();
1582
1582
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (join successful)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1583
1583
  case 18:
1584
- _j.sent();
1584
+ _k.sent();
1585
1585
  return [4 /*yield*/, (0, testing_1.async_test)("create-chat (join successful)", function () { return sdk2.api.chats.createOne({ roomId: emptyRoom.id, message: 'test' }); }, passOnAnyResult)];
1586
1586
  case 19:
1587
- _j.sent();
1587
+ _k.sent();
1588
1588
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat (join successful)", function () { return sdk2.api.chats.getSome({ filter: { roomId: emptyRoom.id } }); }, { onResult: function (r) { return r.length > 0; } })];
1589
1589
  case 20:
1590
- _j.sent();
1590
+ _k.sent();
1591
1591
  return [4 /*yield*/, (0, testing_1.async_test)("[bulk] get-chat-room (join successful)", function () { return sdk2.bulk_load({ load: [{ model: 'chat_rooms' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === emptyRoom.id; }); } })];
1592
1592
  case 21:
1593
- _j.sent();
1593
+ _k.sent();
1594
1594
  return [4 /*yield*/, enduserSDK.logout()];
1595
1595
  case 22:
1596
- _j.sent();
1596
+ _k.sent();
1597
1597
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1598
1598
  case 23:
1599
- loggedOutEnduser = _j.sent();
1599
+ loggedOutEnduser = _k.sent();
1600
1600
  (0, testing_1.assert)(new Date(loggedOutEnduser.lastLogout).getTime() > Date.now() - 100, 'lastLogout fail for enduser', 'lastLogout for enduser');
1601
1601
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1602
1602
  case 24:
1603
- _j.sent();
1603
+ _k.sent();
1604
1604
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
1605
1605
  case 25:
1606
- _j.sent();
1606
+ _k.sent();
1607
1607
  return [2 /*return*/];
1608
1608
  }
1609
1609
  });
@@ -1800,42 +1800,42 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1800
1800
  }); };
1801
1801
  var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1802
1802
  var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _c, _i, n, ticketAccessible, ticketInaccessible;
1803
- var _d, _e, _f, _g, _h, _j;
1804
- return __generator(this, function (_k) {
1805
- switch (_k.label) {
1803
+ var _d, _f, _g, _h, _j, _k;
1804
+ return __generator(this, function (_l) {
1805
+ switch (_l.label) {
1806
1806
  case 0:
1807
1807
  (0, testing_1.log_header)("Enduser Access");
1808
1808
  email = 'enduser@tellescope.com';
1809
1809
  password = 'testpassword';
1810
1810
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1811
1811
  case 1:
1812
- enduser = _k.sent();
1812
+ enduser = _l.sent();
1813
1813
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'hi' + email })];
1814
1814
  case 2:
1815
- enduser2 = _k.sent();
1815
+ enduser2 = _l.sent();
1816
1816
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1817
1817
  case 3:
1818
- _k.sent();
1818
+ _l.sent();
1819
1819
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1820
1820
  case 4:
1821
- _k.sent();
1821
+ _l.sent();
1822
1822
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
1823
1823
  case 5:
1824
- _k.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1824
+ _l.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1825
1825
  uInfo = enduserSDK.userInfo;
1826
1826
  originalAuthToken = enduserSDK.authToken;
1827
1827
  return [4 /*yield*/, enduserSDK.refresh_session()];
1828
1828
  case 6:
1829
- _k.sent();
1829
+ _l.sent();
1830
1830
  (0, testing_1.assert)(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
1831
1831
  (0, testing_1.assert)(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
1832
1832
  return [4 /*yield*/, (0, testing_1.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) === "Login details are invalid"; } })];
1833
1833
  case 7:
1834
- _k.sent();
1834
+ _l.sent();
1835
1835
  _loop_1 = function (n) {
1836
1836
  var endpoint, model;
1837
- return __generator(this, function (_l) {
1838
- switch (_l.label) {
1837
+ return __generator(this, function (_m) {
1838
+ switch (_m.label) {
1839
1839
  case 0:
1840
1840
  endpoint = (0, utilities_2.url_safe_path)(n);
1841
1841
  model = schema_1.schema[n];
@@ -1844,38 +1844,38 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1844
1844
  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];
1845
1845
  return [4 /*yield*/, (0, testing_1.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'; } })];
1846
1846
  case 1:
1847
- _l.sent();
1848
- _l.label = 2;
1847
+ _m.sent();
1848
+ _m.label = 2;
1849
1849
  case 2:
1850
- if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1850
+ if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1851
1851
  return [4 /*yield*/, (0, testing_1.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'; } })];
1852
1852
  case 3:
1853
- _l.sent();
1854
- _l.label = 4;
1853
+ _m.sent();
1854
+ _m.label = 4;
1855
1855
  case 4:
1856
- if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1856
+ if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1857
1857
  return [4 /*yield*/, (0, testing_1.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'; } })];
1858
1858
  case 5:
1859
- _l.sent();
1860
- _l.label = 6;
1859
+ _m.sent();
1860
+ _m.label = 6;
1861
1861
  case 6:
1862
- if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1862
+ if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1863
1863
  return [4 /*yield*/, (0, testing_1.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'; } })];
1864
1864
  case 7:
1865
- _l.sent();
1866
- _l.label = 8;
1865
+ _m.sent();
1866
+ _m.label = 8;
1867
1867
  case 8:
1868
- if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1868
+ if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1869
1869
  return [4 /*yield*/, (0, testing_1.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'; } })];
1870
1870
  case 9:
1871
- _l.sent();
1872
- _l.label = 10;
1871
+ _m.sent();
1872
+ _m.label = 10;
1873
1873
  case 10:
1874
- if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1874
+ if (!(!((_k = model.enduserActions) === null || _k === void 0 ? void 0 : _k.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1875
1875
  return [4 /*yield*/, (0, testing_1.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'; } })];
1876
1876
  case 11:
1877
- _l.sent();
1878
- _l.label = 12;
1877
+ _m.sent();
1878
+ _m.label = 12;
1879
1879
  case 12: return [2 /*return*/];
1880
1880
  }
1881
1881
  });
@@ -1885,7 +1885,7 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1885
1885
  for (_c in _a)
1886
1886
  _b.push(_c);
1887
1887
  _i = 0;
1888
- _k.label = 8;
1888
+ _l.label = 8;
1889
1889
  case 8:
1890
1890
  if (!(_i < _b.length)) return [3 /*break*/, 11];
1891
1891
  _c = _b[_i];
@@ -1893,47 +1893,47 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1893
1893
  n = _c;
1894
1894
  return [5 /*yield**/, _loop_1(n)];
1895
1895
  case 9:
1896
- _k.sent();
1897
- _k.label = 10;
1896
+ _l.sent();
1897
+ _l.label = 10;
1898
1898
  case 10:
1899
1899
  _i++;
1900
1900
  return [3 /*break*/, 8];
1901
1901
  case 11: return [4 /*yield*/, (0, testing_1.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"; } })];
1902
1902
  case 12:
1903
- _k.sent();
1903
+ _l.sent();
1904
1904
  return [4 /*yield*/, (0, testing_1.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"; } })];
1905
1905
  case 13:
1906
- _k.sent();
1906
+ _l.sent();
1907
1907
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
1908
1908
  case 14:
1909
- ticketAccessible = _k.sent();
1909
+ ticketAccessible = _l.sent();
1910
1910
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser2.id, title: "Inaccessible ticket" })];
1911
1911
  case 15:
1912
- ticketInaccessible = _k.sent();
1912
+ ticketInaccessible = _l.sent();
1913
1913
  return [4 /*yield*/, (0, testing_1.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; } })];
1914
1914
  case 16:
1915
- _k.sent();
1915
+ _l.sent();
1916
1916
  return [4 /*yield*/, (0, testing_1.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; } })];
1917
1917
  case 17:
1918
- _k.sent();
1918
+ _l.sent();
1919
1919
  return [4 /*yield*/, (0, testing_1.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"); } })];
1920
1920
  case 18:
1921
- _k.sent();
1921
+ _l.sent();
1922
1922
  return [4 /*yield*/, (0, testing_1.async_test)("no-enduser-access default, no access constraints, get many", function () { return enduserSDK.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
1923
1923
  case 19:
1924
- _k.sent();
1924
+ _l.sent();
1925
1925
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
1926
1926
  case 20:
1927
- _k.sent();
1927
+ _l.sent();
1928
1928
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
1929
1929
  case 21:
1930
- _k.sent();
1930
+ _l.sent();
1931
1931
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1932
1932
  case 22:
1933
- _k.sent();
1933
+ _l.sent();
1934
1934
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
1935
1935
  case 23:
1936
- _k.sent();
1936
+ _l.sent();
1937
1937
  return [2 /*return*/];
1938
1938
  }
1939
1939
  });
@@ -3534,26 +3534,26 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
3534
3534
  }); };
3535
3535
  var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, void 0, function () {
3536
3536
  var enduser, journey1, journey2, journey3, form, field, active, dupActive, inactive, noConditions, equals, equalsFalse, existsTrue, existsFalse, doesNotContainTrue, doesNotContainFalse, containFalse, containTrue, accessCode;
3537
- var _a, _b, _c, _d, _e, _f, _g, _h;
3538
- return __generator(this, function (_j) {
3539
- switch (_j.label) {
3537
+ var _a, _b, _c, _d, _f, _g, _h, _j;
3538
+ return __generator(this, function (_k) {
3539
+ switch (_k.label) {
3540
3540
  case 0:
3541
3541
  (0, testing_1.log_header)("Automation Trigger: Form Response --> Add To Journey");
3542
3542
  return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'test' })];
3543
3543
  case 1:
3544
- enduser = _j.sent();
3544
+ enduser = _k.sent();
3545
3545
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey' })];
3546
3546
  case 2:
3547
- journey1 = _j.sent();
3547
+ journey1 = _k.sent();
3548
3548
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey2' })];
3549
3549
  case 3:
3550
- journey2 = _j.sent();
3550
+ journey2 = _k.sent();
3551
3551
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey3' })];
3552
3552
  case 4:
3553
- journey3 = _j.sent();
3553
+ journey3 = _k.sent();
3554
3554
  return [4 /*yield*/, sdk.api.forms.createOne({ title: 'form' })];
3555
3555
  case 5:
3556
- form = _j.sent();
3556
+ form = _k.sent();
3557
3557
  return [4 /*yield*/, sdk.api.form_fields.createOne({
3558
3558
  formId: form.id,
3559
3559
  type: 'string',
@@ -3566,7 +3566,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3566
3566
  ],
3567
3567
  })];
3568
3568
  case 6:
3569
- field = _j.sent();
3569
+ field = _k.sent();
3570
3570
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3571
3571
  event: { type: 'Form Submitted', info: { formId: form.id } },
3572
3572
  action: { type: 'Add To Journey', info: { journeyId: journey1.id } },
@@ -3574,7 +3574,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3574
3574
  title: "Active"
3575
3575
  })];
3576
3576
  case 7:
3577
- active = _j.sent();
3577
+ active = _k.sent();
3578
3578
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3579
3579
  event: { type: 'Form Submitted', info: { formId: form.id } },
3580
3580
  action: { type: 'Add To Journey', info: { journeyId: journey2.id } },
@@ -3582,7 +3582,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3582
3582
  title: "Dup Active"
3583
3583
  })];
3584
3584
  case 8:
3585
- dupActive = _j.sent();
3585
+ dupActive = _k.sent();
3586
3586
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3587
3587
  event: { type: 'Form Submitted', info: { formId: form.id } },
3588
3588
  action: { type: 'Add To Journey', info: { journeyId: journey3.id } },
@@ -3590,7 +3590,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3590
3590
  title: "Inactive"
3591
3591
  })];
3592
3592
  case 9:
3593
- inactive = _j.sent();
3593
+ inactive = _k.sent();
3594
3594
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3595
3595
  event: {
3596
3596
  type: 'Form Submitted',
@@ -3603,7 +3603,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3603
3603
  title: "No Conditions"
3604
3604
  })];
3605
3605
  case 10:
3606
- noConditions = _j.sent();
3606
+ noConditions = _k.sent();
3607
3607
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3608
3608
  event: {
3609
3609
  type: 'Form Submitted',
@@ -3625,7 +3625,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3625
3625
  title: "Equals"
3626
3626
  })];
3627
3627
  case 11:
3628
- equals = _j.sent();
3628
+ equals = _k.sent();
3629
3629
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3630
3630
  event: {
3631
3631
  type: 'Form Submitted',
@@ -3647,7 +3647,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3647
3647
  title: "Equals False"
3648
3648
  })];
3649
3649
  case 12:
3650
- equalsFalse = _j.sent();
3650
+ equalsFalse = _k.sent();
3651
3651
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3652
3652
  event: {
3653
3653
  type: 'Form Submitted',
@@ -3669,7 +3669,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3669
3669
  title: "Exists true"
3670
3670
  })];
3671
3671
  case 13:
3672
- existsTrue = _j.sent();
3672
+ existsTrue = _k.sent();
3673
3673
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3674
3674
  event: {
3675
3675
  type: 'Form Submitted',
@@ -3691,7 +3691,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3691
3691
  title: "Exists False"
3692
3692
  })];
3693
3693
  case 14:
3694
- existsFalse = _j.sent();
3694
+ existsFalse = _k.sent();
3695
3695
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3696
3696
  event: {
3697
3697
  type: 'Form Submitted',
@@ -3701,11 +3701,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3701
3701
  conditions: {
3702
3702
  "$and": [
3703
3703
  {
3704
- "condition": (_e = {},
3705
- _e[field.id] = {
3704
+ "condition": (_f = {},
3705
+ _f[field.id] = {
3706
3706
  "$doesNotContain": "tri2"
3707
3707
  },
3708
- _e)
3708
+ _f)
3709
3709
  }
3710
3710
  ]
3711
3711
  },
@@ -3715,7 +3715,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3715
3715
  title: "doesNotContainTrue"
3716
3716
  })];
3717
3717
  case 15:
3718
- doesNotContainTrue = _j.sent();
3718
+ doesNotContainTrue = _k.sent();
3719
3719
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3720
3720
  event: {
3721
3721
  type: 'Form Submitted',
@@ -3725,11 +3725,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3725
3725
  conditions: {
3726
3726
  "$and": [
3727
3727
  {
3728
- "condition": (_f = {},
3729
- _f[field.id] = {
3728
+ "condition": (_g = {},
3729
+ _g[field.id] = {
3730
3730
  "$doesNotContain": "tri"
3731
3731
  },
3732
- _f)
3732
+ _g)
3733
3733
  }
3734
3734
  ]
3735
3735
  },
@@ -3739,7 +3739,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3739
3739
  title: "doesNotContainFalse"
3740
3740
  })];
3741
3741
  case 16:
3742
- doesNotContainFalse = _j.sent();
3742
+ doesNotContainFalse = _k.sent();
3743
3743
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3744
3744
  event: {
3745
3745
  type: 'Form Submitted',
@@ -3749,11 +3749,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3749
3749
  conditions: {
3750
3750
  "$and": [
3751
3751
  {
3752
- "condition": (_g = {},
3753
- _g[field.id] = {
3752
+ "condition": (_h = {},
3753
+ _h[field.id] = {
3754
3754
  "$contains": "tri2"
3755
3755
  },
3756
- _g)
3756
+ _h)
3757
3757
  }
3758
3758
  ]
3759
3759
  },
@@ -3763,7 +3763,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3763
3763
  title: "containFalse"
3764
3764
  })];
3765
3765
  case 17:
3766
- containFalse = _j.sent();
3766
+ containFalse = _k.sent();
3767
3767
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3768
3768
  event: {
3769
3769
  type: 'Form Submitted',
@@ -3773,11 +3773,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3773
3773
  conditions: {
3774
3774
  "$and": [
3775
3775
  {
3776
- "condition": (_h = {},
3777
- _h[field.id] = {
3776
+ "condition": (_j = {},
3777
+ _j[field.id] = {
3778
3778
  "$contains": "tri"
3779
3779
  },
3780
- _h)
3780
+ _j)
3781
3781
  }
3782
3782
  ]
3783
3783
  },
@@ -3787,13 +3787,13 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3787
3787
  title: "containTrue"
3788
3788
  })];
3789
3789
  case 18:
3790
- containTrue = _j.sent();
3790
+ containTrue = _k.sent();
3791
3791
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
3792
3792
  enduserId: enduser.id,
3793
3793
  formId: form.id,
3794
3794
  })];
3795
3795
  case 19:
3796
- accessCode = (_j.sent()).accessCode;
3796
+ accessCode = (_k.sent()).accessCode;
3797
3797
  return [4 /*yield*/, sdk.api.form_responses.submit_form_response({
3798
3798
  accessCode: accessCode,
3799
3799
  responses: [
@@ -3810,23 +3810,23 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3810
3810
  // allow triggers to happen
3811
3811
  ];
3812
3812
  case 20:
3813
- _j.sent();
3813
+ _k.sent();
3814
3814
  // allow triggers to happen
3815
3815
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)];
3816
3816
  case 21:
3817
3817
  // allow triggers to happen
3818
- _j.sent();
3818
+ _k.sent();
3819
3819
  return [4 /*yield*/, (0, testing_1.async_test)("Triggers with conditional works", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
3820
- var _a, _b, _c, _d, _e, _f;
3820
+ var _a, _b, _c, _d, _f, _g;
3821
3821
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Equals'))
3822
3822
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('contains'))
3823
3823
  && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('exists'))
3824
3824
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('No Conditions'))
3825
- && ((_e = e.tags) === null || _e === void 0 ? void 0 : _e.includes('doesNotContain'))
3826
- && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('No')));
3825
+ && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('doesNotContain'))
3826
+ && !((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('No')));
3827
3827
  } })];
3828
3828
  case 22:
3829
- _j.sent();
3829
+ _k.sent();
3830
3830
  return [4 /*yield*/, (0, testing_1.async_test)("Automated triggers work", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
3831
3831
  var _a, _b, _c;
3832
3832
  return !!(((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey1.id]) === ''
@@ -3834,7 +3834,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3834
3834
  && ((_c = e.journeys) === null || _c === void 0 ? void 0 : _c[journey3.id]) === undefined);
3835
3835
  } })];
3836
3836
  case 23:
3837
- _j.sent();
3837
+ _k.sent();
3838
3838
  return [4 /*yield*/, Promise.all([
3839
3839
  sdk.api.journeys.deleteOne(journey1.id),
3840
3840
  sdk.api.journeys.deleteOne(journey2.id),
@@ -3855,7 +3855,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3855
3855
  sdk.api.automation_triggers.deleteOne(doesNotContainFalse.id),
3856
3856
  ])];
3857
3857
  case 24:
3858
- _j.sent();
3858
+ _k.sent();
3859
3859
  return [2 /*return*/];
3860
3860
  }
3861
3861
  });
@@ -5470,8 +5470,8 @@ var auto_reply_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5470
5470
  }); };
5471
5471
  var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5472
5472
  var _a, source, destination, otherEnduser, _b, emailToMove, email, _c, eventToMove, event, _d, roomToMove, room, chatToMove, chat;
5473
- return __generator(this, function (_e) {
5474
- switch (_e.label) {
5473
+ return __generator(this, function (_f) {
5474
+ switch (_f.label) {
5475
5475
  case 0:
5476
5476
  (0, testing_1.log_header)("Merge Endusers");
5477
5477
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5480,68 +5480,68 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
5480
5480
  { email: 'other@tellescope.com' },
5481
5481
  ])];
5482
5482
  case 1:
5483
- _a = (_e.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
5483
+ _a = (_f.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
5484
5484
  return [4 /*yield*/, sdk.api.emails.createSome([
5485
5485
  { enduserId: source.id, subject: 'subject', logOnly: true, textContent: 'email' },
5486
5486
  { enduserId: otherEnduser.id, subject: 'subject', logOnly: true, textContent: 'email' },
5487
5487
  ])];
5488
5488
  case 2:
5489
- _b = (_e.sent()).created, emailToMove = _b[0], email = _b[1];
5489
+ _b = (_f.sent()).created, emailToMove = _b[0], email = _b[1];
5490
5490
  return [4 /*yield*/, sdk.api.calendar_events.createSome([
5491
5491
  { attendees: [{ type: 'enduser', id: source.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
5492
5492
  { attendees: [{ type: 'enduser', id: otherEnduser.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
5493
5493
  ])];
5494
5494
  case 3:
5495
- _c = (_e.sent()).created, eventToMove = _c[0], event = _c[1];
5495
+ _c = (_f.sent()).created, eventToMove = _c[0], event = _c[1];
5496
5496
  return [4 /*yield*/, sdk.api.chat_rooms.createSome([
5497
5497
  { enduserIds: [source.id], title: 'title' },
5498
5498
  { enduserIds: [otherEnduser.id], title: 'title' },
5499
5499
  ])];
5500
5500
  case 4:
5501
- _d = (_e.sent()).created, roomToMove = _d[0], room = _d[1];
5501
+ _d = (_f.sent()).created, roomToMove = _d[0], room = _d[1];
5502
5502
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomToMove.id, senderId: source.id, message: 'test' })];
5503
5503
  case 5:
5504
- chatToMove = _e.sent();
5504
+ chatToMove = _f.sent();
5505
5505
  return [4 /*yield*/, sdk.api.chats.createOne({
5506
5506
  roomId: room.id, senderId: otherEnduser.id, message: 'test'
5507
5507
  })];
5508
5508
  case 6:
5509
- chat = _e.sent();
5509
+ chat = _f.sent();
5510
5510
  return [4 /*yield*/, sdk.api.endusers.merge({ sourceEnduserId: source.id, destinationEnduserId: destination.id })];
5511
5511
  case 7:
5512
- _e.sent();
5512
+ _f.sent();
5513
5513
  return [4 /*yield*/, (0, testing_1.async_test)("Source is deleted", function () { return sdk.api.endusers.getOne(source.id); }, handleAnyError)];
5514
5514
  case 8:
5515
- _e.sent();
5515
+ _f.sent();
5516
5516
  return [4 /*yield*/, (0, testing_1.async_test)("Destination merged", function () { return sdk.api.endusers.getOne(destination.id); }, { onResult: function (e) { return (e.email === destination.email
5517
5517
  && e.fname === source.fname
5518
5518
  && e.lname === source.lname); } })];
5519
5519
  case 9:
5520
- _e.sent();
5520
+ _f.sent();
5521
5521
  return [4 /*yield*/, (0, testing_1.async_test)("Other email is unchanged", function () { return sdk.api.emails.getOne(email.id); }, { onResult: function (e) { return e.enduserId === otherEnduser.id; } })];
5522
5522
  case 10:
5523
- _e.sent();
5523
+ _f.sent();
5524
5524
  return [4 /*yield*/, (0, testing_1.async_test)("Other event is unchanged", function () { return sdk.api.calendar_events.getOne(event.id); }, { onResult: function (e) { var _a; return ((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!e.attendees.find(function (e) { return e.id === otherEnduser.id; }); } })];
5525
5525
  case 11:
5526
- _e.sent();
5526
+ _f.sent();
5527
5527
  return [4 /*yield*/, (0, testing_1.async_test)("Other room is unchanged", function () { return sdk.api.chat_rooms.getOne(room.id); }, { onResult: function (e) { var _a, _b; return ((_a = room.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.find(function (id) { return id === otherEnduser.id; })); } })];
5528
5528
  case 12:
5529
- _e.sent();
5529
+ _f.sent();
5530
5530
  return [4 /*yield*/, (0, testing_1.async_test)("Other chat is unchanged", function () { return sdk.api.chats.getOne(chat.id); }, { onResult: function (e) { return e.senderId === otherEnduser.id; } })];
5531
5531
  case 13:
5532
- _e.sent();
5532
+ _f.sent();
5533
5533
  return [4 /*yield*/, (0, testing_1.async_test)("Email moved", function () { return sdk.api.emails.getOne(emailToMove.id); }, { onResult: function (e) { return e.enduserId === destination.id; } })];
5534
5534
  case 14:
5535
- _e.sent();
5535
+ _f.sent();
5536
5536
  return [4 /*yield*/, (0, testing_1.async_test)("Chat moved", function () { return sdk.api.chats.getOne(chatToMove.id); }, { onResult: function (e) { return e.senderId === destination.id; } })];
5537
5537
  case 15:
5538
- _e.sent();
5538
+ _f.sent();
5539
5539
  return [4 /*yield*/, (0, testing_1.async_test)("Room moved", function () { return sdk.api.chat_rooms.getOne(roomToMove.id); }, { onResult: function (e) { var _a, _b; return ((_a = e.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.includes(destination.id)); } })];
5540
5540
  case 16:
5541
- _e.sent();
5541
+ _f.sent();
5542
5542
  return [4 /*yield*/, (0, testing_1.async_test)("Event moved", function () { return sdk.api.calendar_events.getOne(eventToMove.id); }, { onResult: function (e) { var _a; return e.attendees.length === 1 && !!((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.find(function (a) { return a.id === destination.id; })); } })];
5543
5543
  case 17:
5544
- _e.sent();
5544
+ _f.sent();
5545
5545
  return [4 /*yield*/, Promise.all([
5546
5546
  sdk.api.endusers.deleteOne(destination.id),
5547
5547
  sdk.api.endusers.deleteOne(otherEnduser.id),
@@ -5549,7 +5549,7 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
5549
5549
  sdk.api.calendar_events.deleteOne(eventToMove.id),
5550
5550
  ])];
5551
5551
  case 18:
5552
- _e.sent();
5552
+ _f.sent();
5553
5553
  return [2 /*return*/];
5554
5554
  }
5555
5555
  });
@@ -5649,8 +5649,8 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
5649
5649
  var handleRateLimitError = { shouldError: true, onError: function (e) { return e.message === 'Rate limit exceeded'; } };
5650
5650
  var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5651
5651
  var _a, e1, e2, _b, email1, email2, _c, sms1, sms2, _d, email3, email4, email5;
5652
- return __generator(this, function (_e) {
5653
- switch (_e.label) {
5652
+ return __generator(this, function (_f) {
5653
+ switch (_f.label) {
5654
5654
  case 0:
5655
5655
  (0, testing_1.log_header)("Rate Limits");
5656
5656
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5658,7 +5658,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5658
5658
  { fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
5659
5659
  ])];
5660
5660
  case 1:
5661
- _a = (_e.sent()).created, e1 = _a[0], e2 = _a[1];
5661
+ _a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
5662
5662
  return [4 /*yield*/, (0, testing_1.async_test)("Same template email rate limit 1-per-minute", function () { return sdk.api.emails.createSome([
5663
5663
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: constants_1.PLACEHOLDER_ID },
5664
5664
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: constants_1.PLACEHOLDER_ID },
@@ -5666,13 +5666,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5666
5666
  // these should work, as 1 each is safe
5667
5667
  ];
5668
5668
  case 2:
5669
- _e.sent();
5669
+ _f.sent();
5670
5670
  return [4 /*yield*/, sdk.api.emails.createSome([
5671
5671
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: constants_1.PLACEHOLDER_ID },
5672
5672
  { logOnly: true, enduserId: e2.id, subject: 'ratelimit', textContent: 'rate limit', templateId: constants_1.PLACEHOLDER_ID },
5673
5673
  ])];
5674
5674
  case 3:
5675
- _b = (_e.sent()).created, email1 = _b[0], email2 = _b[1];
5675
+ _b = (_f.sent()).created, email1 = _b[0], email2 = _b[1];
5676
5676
  // already has 1 created
5677
5677
  return [4 /*yield*/, (0, testing_1.async_test)("Same enduser rate limit 5 per 5 seconds", function () { return sdk.api.emails.createSome([
5678
5678
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', },
@@ -5683,15 +5683,15 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5683
5683
  ]); }, handleRateLimitError)];
5684
5684
  case 4:
5685
5685
  // already has 1 created
5686
- _e.sent();
5686
+ _f.sent();
5687
5687
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5688
5688
  case 5:
5689
- _e.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5689
+ _f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5690
5690
  return [4 /*yield*/, (0, testing_1.async_test)("Same template email rate limit 1-per-minute after creating", function () { return sdk.api.emails.createOne({
5691
5691
  logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: constants_1.PLACEHOLDER_ID
5692
5692
  }); }, handleRateLimitError)];
5693
5693
  case 6:
5694
- _e.sent();
5694
+ _f.sent();
5695
5695
  return [4 /*yield*/, (0, testing_1.async_test)("Same template sms rate limit 1-per-minute", function () { return sdk.api.sms_messages.createSome([
5696
5696
  { logOnly: true, enduserId: e1.id, templateId: constants_1.PLACEHOLDER_ID, message: 'hi' },
5697
5697
  { logOnly: true, enduserId: e1.id, templateId: constants_1.PLACEHOLDER_ID, message: 'hi' },
@@ -5699,13 +5699,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5699
5699
  // these should work, as 1 each is safe
5700
5700
  ];
5701
5701
  case 7:
5702
- _e.sent();
5702
+ _f.sent();
5703
5703
  return [4 /*yield*/, sdk.api.sms_messages.createSome([
5704
5704
  { logOnly: true, enduserId: e1.id, templateId: constants_1.PLACEHOLDER_ID, message: 'hi' },
5705
5705
  { logOnly: true, enduserId: e2.id, templateId: constants_1.PLACEHOLDER_ID, message: 'hi' },
5706
5706
  ])];
5707
5707
  case 8:
5708
- _c = (_e.sent()).created, sms1 = _c[0], sms2 = _c[1];
5708
+ _c = (_f.sent()).created, sms1 = _c[0], sms2 = _c[1];
5709
5709
  // already has 1 created, so 3 new should error (4 > 3)
5710
5710
  return [4 /*yield*/, (0, testing_1.async_test)("Same enduser sms rate limit 3 per 3 seconds", function () { return sdk.api.sms_messages.createSome([
5711
5711
  { logOnly: true, enduserId: e1.id, message: 'hi' },
@@ -5714,24 +5714,24 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5714
5714
  ]); }, handleRateLimitError)];
5715
5715
  case 9:
5716
5716
  // already has 1 created, so 3 new should error (4 > 3)
5717
- _e.sent();
5717
+ _f.sent();
5718
5718
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5719
5719
  case 10:
5720
- _e.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5720
+ _f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5721
5721
  return [4 /*yield*/, (0, testing_1.async_test)("Same template sms rate limit 1-per-minute after creating", function () { return sdk.api.sms_messages.createOne({
5722
5722
  logOnly: true, enduserId: e2.id, templateId: constants_1.PLACEHOLDER_ID, message: 'hi'
5723
5723
  }); }, handleRateLimitError)
5724
5724
  // these should work, as they do not have the same template
5725
5725
  ];
5726
5726
  case 11:
5727
- _e.sent();
5727
+ _f.sent();
5728
5728
  return [4 /*yield*/, sdk.api.emails.createSome([
5729
5729
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5730
5730
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5731
5731
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5732
5732
  ])];
5733
5733
  case 12:
5734
- _d = (_e.sent()).created, email3 = _d[0], email4 = _d[1], email5 = _d[2];
5734
+ _d = (_f.sent()).created, email3 = _d[0], email4 = _d[1], email5 = _d[2];
5735
5735
  return [4 /*yield*/, Promise.all([
5736
5736
  sdk.api.endusers.deleteOne(e1.id),
5737
5737
  sdk.api.endusers.deleteOne(e2.id),
@@ -5744,7 +5744,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5744
5744
  sdk.api.sms_messages.deleteOne(sms2.id),
5745
5745
  ])];
5746
5746
  case 13:
5747
- _e.sent();
5747
+ _f.sent();
5748
5748
  return [2 /*return*/];
5749
5749
  }
5750
5750
  });
@@ -5752,8 +5752,8 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5752
5752
  var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5753
5753
  var _a, e1, e2, _b, jRemove, jDontRemove, removeStep1, removeStep2, dontRemoveStep1, dontRemoveStep2, room;
5754
5754
  var _c, _d;
5755
- return __generator(this, function (_e) {
5756
- switch (_e.label) {
5755
+ return __generator(this, function (_f) {
5756
+ switch (_f.label) {
5757
5757
  case 0:
5758
5758
  (0, testing_1.log_header)("Remove From Journey (Incoming Comms)");
5759
5759
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5761,56 +5761,56 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5761
5761
  { fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
5762
5762
  ])];
5763
5763
  case 1:
5764
- _a = (_e.sent()).created, e1 = _a[0], e2 = _a[1];
5764
+ _a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
5765
5765
  return [4 /*yield*/, sdk.api.journeys.createSome([
5766
5766
  { title: "j1", onIncomingEnduserCommunication: 'Remove' },
5767
5767
  { title: "j2" },
5768
5768
  ])];
5769
5769
  case 2:
5770
- _b = (_e.sent()).created, jRemove = _b[0], jDontRemove = _b[1];
5770
+ _b = (_f.sent()).created, jRemove = _b[0], jDontRemove = _b[1];
5771
5771
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5772
5772
  journeyId: jRemove.id,
5773
5773
  events: [{ type: 'onJourneyStart', info: {} }],
5774
5774
  action: { type: 'setEnduserStatus', info: { status: 'Started' } },
5775
5775
  })];
5776
5776
  case 3:
5777
- removeStep1 = _e.sent();
5777
+ removeStep1 = _f.sent();
5778
5778
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5779
5779
  journeyId: jRemove.id,
5780
5780
  events: [{ type: 'afterAction', info: { automationStepId: removeStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
5781
5781
  action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
5782
5782
  })];
5783
5783
  case 4:
5784
- removeStep2 = _e.sent();
5784
+ removeStep2 = _f.sent();
5785
5785
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5786
5786
  journeyId: jDontRemove.id,
5787
5787
  events: [{ type: 'onJourneyStart', info: {} }],
5788
5788
  action: { type: 'setEnduserStatus', info: { status: 'Started' } },
5789
5789
  })];
5790
5790
  case 5:
5791
- dontRemoveStep1 = _e.sent();
5791
+ dontRemoveStep1 = _f.sent();
5792
5792
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5793
5793
  journeyId: jDontRemove.id,
5794
5794
  events: [{ type: 'afterAction', info: { automationStepId: dontRemoveStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
5795
5795
  action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
5796
5796
  })];
5797
5797
  case 6:
5798
- dontRemoveStep2 = _e.sent();
5798
+ dontRemoveStep2 = _f.sent();
5799
5799
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[jRemove.id] = '', _c[jDontRemove.id] = '', _c) })];
5800
5800
  case 7:
5801
- _e.sent();
5801
+ _f.sent();
5802
5802
  return [4 /*yield*/, sdk.api.endusers.updateOne(e2.id, { journeys: (_d = {}, _d[jRemove.id] = '', _d[jDontRemove.id] = '', _d) })];
5803
5803
  case 8:
5804
- _e.sent();
5804
+ _f.sent();
5805
5805
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 100)];
5806
5806
  case 9:
5807
- _e.sent();
5807
+ _f.sent();
5808
5808
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
5809
5809
  case 10:
5810
- room = _e.sent();
5810
+ room = _f.sent();
5811
5811
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })];
5812
5812
  case 11:
5813
- _e.sent();
5813
+ _f.sent();
5814
5814
  return [4 /*yield*/, (0, testing_1.async_test)("Appropriate Automated Actions are cancelled on incoming message", function () { return pollForResults(sdk.api.automated_actions.getSome, function (actions) { return (!!actions.find(function (a) {
5815
5815
  return a.journeyId === jRemove.id
5816
5816
  && a.automationStepId === removeStep1.id
@@ -5836,10 +5836,10 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5836
5836
  && a.status === 'active';
5837
5837
  })); }, 25, 400); }, passOnAnyResult)];
5838
5838
  case 12:
5839
- _e.sent();
5839
+ _f.sent();
5840
5840
  return [4 /*yield*/, sdk.api.journeys.handle_incoming_communication({ enduserId: e2.id })];
5841
5841
  case 13:
5842
- _e.sent();
5842
+ _f.sent();
5843
5843
  return [4 /*yield*/, (0, testing_1.async_test)("handle_incoming_communication test for other enduser", function () { return pollForResults(sdk.api.automated_actions.getSome, function (actions) { return (!!actions.find(function (a) {
5844
5844
  return a.journeyId === jRemove.id
5845
5845
  && a.automationStepId === removeStep1.id
@@ -5847,7 +5847,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5847
5847
  && a.status === 'cancelled';
5848
5848
  })); }, 100, 25); }, passOnAnyResult)];
5849
5849
  case 14:
5850
- _e.sent();
5850
+ _f.sent();
5851
5851
  return [4 /*yield*/, Promise.all([
5852
5852
  sdk.api.endusers.deleteOne(e1.id),
5853
5853
  sdk.api.endusers.deleteOne(e2.id),
@@ -5856,7 +5856,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5856
5856
  sdk.api.chat_rooms.deleteOne(room.id),
5857
5857
  ])];
5858
5858
  case 15:
5859
- _e.sent();
5859
+ _f.sent();
5860
5860
  return [2 /*return*/];
5861
5861
  }
5862
5862
  });
@@ -7563,11 +7563,11 @@ var ticket_reminder_tests = function () { return __awaiter(void 0, void 0, void
7563
7563
  case 14:
7564
7564
  _a.sent();
7565
7565
  return [4 /*yield*/, (0, testing_1.async_test)("Reminder processed after delay", function () { return pollForResults(function () { return sdk.api.tickets.getOne(tToRemind.id); }, function (t) {
7566
- var _a, _b, _c, _d, _e, _f;
7566
+ var _a, _b, _c, _d, _f, _g;
7567
7567
  return (((_b = (_a = t.reminders) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.didRemind) === true
7568
7568
  && t.nextReminderInMS === -1
7569
7569
  && ((_d = (_c = t.reminders) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.didRemind) === true
7570
- && ((_f = (_e = t.reminders) === null || _e === void 0 ? void 0 : _e.filter(function (r) { return r.didRemind; })) === null || _f === void 0 ? void 0 : _f.length) === 2);
7570
+ && ((_g = (_f = t.reminders) === null || _f === void 0 ? void 0 : _f.filter(function (r) { return r.didRemind; })) === null || _g === void 0 ? void 0 : _g.length) === 2);
7571
7571
  }, 100, 50); }, passOnAnyResult)
7572
7572
  // cleanup
7573
7573
  ];
@@ -7583,26 +7583,67 @@ var ticket_reminder_tests = function () { return __awaiter(void 0, void 0, void
7583
7583
  });
7584
7584
  }); };
7585
7585
  exports.ticket_reminder_tests = ticket_reminder_tests;
7586
+ var bulk_read_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7587
+ var numEndusers, endusers, _i, endusers_1, e;
7588
+ return __generator(this, function (_a) {
7589
+ switch (_a.label) {
7590
+ case 0:
7591
+ (0, testing_1.log_header)("Bulk Read (ID-lookup) Tests");
7592
+ numEndusers = 101;
7593
+ return [4 /*yield*/, sdk.api.endusers.createSome(Array.from(Array(numEndusers).keys()).map(function () { return 0; }).map(function () { return ({}); }))];
7594
+ case 1:
7595
+ endusers = (_a.sent()).created;
7596
+ return [4 /*yield*/, (0, testing_1.async_test)("bulk id lookup isn't limited to 100 (default for backend)", function () { return sdk.api.endusers.getByIds({ ids: endusers.map(function (e) { return e.id; }) }); }, { onResult: function (result) { return (result.matches.length === numEndusers
7597
+ && result.matches.filter(function (e) { return endusers.find(function (_e) { return _e.id === e.id; }); }).length === result.matches.length); } })];
7598
+ case 2:
7599
+ _a.sent();
7600
+ return [4 /*yield*/, (0, testing_1.async_test)("bulk id lookup limited to 1000 (success)", function () { return sdk.api.endusers.getByIds({ ids: Array.from(Array(1000).keys()).map(function () { return endusers[0].id; }) }); }, passOnAnyResult)];
7601
+ case 3:
7602
+ _a.sent();
7603
+ return [4 /*yield*/, (0, testing_1.async_test)("bulk id lookup limited to 1000", function () { return sdk.api.endusers.getByIds({ ids: Array.from(Array(1001).keys()).map(function () { return endusers[0].id; }) }); }, {
7604
+ shouldError: true,
7605
+ onError: function (e) { return e.message === 'Error parsing field ids: Arrays should not contain more than 1000 elements'; }
7606
+ })
7607
+ // cleanup
7608
+ ];
7609
+ case 4:
7610
+ _a.sent();
7611
+ _i = 0, endusers_1 = endusers;
7612
+ _a.label = 5;
7613
+ case 5:
7614
+ if (!(_i < endusers_1.length)) return [3 /*break*/, 8];
7615
+ e = endusers_1[_i];
7616
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(e.id)];
7617
+ case 6:
7618
+ _a.sent();
7619
+ _a.label = 7;
7620
+ case 7:
7621
+ _i++;
7622
+ return [3 /*break*/, 5];
7623
+ case 8: return [2 /*return*/];
7624
+ }
7625
+ });
7626
+ }); };
7586
7627
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7587
- var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
7588
- var _h, _j;
7589
- return __generator(this, function (_k) {
7590
- switch (_k.label) {
7628
+ var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
7629
+ var _j, _k;
7630
+ return __generator(this, function (_l) {
7631
+ switch (_l.label) {
7591
7632
  case 0:
7592
7633
  (0, testing_1.log_header)("API");
7593
7634
  return [4 /*yield*/, (0, testing_1.async_test)("email-image tracking endpoint is live", function () { return axios_1.default.get('http://localhost:8080/email-image/'); }, { onResult: function (result) { return result.data === TRACK_OPEN_IMAGE.toString('utf-8'); } })];
7594
7635
  case 1:
7595
- _k.sent();
7596
- _k.label = 2;
7636
+ _l.sent();
7637
+ _l.label = 2;
7597
7638
  case 2:
7598
- _k.trys.push([2, 44, , 45]);
7639
+ _l.trys.push([2, 45, , 46]);
7599
7640
  (0, exports.form_conditional_logic_tests)();
7600
7641
  return [4 /*yield*/, test_weighted_round_robin()];
7601
7642
  case 3:
7602
- _k.sent();
7643
+ _l.sent();
7603
7644
  return [4 /*yield*/, validate_schema()];
7604
7645
  case 4:
7605
- _k.sent();
7646
+ _l.sent();
7606
7647
  return [4 /*yield*/, Promise.all([
7607
7648
  sdk.authenticate(email, password),
7608
7649
  sdkSub.authenticate(subUserEmail, password),
@@ -7613,128 +7654,131 @@ exports.ticket_reminder_tests = ticket_reminder_tests;
7613
7654
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7614
7655
  ];
7615
7656
  case 5:
7616
- _k.sent();
7657
+ _l.sent();
7617
7658
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7618
7659
  return [4 /*yield*/, (0, testing_1.async_test)("count exists",
7619
7660
  // @ts-ignore
7620
7661
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
7621
7662
  case 6:
7622
7663
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7623
- _k.sent();
7664
+ _l.sent();
7624
7665
  return [4 /*yield*/, (0, testing_1.async_test)("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: constants_1.PLACEHOLDER_ID }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === 'Could not find a record for the given id'; } })];
7625
7666
  case 7:
7626
- _k.sent();
7667
+ _l.sent();
7627
7668
  return [4 /*yield*/, mfa_tests()];
7628
7669
  case 8:
7629
- _k.sent();
7670
+ _l.sent();
7630
7671
  return [4 /*yield*/, setup_tests()];
7631
7672
  case 9:
7632
- _k.sent();
7673
+ _l.sent();
7633
7674
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7634
7675
  case 10:
7635
- _k.sent(); // should come right after setup tests
7636
- return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
7676
+ _l.sent(); // should come right after setup tests
7677
+ return [4 /*yield*/, bulk_read_tests()];
7637
7678
  case 11:
7638
- _k.sent();
7639
- return [4 /*yield*/, enduser_access_tags_tests()];
7679
+ _l.sent();
7680
+ return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
7640
7681
  case 12:
7641
- _k.sent();
7642
- return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7682
+ _l.sent();
7683
+ return [4 /*yield*/, enduser_access_tags_tests()];
7643
7684
  case 13:
7644
- _k.sent();
7645
- return [4 /*yield*/, unique_strings_tests()];
7685
+ _l.sent();
7686
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7646
7687
  case 14:
7647
- _k.sent();
7648
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7688
+ _l.sent();
7689
+ return [4 /*yield*/, unique_strings_tests()];
7649
7690
  case 15:
7650
- _k.sent();
7651
- return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7691
+ _l.sent();
7692
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
7652
7693
  case 16:
7653
- _k.sent();
7654
- return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7694
+ _l.sent();
7695
+ return [4 /*yield*/, (0, exports.alternate_phones_tests)()];
7655
7696
  case 17:
7656
- _k.sent();
7657
- return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7697
+ _l.sent();
7698
+ return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
7658
7699
  case 18:
7659
- _k.sent();
7660
- return [4 /*yield*/, field_equals_trigger_tests()];
7700
+ _l.sent();
7701
+ return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
7661
7702
  case 19:
7662
- _k.sent();
7663
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7703
+ _l.sent();
7704
+ return [4 /*yield*/, field_equals_trigger_tests()];
7664
7705
  case 20:
7665
- _k.sent();
7666
- return [4 /*yield*/, role_based_access_tests()];
7706
+ _l.sent();
7707
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7667
7708
  case 21:
7668
- _k.sent();
7669
- return [4 /*yield*/, automation_trigger_tests()];
7709
+ _l.sent();
7710
+ return [4 /*yield*/, role_based_access_tests()];
7670
7711
  case 22:
7671
- _k.sent();
7672
- return [4 /*yield*/, enduser_session_tests()];
7712
+ _l.sent();
7713
+ return [4 /*yield*/, automation_trigger_tests()];
7673
7714
  case 23:
7674
- _k.sent();
7675
- return [4 /*yield*/, nextReminderInMS_tests()];
7715
+ _l.sent();
7716
+ return [4 /*yield*/, enduser_session_tests()];
7676
7717
  case 24:
7677
- _k.sent();
7678
- return [4 /*yield*/, search_tests()];
7718
+ _l.sent();
7719
+ return [4 /*yield*/, nextReminderInMS_tests()];
7679
7720
  case 25:
7680
- _k.sent();
7681
- return [4 /*yield*/, wait_for_trigger_tests()];
7721
+ _l.sent();
7722
+ return [4 /*yield*/, search_tests()];
7682
7723
  case 26:
7683
- _k.sent();
7684
- return [4 /*yield*/, pdf_generation()];
7724
+ _l.sent();
7725
+ return [4 /*yield*/, wait_for_trigger_tests()];
7685
7726
  case 27:
7686
- _k.sent();
7687
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7727
+ _l.sent();
7728
+ return [4 /*yield*/, pdf_generation()];
7688
7729
  case 28:
7689
- _k.sent();
7690
- return [4 /*yield*/, rate_limit_tests()];
7730
+ _l.sent();
7731
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7691
7732
  case 29:
7692
- _k.sent();
7693
- return [4 /*yield*/, merge_enduser_tests()];
7733
+ _l.sent();
7734
+ return [4 /*yield*/, rate_limit_tests()];
7694
7735
  case 30:
7695
- _k.sent();
7696
- return [4 /*yield*/, auto_reply_tests()];
7736
+ _l.sent();
7737
+ return [4 /*yield*/, merge_enduser_tests()];
7697
7738
  case 31:
7698
- _k.sent();
7699
- return [4 /*yield*/, sub_organization_enduser_tests()];
7739
+ _l.sent();
7740
+ return [4 /*yield*/, auto_reply_tests()];
7700
7741
  case 32:
7701
- _k.sent();
7702
- return [4 /*yield*/, sub_organization_tests()];
7742
+ _l.sent();
7743
+ return [4 /*yield*/, sub_organization_enduser_tests()];
7703
7744
  case 33:
7704
- _k.sent();
7705
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
7745
+ _l.sent();
7746
+ return [4 /*yield*/, sub_organization_tests()];
7706
7747
  case 34:
7707
- _k.sent();
7708
- return [4 /*yield*/, generate_user_auth_tests()];
7748
+ _l.sent();
7749
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
7709
7750
  case 35:
7710
- _k.sent();
7711
- return [4 /*yield*/, generateEnduserAuthTests()];
7751
+ _l.sent();
7752
+ return [4 /*yield*/, generate_user_auth_tests()];
7712
7753
  case 36:
7713
- _k.sent();
7714
- return [4 /*yield*/, public_form_tests()];
7754
+ _l.sent();
7755
+ return [4 /*yield*/, generateEnduserAuthTests()];
7715
7756
  case 37:
7716
- _k.sent();
7717
- return [4 /*yield*/, badInputTests()];
7757
+ _l.sent();
7758
+ return [4 /*yield*/, public_form_tests()];
7718
7759
  case 38:
7719
- _k.sent();
7720
- return [4 /*yield*/, filterTests()];
7760
+ _l.sent();
7761
+ return [4 /*yield*/, badInputTests()];
7721
7762
  case 39:
7722
- _k.sent();
7723
- return [4 /*yield*/, updatesTests()];
7763
+ _l.sent();
7764
+ return [4 /*yield*/, filterTests()];
7724
7765
  case 40:
7725
- _k.sent();
7726
- return [4 /*yield*/, threadKeyTests()];
7766
+ _l.sent();
7767
+ return [4 /*yield*/, updatesTests()];
7727
7768
  case 41:
7728
- _k.sent();
7729
- return [4 /*yield*/, enduserAccessTests()];
7769
+ _l.sent();
7770
+ return [4 /*yield*/, threadKeyTests()];
7730
7771
  case 42:
7731
- _k.sent();
7732
- return [4 /*yield*/, enduser_redaction_tests()];
7772
+ _l.sent();
7773
+ return [4 /*yield*/, enduserAccessTests()];
7733
7774
  case 43:
7734
- _k.sent();
7735
- return [3 /*break*/, 45];
7775
+ _l.sent();
7776
+ return [4 /*yield*/, enduser_redaction_tests()];
7736
7777
  case 44:
7737
- err_1 = _k.sent();
7778
+ _l.sent();
7779
+ return [3 /*break*/, 46];
7780
+ case 45:
7781
+ err_1 = _l.sent();
7738
7782
  console.error("Failed during custom test");
7739
7783
  if (err_1.message && err_1.info) {
7740
7784
  console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
@@ -7743,20 +7787,20 @@ exports.ticket_reminder_tests = ticket_reminder_tests;
7743
7787
  console.error(err_1);
7744
7788
  }
7745
7789
  process.exit(1);
7746
- return [3 /*break*/, 45];
7747
- case 45:
7790
+ return [3 /*break*/, 46];
7791
+ case 46:
7748
7792
  _a = schema_1.schema;
7749
7793
  _b = [];
7750
7794
  for (_c in _a)
7751
7795
  _b.push(_c);
7752
7796
  _i = 0;
7753
- _k.label = 46;
7754
- case 46:
7755
- if (!(_i < _b.length)) return [3 /*break*/, 49];
7797
+ _l.label = 47;
7798
+ case 47:
7799
+ if (!(_i < _b.length)) return [3 /*break*/, 50];
7756
7800
  _c = _b[_i];
7757
- if (!(_c in _a)) return [3 /*break*/, 48];
7801
+ if (!(_c in _a)) return [3 /*break*/, 49];
7758
7802
  n = _c;
7759
- returnValidation = (_j = (_h = schema_1.schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
7803
+ returnValidation = (_k = (_j = schema_1.schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
7760
7804
  return [4 /*yield*/, run_generated_tests({
7761
7805
  queries: sdk.api[n],
7762
7806
  model: schema_1.schema[n],
@@ -7765,41 +7809,41 @@ exports.ticket_reminder_tests = ticket_reminder_tests;
7765
7809
  create: returnValidation // ModelFields<ClientModel>,
7766
7810
  }
7767
7811
  })];
7768
- case 47:
7769
- _k.sent();
7770
- _k.label = 48;
7771
7812
  case 48:
7772
- _i++;
7773
- return [3 /*break*/, 46];
7813
+ _l.sent();
7814
+ _l.label = 49;
7774
7815
  case 49:
7775
- _d = tests;
7776
- _e = [];
7777
- for (_f in _d)
7778
- _e.push(_f);
7779
- _g = 0;
7780
- _k.label = 50;
7816
+ _i++;
7817
+ return [3 /*break*/, 47];
7781
7818
  case 50:
7782
- if (!(_g < _e.length)) return [3 /*break*/, 55];
7783
- _f = _e[_g];
7784
- if (!(_f in _d)) return [3 /*break*/, 54];
7785
- t = _f;
7786
- _k.label = 51;
7819
+ _d = tests;
7820
+ _f = [];
7821
+ for (_g in _d)
7822
+ _f.push(_g);
7823
+ _h = 0;
7824
+ _l.label = 51;
7787
7825
  case 51:
7788
- _k.trys.push([51, 53, , 54]);
7789
- return [4 /*yield*/, tests[t]()];
7826
+ if (!(_h < _f.length)) return [3 /*break*/, 56];
7827
+ _g = _f[_h];
7828
+ if (!(_g in _d)) return [3 /*break*/, 55];
7829
+ t = _g;
7830
+ _l.label = 52;
7790
7831
  case 52:
7791
- _k.sent();
7792
- return [3 /*break*/, 54];
7832
+ _l.trys.push([52, 54, , 55]);
7833
+ return [4 /*yield*/, tests[t]()];
7793
7834
  case 53:
7794
- err_2 = _k.sent();
7835
+ _l.sent();
7836
+ return [3 /*break*/, 55];
7837
+ case 54:
7838
+ err_2 = _l.sent();
7795
7839
  console.error("Error running test:");
7796
7840
  console.error(err_2);
7797
7841
  process.exit(1);
7798
- return [3 /*break*/, 54];
7799
- case 54:
7800
- _g++;
7801
- return [3 /*break*/, 50];
7842
+ return [3 /*break*/, 55];
7802
7843
  case 55:
7844
+ _h++;
7845
+ return [3 /*break*/, 51];
7846
+ case 56:
7803
7847
  process.exit();
7804
7848
  return [2 /*return*/];
7805
7849
  }