@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.
- package/lib/cjs/tests/tests.js +408 -364
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/tests/tests.js +408 -364
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/tests/tests.ts +40 -0
- package/test_generated.pdf +0 -0
package/lib/esm/tests/tests.js
CHANGED
|
@@ -634,139 +634,139 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
|
|
|
634
634
|
}); };
|
|
635
635
|
var generate_user_auth_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
636
636
|
var info, externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
|
|
637
|
-
return __generator(this, function (
|
|
638
|
-
switch (
|
|
637
|
+
return __generator(this, function (_f) {
|
|
638
|
+
switch (_f.label) {
|
|
639
639
|
case 0:
|
|
640
640
|
log_header("Generated User/Enduser authToken");
|
|
641
641
|
return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: sdk.userInfo.id })];
|
|
642
642
|
case 1:
|
|
643
|
-
info =
|
|
643
|
+
info = _f.sent();
|
|
644
644
|
sdk.authToken = info.authToken;
|
|
645
645
|
sdk.userInfo = info.user;
|
|
646
646
|
externalId = '1029f9v9sjd0as';
|
|
647
647
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
|
|
648
648
|
case 2:
|
|
649
|
-
e =
|
|
649
|
+
e = _f.sent();
|
|
650
650
|
return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: e.id })];
|
|
651
651
|
case 3:
|
|
652
|
-
_a =
|
|
652
|
+
_a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
|
|
653
653
|
if (!enduser)
|
|
654
654
|
throw new Error("Didn't get enduser when generate_auth_token called");
|
|
655
655
|
assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authTokea and get enduser');
|
|
656
656
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
|
|
657
657
|
case 4:
|
|
658
|
-
isAuthenticated = (
|
|
658
|
+
isAuthenticated = (_f.sent()).isAuthenticated;
|
|
659
659
|
assert(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
|
|
660
660
|
_b = assert;
|
|
661
661
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
|
|
662
662
|
case 5:
|
|
663
|
-
_b.apply(void 0, [(
|
|
663
|
+
_b.apply(void 0, [(_f.sent()).isAuthenticated,
|
|
664
664
|
'id omitted results in failed authentication',
|
|
665
665
|
'id optional for is_authenticated']);
|
|
666
666
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
|
|
667
667
|
case 6:
|
|
668
|
-
withDurationResult =
|
|
668
|
+
withDurationResult = _f.sent();
|
|
669
669
|
assert(!!withDurationResult, 'no result for id with duration', 'id with duration');
|
|
670
670
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
|
|
671
671
|
case 7:
|
|
672
|
-
_c =
|
|
672
|
+
_c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
|
|
673
673
|
assert(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
|
|
674
674
|
_d = assert;
|
|
675
675
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
|
|
676
676
|
case 8:
|
|
677
|
-
_d.apply(void 0, [(
|
|
677
|
+
_d.apply(void 0, [(_f.sent()).isAuthenticated,
|
|
678
678
|
'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
|
|
679
679
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
|
|
680
680
|
case 9:
|
|
681
|
-
withDurationResult =
|
|
681
|
+
withDurationResult = _f.sent();
|
|
682
682
|
assert(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
|
|
683
683
|
return [4 /*yield*/, async_test("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
|
|
684
684
|
case 10:
|
|
685
|
-
|
|
685
|
+
_f.sent();
|
|
686
686
|
return [4 /*yield*/, async_test("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
|
|
687
687
|
case 11:
|
|
688
|
-
|
|
688
|
+
_f.sent();
|
|
689
689
|
return [4 /*yield*/, async_test("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
|
|
690
690
|
case 12:
|
|
691
|
-
|
|
691
|
+
_f.sent();
|
|
692
692
|
return [4 /*yield*/, 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"; } })];
|
|
693
693
|
case 13:
|
|
694
|
-
|
|
694
|
+
_f.sent();
|
|
695
695
|
return [4 /*yield*/, 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"; } })];
|
|
696
696
|
case 14:
|
|
697
|
-
|
|
697
|
+
_f.sent();
|
|
698
698
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
699
699
|
case 15:
|
|
700
|
-
|
|
700
|
+
_f.sent();
|
|
701
701
|
return [2 /*return*/];
|
|
702
702
|
}
|
|
703
703
|
});
|
|
704
704
|
}); };
|
|
705
705
|
var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
706
706
|
var externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
|
|
707
|
-
return __generator(this, function (
|
|
708
|
-
switch (
|
|
707
|
+
return __generator(this, function (_f) {
|
|
708
|
+
switch (_f.label) {
|
|
709
709
|
case 0:
|
|
710
710
|
log_header("Generated Enduser authToken");
|
|
711
711
|
externalId = '1029f9v9sjd0as';
|
|
712
712
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
|
|
713
713
|
case 1:
|
|
714
|
-
e =
|
|
714
|
+
e = _f.sent();
|
|
715
715
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
|
|
716
716
|
case 2:
|
|
717
|
-
_a =
|
|
717
|
+
_a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
|
|
718
718
|
assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
|
|
719
719
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
|
|
720
720
|
case 3:
|
|
721
|
-
isAuthenticated = (
|
|
721
|
+
isAuthenticated = (_f.sent()).isAuthenticated;
|
|
722
722
|
assert(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
|
|
723
723
|
_b = assert;
|
|
724
724
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
|
|
725
725
|
case 4:
|
|
726
|
-
_b.apply(void 0, [(
|
|
726
|
+
_b.apply(void 0, [(_f.sent()).isAuthenticated,
|
|
727
727
|
'id omitted results in failed authentication',
|
|
728
728
|
'id optional for is_authenticated']);
|
|
729
729
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
|
|
730
730
|
case 5:
|
|
731
|
-
withDurationResult =
|
|
731
|
+
withDurationResult = _f.sent();
|
|
732
732
|
assert(!!withDurationResult, 'no result for id with duration', 'id with duration');
|
|
733
733
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
|
|
734
734
|
case 6:
|
|
735
|
-
_c =
|
|
735
|
+
_c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
|
|
736
736
|
assert(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
|
|
737
737
|
_d = assert;
|
|
738
738
|
return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
|
|
739
739
|
case 7:
|
|
740
|
-
_d.apply(void 0, [(
|
|
740
|
+
_d.apply(void 0, [(_f.sent()).isAuthenticated,
|
|
741
741
|
'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
|
|
742
742
|
return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
|
|
743
743
|
case 8:
|
|
744
|
-
withDurationResult =
|
|
744
|
+
withDurationResult = _f.sent();
|
|
745
745
|
assert(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
|
|
746
746
|
return [4 /*yield*/, async_test("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
|
|
747
747
|
case 9:
|
|
748
|
-
|
|
748
|
+
_f.sent();
|
|
749
749
|
return [4 /*yield*/, async_test("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
|
|
750
750
|
case 10:
|
|
751
|
-
|
|
751
|
+
_f.sent();
|
|
752
752
|
return [4 /*yield*/, async_test("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
|
|
753
753
|
case 11:
|
|
754
|
-
|
|
754
|
+
_f.sent();
|
|
755
755
|
return [4 /*yield*/, 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"; } })];
|
|
756
756
|
case 12:
|
|
757
|
-
|
|
757
|
+
_f.sent();
|
|
758
758
|
return [4 /*yield*/, 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"; } })];
|
|
759
759
|
case 13:
|
|
760
|
-
|
|
760
|
+
_f.sent();
|
|
761
761
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
762
762
|
case 14:
|
|
763
|
-
|
|
763
|
+
_f.sent();
|
|
764
764
|
return [2 /*return*/];
|
|
765
765
|
}
|
|
766
766
|
});
|
|
767
767
|
}); };
|
|
768
768
|
var instanceForModel = function (model, i) {
|
|
769
|
-
var _a, _b, _c, _d,
|
|
769
|
+
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m;
|
|
770
770
|
if (i === void 0) { i = 0; }
|
|
771
771
|
var instance = {};
|
|
772
772
|
var updates = {};
|
|
@@ -775,12 +775,12 @@ var instanceForModel = function (model, i) {
|
|
|
775
775
|
if (model.fields[k].readonly)
|
|
776
776
|
continue;
|
|
777
777
|
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) {
|
|
778
|
-
instance[k] = (
|
|
779
|
-
if ((
|
|
780
|
-
filter[k] = (
|
|
778
|
+
instance[k] = (_f = (_d = model.fields[k]) === null || _d === void 0 ? void 0 : _d.examples) === null || _f === void 0 ? void 0 : _f[i];
|
|
779
|
+
if ((_g = model === null || model === void 0 ? void 0 : model.readFilter) === null || _g === void 0 ? void 0 : _g[k]) {
|
|
780
|
+
filter[k] = (_j = (_h = model.fields[k]) === null || _h === void 0 ? void 0 : _h.examples) === null || _j === void 0 ? void 0 : _j[i];
|
|
781
781
|
}
|
|
782
|
-
if (((
|
|
783
|
-
updates[k] = (
|
|
782
|
+
if (((_k = model === null || model === void 0 ? void 0 : model.fields) === null || _k === void 0 ? void 0 : _k[k].updatesDisabled) !== true) {
|
|
783
|
+
updates[k] = (_m = (_l = model.fields[k]) === null || _l === void 0 ? void 0 : _l.examples) === null || _m === void 0 ? void 0 : _m[i];
|
|
784
784
|
}
|
|
785
785
|
}
|
|
786
786
|
}
|
|
@@ -791,8 +791,8 @@ var verify_missing_defaults = function (_a) {
|
|
|
791
791
|
var queries = _a.queries, model = _a.model, name = _a.name;
|
|
792
792
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
793
793
|
var queryForOperation, o, _b, _c, _d, _i;
|
|
794
|
-
return __generator(this, function (
|
|
795
|
-
switch (
|
|
794
|
+
return __generator(this, function (_f) {
|
|
795
|
+
switch (_f.label) {
|
|
796
796
|
case 0:
|
|
797
797
|
queryForOperation = {
|
|
798
798
|
create: function () { return queries.createOne({}); },
|
|
@@ -807,7 +807,7 @@ var verify_missing_defaults = function (_a) {
|
|
|
807
807
|
for (_d in _b)
|
|
808
808
|
_c.push(_d);
|
|
809
809
|
_i = 0;
|
|
810
|
-
|
|
810
|
+
_f.label = 1;
|
|
811
811
|
case 1:
|
|
812
812
|
if (!(_i < _c.length)) return [3 /*break*/, 4];
|
|
813
813
|
_d = _c[_i];
|
|
@@ -817,8 +817,8 @@ var verify_missing_defaults = function (_a) {
|
|
|
817
817
|
return [3 /*break*/, 3]; // action is implemented
|
|
818
818
|
return [4 /*yield*/, async_test("".concat(o, " unavailable for ").concat(name), function () { return queryForOperation[o](); }, { shouldError: true, onError: function (e) { return e.message === 'This action is not allowed' || e.message === 'Inaccessible'; } })];
|
|
819
819
|
case 2:
|
|
820
|
-
|
|
821
|
-
|
|
820
|
+
_f.sent();
|
|
821
|
+
_f.label = 3;
|
|
822
822
|
case 3:
|
|
823
823
|
_i++;
|
|
824
824
|
return [3 /*break*/, 1];
|
|
@@ -1089,21 +1089,21 @@ var journey_tests = function (queries) {
|
|
|
1089
1089
|
if (queries === void 0) { queries = sdk.api.journeys; }
|
|
1090
1090
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
1091
1091
|
var journey, journey2, updated, fetchAfterDeletion, withAddedState, e1, e2, engagement, es;
|
|
1092
|
-
var _a, _b, _c, _d,
|
|
1093
|
-
return __generator(this, function (
|
|
1094
|
-
switch (
|
|
1092
|
+
var _a, _b, _c, _d, _f, _g;
|
|
1093
|
+
return __generator(this, function (_h) {
|
|
1094
|
+
switch (_h.label) {
|
|
1095
1095
|
case 0: return [4 /*yield*/, 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'; } })];
|
|
1096
1096
|
case 1:
|
|
1097
|
-
|
|
1097
|
+
_h.sent();
|
|
1098
1098
|
return [4 /*yield*/, 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'; } })];
|
|
1099
1099
|
case 2:
|
|
1100
|
-
|
|
1100
|
+
_h.sent();
|
|
1101
1101
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey' })];
|
|
1102
1102
|
case 3:
|
|
1103
|
-
journey =
|
|
1103
|
+
journey = _h.sent();
|
|
1104
1104
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey 2' })];
|
|
1105
1105
|
case 4:
|
|
1106
|
-
journey2 =
|
|
1106
|
+
journey2 = _h.sent();
|
|
1107
1107
|
return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, {
|
|
1108
1108
|
states: [
|
|
1109
1109
|
{ name: 'Delete Me 1', priority: 'N/A' },
|
|
@@ -1111,89 +1111,89 @@ var journey_tests = function (queries) {
|
|
|
1111
1111
|
]
|
|
1112
1112
|
})];
|
|
1113
1113
|
case 5:
|
|
1114
|
-
|
|
1114
|
+
_h.sent();
|
|
1115
1115
|
return [4 /*yield*/, sdk.api.journeys.delete_states({ id: journey.id, states: ['Delete Me 1', 'Delete Me 2'] })];
|
|
1116
1116
|
case 6:
|
|
1117
|
-
updated = (
|
|
1117
|
+
updated = (_h.sent()).updated;
|
|
1118
1118
|
assert(!!updated.id && updated.states.length === 1 && updated.states[0].name === 'New', 'delete states fail on returned update', 'delete states returns updated value');
|
|
1119
1119
|
return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
|
|
1120
1120
|
case 7:
|
|
1121
|
-
fetchAfterDeletion =
|
|
1121
|
+
fetchAfterDeletion = _h.sent();
|
|
1122
1122
|
assert(fetchAfterDeletion.states.length === 1 && fetchAfterDeletion.states[0].name === 'New', 'delete states fail', 'delete states worked');
|
|
1123
1123
|
assert(journey.defaultState === 'New', 'defaultState not set on create', 'journey-create - defaultState initialized');
|
|
1124
1124
|
assert(journey.states[0].name === 'New', 'defaultState not set on create', 'journey-create - states initialized');
|
|
1125
1125
|
return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'ToDuplicate', priority: "N/A" }] })];
|
|
1126
1126
|
case 8:
|
|
1127
|
-
|
|
1127
|
+
_h.sent();
|
|
1128
1128
|
return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
|
|
1129
1129
|
case 9:
|
|
1130
|
-
withAddedState =
|
|
1130
|
+
withAddedState = _h.sent();
|
|
1131
1131
|
assert(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'ToDuplicate'; }) !== undefined, 'new state added', 'journey-update - push state change');
|
|
1132
1132
|
return [4 /*yield*/, 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'; } })];
|
|
1133
1133
|
case 10:
|
|
1134
|
-
|
|
1134
|
+
_h.sent();
|
|
1135
1135
|
return [4 /*yield*/, 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'; } })];
|
|
1136
1136
|
case 11:
|
|
1137
|
-
|
|
1137
|
+
_h.sent();
|
|
1138
1138
|
return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { defaultState: 'Added', states: [{ name: 'Added', priority: "N/A" }, { name: "Other", priority: "N/A" }] }, { replaceObjectFields: true })];
|
|
1139
1139
|
case 12:
|
|
1140
|
-
|
|
1140
|
+
_h.sent();
|
|
1141
1141
|
return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
|
|
1142
1142
|
case 13:
|
|
1143
|
-
withAddedState =
|
|
1143
|
+
withAddedState = _h.sent();
|
|
1144
1144
|
assert(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'Added'; }) !== undefined
|
|
1145
1145
|
&& withAddedState.defaultState === 'Added', 'duplicate state not added', 'journey-update - replace states');
|
|
1146
1146
|
return [4 /*yield*/, 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'; } })];
|
|
1147
1147
|
case 14:
|
|
1148
|
-
|
|
1148
|
+
_h.sent();
|
|
1149
1149
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset1@tellescope.com', journeys: (_a = {}, _a[journey.id] = 'Added', _a) })];
|
|
1150
1150
|
case 15:
|
|
1151
|
-
e1 =
|
|
1151
|
+
e1 = _h.sent();
|
|
1152
1152
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset2@tellescope.com', journeys: (_b = {}, _b[journey.id] = 'Added', _b[journey2.id] = 'New', _b) })];
|
|
1153
1153
|
case 16:
|
|
1154
|
-
e2 =
|
|
1154
|
+
e2 = _h.sent();
|
|
1155
1155
|
return [4 /*yield*/, async_test("create-enduser - invalid journey id", function () {
|
|
1156
1156
|
var _a;
|
|
1157
1157
|
return sdk.api.endusers.createOne({ email: 'journeyunset3@tellescope.com', journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
|
|
1158
1158
|
}, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
|
|
1159
1159
|
case 17:
|
|
1160
|
-
|
|
1160
|
+
_h.sent();
|
|
1161
1161
|
return [4 /*yield*/, async_test("update-enduser - invalid journey id", function () {
|
|
1162
1162
|
var _a;
|
|
1163
1163
|
return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
|
|
1164
1164
|
}, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
|
|
1165
1165
|
case 18:
|
|
1166
|
-
|
|
1166
|
+
_h.sent();
|
|
1167
1167
|
return [4 /*yield*/, async_test("update-enduser - one invalid journey id", function () {
|
|
1168
1168
|
var _a;
|
|
1169
1169
|
return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a[e1.id] = 'Added', _a) });
|
|
1170
1170
|
}, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
|
|
1171
1171
|
case 19:
|
|
1172
|
-
|
|
1172
|
+
_h.sent();
|
|
1173
1173
|
return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[journey.id] = 'Other', _c) })]; // valid state change
|
|
1174
1174
|
case 20:
|
|
1175
|
-
|
|
1175
|
+
_h.sent(); // valid state change
|
|
1176
1176
|
return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_d = {}, _d[journey.id] = 'Added', _d) })]; // change back
|
|
1177
1177
|
case 21:
|
|
1178
|
-
|
|
1178
|
+
_h.sent(); // change back
|
|
1179
1179
|
return [4 /*yield*/, wait(undefined, 25)]; // wait for side effects to add engagement
|
|
1180
1180
|
case 22:
|
|
1181
|
-
|
|
1181
|
+
_h.sent(); // wait for side effects to add engagement
|
|
1182
1182
|
return [4 /*yield*/, sdk.api.engagement_events.getSome()];
|
|
1183
1183
|
case 23:
|
|
1184
|
-
engagement =
|
|
1184
|
+
engagement = _h.sent();
|
|
1185
1185
|
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');
|
|
1186
|
-
return [4 /*yield*/, sdk.api.endusers.createSome([{ email: "1@tellescope.com", journeys: (
|
|
1186
|
+
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) }])];
|
|
1187
1187
|
case 24:
|
|
1188
|
-
es = (
|
|
1188
|
+
es = (_h.sent()).created;
|
|
1189
1189
|
return [4 /*yield*/, sdk.api.engagement_events.getSome()];
|
|
1190
1190
|
case 25:
|
|
1191
|
-
engagement =
|
|
1191
|
+
engagement = _h.sent();
|
|
1192
1192
|
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)');
|
|
1193
1193
|
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)');
|
|
1194
1194
|
return [4 /*yield*/, queries.updateOne(journey.id, { states: [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }] }, { replaceObjectFields: true })];
|
|
1195
1195
|
case 26:
|
|
1196
|
-
|
|
1196
|
+
_h.sent();
|
|
1197
1197
|
return [4 /*yield*/, async_test("journey-update - insert new state at front", function () { return queries.getOne(journey.id); }, { onResult: function (j) { return objects_equivalent(j.states, [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }]); } })
|
|
1198
1198
|
// removed
|
|
1199
1199
|
// await async_test(
|
|
@@ -1214,7 +1214,7 @@ var journey_tests = function (queries) {
|
|
|
1214
1214
|
// )
|
|
1215
1215
|
];
|
|
1216
1216
|
case 27:
|
|
1217
|
-
|
|
1217
|
+
_h.sent();
|
|
1218
1218
|
// removed
|
|
1219
1219
|
// await async_test(
|
|
1220
1220
|
// `journey-updateState`,
|
|
@@ -1251,19 +1251,19 @@ var journey_tests = function (queries) {
|
|
|
1251
1251
|
// () => sdk.api.endusers.getOne(e2.id),
|
|
1252
1252
|
// { onResult: e => objects_equivalent(e.journeys, { [journey.id]: 'Updated', [journey2.id]: 'New' })},
|
|
1253
1253
|
// )
|
|
1254
|
-
|
|
1254
|
+
_h.sent();
|
|
1255
1255
|
return [4 /*yield*/, wait(undefined, 25)]; // wait for side effects to update endusers
|
|
1256
1256
|
case 29:
|
|
1257
|
-
|
|
1257
|
+
_h.sent(); // wait for side effects to update endusers
|
|
1258
1258
|
return [4 /*yield*/, async_test("journey-delete - corresponding enduser journeys are unset 1", function () { return sdk.api.endusers.getOne(e1.id); }, { onResult: function (e) { return objects_equivalent(e.journeys, {}); } })];
|
|
1259
1259
|
case 30:
|
|
1260
|
-
|
|
1260
|
+
_h.sent();
|
|
1261
1261
|
return [4 /*yield*/, async_test("journey-delete - corresponding enduser journeys are unset, others left", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) {
|
|
1262
1262
|
var _a;
|
|
1263
1263
|
return objects_equivalent(e.journeys, (_a = {}, _a[journey2.id] = 'New', _a));
|
|
1264
1264
|
} })];
|
|
1265
1265
|
case 31:
|
|
1266
|
-
|
|
1266
|
+
_h.sent();
|
|
1267
1267
|
return [2 /*return*/];
|
|
1268
1268
|
}
|
|
1269
1269
|
});
|
|
@@ -1436,32 +1436,32 @@ var sms_tests = function (queries) {
|
|
|
1436
1436
|
var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1437
1437
|
var sdk2, email, password, enduser, enduserLoggedIn, room, roomWithMessage, verifyRoomDisplayInfo, emptyRoom, loggedOutEnduser;
|
|
1438
1438
|
var _a;
|
|
1439
|
-
var _b, _c, _d,
|
|
1440
|
-
return __generator(this, function (
|
|
1441
|
-
switch (
|
|
1439
|
+
var _b, _c, _d, _f, _g, _h, _j;
|
|
1440
|
+
return __generator(this, function (_k) {
|
|
1441
|
+
switch (_k.label) {
|
|
1442
1442
|
case 0:
|
|
1443
1443
|
log_header("Chat Room Tests");
|
|
1444
1444
|
sdk2 = new Session({ host: host });
|
|
1445
1445
|
return [4 /*yield*/, sdk2.authenticate(nonAdminEmail, nonAdminPassword)]; // non-admin has access restrictions we want to test
|
|
1446
1446
|
case 1:
|
|
1447
|
-
|
|
1447
|
+
_k.sent(); // non-admin has access restrictions we want to test
|
|
1448
1448
|
email = 'enduser@tellescope.com', password = 'enduserPassword!';
|
|
1449
1449
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
|
|
1450
1450
|
case 2:
|
|
1451
|
-
enduser =
|
|
1451
|
+
enduser = _k.sent();
|
|
1452
1452
|
return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
|
|
1453
1453
|
case 3:
|
|
1454
|
-
|
|
1454
|
+
_k.sent();
|
|
1455
1455
|
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
1456
1456
|
case 4:
|
|
1457
|
-
|
|
1457
|
+
_k.sent();
|
|
1458
1458
|
return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
|
|
1459
1459
|
case 5:
|
|
1460
|
-
enduserLoggedIn =
|
|
1460
|
+
enduserLoggedIn = _k.sent();
|
|
1461
1461
|
assert(new Date(enduserLoggedIn.lastActive).getTime() > Date.now() - 100, 'lastActive fail for enduser', 'lastActive for enduser');
|
|
1462
1462
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId], enduserIds: [enduserSDK.userInfo.id] })];
|
|
1463
1463
|
case 6:
|
|
1464
|
-
room =
|
|
1464
|
+
room = _k.sent();
|
|
1465
1465
|
assert(room.numMessages === 0, 'num mesages no update', 'num messages on creation');
|
|
1466
1466
|
return [4 /*yield*/, 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"; } })
|
|
1467
1467
|
// await async_test(
|
|
@@ -1471,7 +1471,7 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
1471
1471
|
// )
|
|
1472
1472
|
];
|
|
1473
1473
|
case 7:
|
|
1474
|
-
|
|
1474
|
+
_k.sent();
|
|
1475
1475
|
// await async_test(
|
|
1476
1476
|
// `user_display_info for room (not a user)`,
|
|
1477
1477
|
// () => sdk2.api.chat_rooms.display_info({ id: room.id }),
|
|
@@ -1484,18 +1484,18 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
1484
1484
|
// () => sdk2.api.chat_rooms.display_info({ id: room.id }),
|
|
1485
1485
|
// { shouldError: true, onError: e => e.message === "Could not find a record for the given id" }
|
|
1486
1486
|
// )
|
|
1487
|
-
|
|
1487
|
+
_k.sent();
|
|
1488
1488
|
return [4 /*yield*/, sdk.api.chat_rooms.getOne(room.id)];
|
|
1489
1489
|
case 9:
|
|
1490
|
-
roomWithMessage =
|
|
1490
|
+
roomWithMessage = _k.sent();
|
|
1491
1491
|
assert(roomWithMessage.numMessages === 1, 'num mesages no update', 'num messages on send message');
|
|
1492
1492
|
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');
|
|
1493
1493
|
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');
|
|
1494
|
-
assert(((
|
|
1494
|
+
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');
|
|
1495
1495
|
return [4 /*yield*/, sdk.api.chat_rooms.updateOne(roomWithMessage.id, { infoForUser: (_a = {}, _a[userId] = { unreadCount: 0 }, _a) })];
|
|
1496
1496
|
case 10:
|
|
1497
|
-
roomWithMessage =
|
|
1498
|
-
assert(((
|
|
1497
|
+
roomWithMessage = _k.sent();
|
|
1498
|
+
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');
|
|
1499
1499
|
verifyRoomDisplayInfo = function (info) {
|
|
1500
1500
|
if (!info)
|
|
1501
1501
|
return false;
|
|
@@ -1528,53 +1528,53 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
1528
1528
|
};
|
|
1529
1529
|
return [4 /*yield*/, 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); } })];
|
|
1530
1530
|
case 11:
|
|
1531
|
-
|
|
1531
|
+
_k.sent();
|
|
1532
1532
|
return [4 /*yield*/, 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); } })];
|
|
1533
1533
|
case 12:
|
|
1534
|
-
|
|
1534
|
+
_k.sent();
|
|
1535
1535
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
|
|
1536
1536
|
case 13:
|
|
1537
|
-
|
|
1537
|
+
_k.sent();
|
|
1538
1538
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
|
|
1539
1539
|
case 14:
|
|
1540
|
-
emptyRoom =
|
|
1540
|
+
emptyRoom = _k.sent();
|
|
1541
1541
|
return [4 /*yield*/, 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; } })];
|
|
1542
1542
|
case 15:
|
|
1543
|
-
|
|
1543
|
+
_k.sent();
|
|
1544
1544
|
return [4 /*yield*/, 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"; } })];
|
|
1545
1545
|
case 16:
|
|
1546
|
-
|
|
1546
|
+
_k.sent();
|
|
1547
1547
|
return [4 /*yield*/, async_test("join-room", function () { return sdk2.api.chat_rooms.join_room({ id: emptyRoom.id }); }, { onResult: function (_a) {
|
|
1548
1548
|
var room = _a.room;
|
|
1549
1549
|
return room.id === emptyRoom.id;
|
|
1550
1550
|
} })];
|
|
1551
1551
|
case 17:
|
|
1552
|
-
|
|
1552
|
+
_k.sent();
|
|
1553
1553
|
return [4 /*yield*/, async_test("get-chat-room (join successful)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
|
|
1554
1554
|
case 18:
|
|
1555
|
-
|
|
1555
|
+
_k.sent();
|
|
1556
1556
|
return [4 /*yield*/, async_test("create-chat (join successful)", function () { return sdk2.api.chats.createOne({ roomId: emptyRoom.id, message: 'test' }); }, passOnAnyResult)];
|
|
1557
1557
|
case 19:
|
|
1558
|
-
|
|
1558
|
+
_k.sent();
|
|
1559
1559
|
return [4 /*yield*/, async_test("get-chat (join successful)", function () { return sdk2.api.chats.getSome({ filter: { roomId: emptyRoom.id } }); }, { onResult: function (r) { return r.length > 0; } })];
|
|
1560
1560
|
case 20:
|
|
1561
|
-
|
|
1561
|
+
_k.sent();
|
|
1562
1562
|
return [4 /*yield*/, 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; }); } })];
|
|
1563
1563
|
case 21:
|
|
1564
|
-
|
|
1564
|
+
_k.sent();
|
|
1565
1565
|
return [4 /*yield*/, enduserSDK.logout()];
|
|
1566
1566
|
case 22:
|
|
1567
|
-
|
|
1567
|
+
_k.sent();
|
|
1568
1568
|
return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
|
|
1569
1569
|
case 23:
|
|
1570
|
-
loggedOutEnduser =
|
|
1570
|
+
loggedOutEnduser = _k.sent();
|
|
1571
1571
|
assert(new Date(loggedOutEnduser.lastLogout).getTime() > Date.now() - 100, 'lastLogout fail for enduser', 'lastLogout for enduser');
|
|
1572
1572
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
1573
1573
|
case 24:
|
|
1574
|
-
|
|
1574
|
+
_k.sent();
|
|
1575
1575
|
return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
|
|
1576
1576
|
case 25:
|
|
1577
|
-
|
|
1577
|
+
_k.sent();
|
|
1578
1578
|
return [2 /*return*/];
|
|
1579
1579
|
}
|
|
1580
1580
|
});
|
|
@@ -1771,42 +1771,42 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
|
|
|
1771
1771
|
}); };
|
|
1772
1772
|
var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
1773
1773
|
var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _c, _i, n, ticketAccessible, ticketInaccessible;
|
|
1774
|
-
var _d,
|
|
1775
|
-
return __generator(this, function (
|
|
1776
|
-
switch (
|
|
1774
|
+
var _d, _f, _g, _h, _j, _k;
|
|
1775
|
+
return __generator(this, function (_l) {
|
|
1776
|
+
switch (_l.label) {
|
|
1777
1777
|
case 0:
|
|
1778
1778
|
log_header("Enduser Access");
|
|
1779
1779
|
email = 'enduser@tellescope.com';
|
|
1780
1780
|
password = 'testpassword';
|
|
1781
1781
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
|
|
1782
1782
|
case 1:
|
|
1783
|
-
enduser =
|
|
1783
|
+
enduser = _l.sent();
|
|
1784
1784
|
return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'hi' + email })];
|
|
1785
1785
|
case 2:
|
|
1786
|
-
enduser2 =
|
|
1786
|
+
enduser2 = _l.sent();
|
|
1787
1787
|
return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
|
|
1788
1788
|
case 3:
|
|
1789
|
-
|
|
1789
|
+
_l.sent();
|
|
1790
1790
|
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
1791
1791
|
case 4:
|
|
1792
|
-
|
|
1792
|
+
_l.sent();
|
|
1793
1793
|
return [4 /*yield*/, wait(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
|
|
1794
1794
|
case 5:
|
|
1795
|
-
|
|
1795
|
+
_l.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
|
|
1796
1796
|
uInfo = enduserSDK.userInfo;
|
|
1797
1797
|
originalAuthToken = enduserSDK.authToken;
|
|
1798
1798
|
return [4 /*yield*/, enduserSDK.refresh_session()];
|
|
1799
1799
|
case 6:
|
|
1800
|
-
|
|
1800
|
+
_l.sent();
|
|
1801
1801
|
assert(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
|
|
1802
1802
|
assert(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
|
|
1803
1803
|
return [4 /*yield*/, async_test("no-enduser-access for different businessId", function () { return enduserSDKDifferentBusinessId.authenticate(email, password); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === "Login details are invalid"; } })];
|
|
1804
1804
|
case 7:
|
|
1805
|
-
|
|
1805
|
+
_l.sent();
|
|
1806
1806
|
_loop_1 = function (n) {
|
|
1807
1807
|
var endpoint, model;
|
|
1808
|
-
return __generator(this, function (
|
|
1809
|
-
switch (
|
|
1808
|
+
return __generator(this, function (_m) {
|
|
1809
|
+
switch (_m.label) {
|
|
1810
1810
|
case 0:
|
|
1811
1811
|
endpoint = url_safe_path(n);
|
|
1812
1812
|
model = schema[n];
|
|
@@ -1815,38 +1815,38 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1815
1815
|
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];
|
|
1816
1816
|
return [4 /*yield*/, async_test("no-enduser-access getOne (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1817
1817
|
case 1:
|
|
1818
|
-
|
|
1819
|
-
|
|
1818
|
+
_m.sent();
|
|
1819
|
+
_m.label = 2;
|
|
1820
1820
|
case 2:
|
|
1821
|
-
if (!(!((
|
|
1821
|
+
if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
|
|
1822
1822
|
return [4 /*yield*/, async_test("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1823
1823
|
case 3:
|
|
1824
|
-
|
|
1825
|
-
|
|
1824
|
+
_m.sent();
|
|
1825
|
+
_m.label = 4;
|
|
1826
1826
|
case 4:
|
|
1827
|
-
if (!(!((
|
|
1827
|
+
if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
|
|
1828
1828
|
return [4 /*yield*/, async_test("no-enduser-access createOne (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint.substring(0, endpoint.length - 1))); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1829
1829
|
case 5:
|
|
1830
|
-
|
|
1831
|
-
|
|
1830
|
+
_m.sent();
|
|
1831
|
+
_m.label = 6;
|
|
1832
1832
|
case 6:
|
|
1833
|
-
if (!(!((
|
|
1833
|
+
if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
|
|
1834
1834
|
return [4 /*yield*/, async_test("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1835
1835
|
case 7:
|
|
1836
|
-
|
|
1837
|
-
|
|
1836
|
+
_m.sent();
|
|
1837
|
+
_m.label = 8;
|
|
1838
1838
|
case 8:
|
|
1839
|
-
if (!(!((
|
|
1839
|
+
if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
|
|
1840
1840
|
return [4 /*yield*/, async_test("no-enduser-access update (".concat(endpoint, ")"), function () { return enduserSDK.PATCH("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1841
1841
|
case 9:
|
|
1842
|
-
|
|
1843
|
-
|
|
1842
|
+
_m.sent();
|
|
1843
|
+
_m.label = 10;
|
|
1844
1844
|
case 10:
|
|
1845
|
-
if (!(!((
|
|
1845
|
+
if (!(!((_k = model.enduserActions) === null || _k === void 0 ? void 0 : _k.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
|
|
1846
1846
|
return [4 /*yield*/, async_test("no-enduser-access delete (".concat(endpoint, ")"), function () { return enduserSDK.DELETE("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
|
|
1847
1847
|
case 11:
|
|
1848
|
-
|
|
1849
|
-
|
|
1848
|
+
_m.sent();
|
|
1849
|
+
_m.label = 12;
|
|
1850
1850
|
case 12: return [2 /*return*/];
|
|
1851
1851
|
}
|
|
1852
1852
|
});
|
|
@@ -1856,7 +1856,7 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1856
1856
|
for (_c in _a)
|
|
1857
1857
|
_b.push(_c);
|
|
1858
1858
|
_i = 0;
|
|
1859
|
-
|
|
1859
|
+
_l.label = 8;
|
|
1860
1860
|
case 8:
|
|
1861
1861
|
if (!(_i < _b.length)) return [3 /*break*/, 11];
|
|
1862
1862
|
_c = _b[_i];
|
|
@@ -1864,47 +1864,47 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
1864
1864
|
n = _c;
|
|
1865
1865
|
return [5 /*yield**/, _loop_1(n)];
|
|
1866
1866
|
case 9:
|
|
1867
|
-
|
|
1868
|
-
|
|
1867
|
+
_l.sent();
|
|
1868
|
+
_l.label = 10;
|
|
1869
1869
|
case 10:
|
|
1870
1870
|
_i++;
|
|
1871
1871
|
return [3 /*break*/, 8];
|
|
1872
1872
|
case 11: return [4 /*yield*/, async_test("enduser can update self", function () { return enduserSDK.api.endusers.updateOne(enduser.id, { fname: "Sebastian", lname: "Coates" }); }, { onResult: function (e) { return e.id === enduser.id && e.fname === 'Sebastian' && e.lname === "Coates"; } })];
|
|
1873
1873
|
case 12:
|
|
1874
|
-
|
|
1874
|
+
_l.sent();
|
|
1875
1875
|
return [4 /*yield*/, async_test("enduser can't update other enduser", function () { return enduserSDK.api.endusers.updateOne(enduser2.id, { fname: "Shouldn't Work" }); }, { shouldError: true, onError: function (e) { return e.message === "Endusers may only update their own profile"; } })];
|
|
1876
1876
|
case 13:
|
|
1877
|
-
|
|
1877
|
+
_l.sent();
|
|
1878
1878
|
return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
|
|
1879
1879
|
case 14:
|
|
1880
|
-
ticketAccessible =
|
|
1880
|
+
ticketAccessible = _l.sent();
|
|
1881
1881
|
return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser2.id, title: "Inaccessible ticket" })];
|
|
1882
1882
|
case 15:
|
|
1883
|
-
ticketInaccessible =
|
|
1883
|
+
ticketInaccessible = _l.sent();
|
|
1884
1884
|
return [4 /*yield*/, async_test("enduser cannot create ticket for another enduser", function () { return enduserSDK.api.tickets.createOne({ enduserId: sdk.userInfo.id, title: "Error on Creation" }); }, { shouldError: true, onError: function (e) { return !!e.message; } })];
|
|
1885
1885
|
case 16:
|
|
1886
|
-
|
|
1886
|
+
_l.sent();
|
|
1887
1887
|
return [4 /*yield*/, async_test("enduser-access default, no access constraints, matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketAccessible.id); }, { onResult: function (t) { return t.id === ticketAccessible.id; } })];
|
|
1888
1888
|
case 17:
|
|
1889
|
-
|
|
1889
|
+
_l.sent();
|
|
1890
1890
|
return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, non-matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketInaccessible.id); }, { shouldError: true, onError: function (e) { return e.message.startsWith("Could not find"); } })];
|
|
1891
1891
|
case 18:
|
|
1892
|
-
|
|
1892
|
+
_l.sent();
|
|
1893
1893
|
return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, get many", function () { return enduserSDK.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
|
|
1894
1894
|
case 19:
|
|
1895
|
-
|
|
1895
|
+
_l.sent();
|
|
1896
1896
|
return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
|
|
1897
1897
|
case 20:
|
|
1898
|
-
|
|
1898
|
+
_l.sent();
|
|
1899
1899
|
return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
|
|
1900
1900
|
case 21:
|
|
1901
|
-
|
|
1901
|
+
_l.sent();
|
|
1902
1902
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
1903
1903
|
case 22:
|
|
1904
|
-
|
|
1904
|
+
_l.sent();
|
|
1905
1905
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
|
|
1906
1906
|
case 23:
|
|
1907
|
-
|
|
1907
|
+
_l.sent();
|
|
1908
1908
|
return [2 /*return*/];
|
|
1909
1909
|
}
|
|
1910
1910
|
});
|
|
@@ -3500,26 +3500,26 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
|
|
|
3500
3500
|
}); };
|
|
3501
3501
|
var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
3502
3502
|
var enduser, journey1, journey2, journey3, form, field, active, dupActive, inactive, noConditions, equals, equalsFalse, existsTrue, existsFalse, doesNotContainTrue, doesNotContainFalse, containFalse, containTrue, accessCode;
|
|
3503
|
-
var _a, _b, _c, _d,
|
|
3504
|
-
return __generator(this, function (
|
|
3505
|
-
switch (
|
|
3503
|
+
var _a, _b, _c, _d, _f, _g, _h, _j;
|
|
3504
|
+
return __generator(this, function (_k) {
|
|
3505
|
+
switch (_k.label) {
|
|
3506
3506
|
case 0:
|
|
3507
3507
|
log_header("Automation Trigger: Form Response --> Add To Journey");
|
|
3508
3508
|
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'test' })];
|
|
3509
3509
|
case 1:
|
|
3510
|
-
enduser =
|
|
3510
|
+
enduser = _k.sent();
|
|
3511
3511
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey' })];
|
|
3512
3512
|
case 2:
|
|
3513
|
-
journey1 =
|
|
3513
|
+
journey1 = _k.sent();
|
|
3514
3514
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey2' })];
|
|
3515
3515
|
case 3:
|
|
3516
|
-
journey2 =
|
|
3516
|
+
journey2 = _k.sent();
|
|
3517
3517
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey3' })];
|
|
3518
3518
|
case 4:
|
|
3519
|
-
journey3 =
|
|
3519
|
+
journey3 = _k.sent();
|
|
3520
3520
|
return [4 /*yield*/, sdk.api.forms.createOne({ title: 'form' })];
|
|
3521
3521
|
case 5:
|
|
3522
|
-
form =
|
|
3522
|
+
form = _k.sent();
|
|
3523
3523
|
return [4 /*yield*/, sdk.api.form_fields.createOne({
|
|
3524
3524
|
formId: form.id,
|
|
3525
3525
|
type: 'string',
|
|
@@ -3532,7 +3532,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3532
3532
|
],
|
|
3533
3533
|
})];
|
|
3534
3534
|
case 6:
|
|
3535
|
-
field =
|
|
3535
|
+
field = _k.sent();
|
|
3536
3536
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3537
3537
|
event: { type: 'Form Submitted', info: { formId: form.id } },
|
|
3538
3538
|
action: { type: 'Add To Journey', info: { journeyId: journey1.id } },
|
|
@@ -3540,7 +3540,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3540
3540
|
title: "Active"
|
|
3541
3541
|
})];
|
|
3542
3542
|
case 7:
|
|
3543
|
-
active =
|
|
3543
|
+
active = _k.sent();
|
|
3544
3544
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3545
3545
|
event: { type: 'Form Submitted', info: { formId: form.id } },
|
|
3546
3546
|
action: { type: 'Add To Journey', info: { journeyId: journey2.id } },
|
|
@@ -3548,7 +3548,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3548
3548
|
title: "Dup Active"
|
|
3549
3549
|
})];
|
|
3550
3550
|
case 8:
|
|
3551
|
-
dupActive =
|
|
3551
|
+
dupActive = _k.sent();
|
|
3552
3552
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3553
3553
|
event: { type: 'Form Submitted', info: { formId: form.id } },
|
|
3554
3554
|
action: { type: 'Add To Journey', info: { journeyId: journey3.id } },
|
|
@@ -3556,7 +3556,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3556
3556
|
title: "Inactive"
|
|
3557
3557
|
})];
|
|
3558
3558
|
case 9:
|
|
3559
|
-
inactive =
|
|
3559
|
+
inactive = _k.sent();
|
|
3560
3560
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3561
3561
|
event: {
|
|
3562
3562
|
type: 'Form Submitted',
|
|
@@ -3569,7 +3569,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3569
3569
|
title: "No Conditions"
|
|
3570
3570
|
})];
|
|
3571
3571
|
case 10:
|
|
3572
|
-
noConditions =
|
|
3572
|
+
noConditions = _k.sent();
|
|
3573
3573
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3574
3574
|
event: {
|
|
3575
3575
|
type: 'Form Submitted',
|
|
@@ -3591,7 +3591,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3591
3591
|
title: "Equals"
|
|
3592
3592
|
})];
|
|
3593
3593
|
case 11:
|
|
3594
|
-
equals =
|
|
3594
|
+
equals = _k.sent();
|
|
3595
3595
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3596
3596
|
event: {
|
|
3597
3597
|
type: 'Form Submitted',
|
|
@@ -3613,7 +3613,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3613
3613
|
title: "Equals False"
|
|
3614
3614
|
})];
|
|
3615
3615
|
case 12:
|
|
3616
|
-
equalsFalse =
|
|
3616
|
+
equalsFalse = _k.sent();
|
|
3617
3617
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3618
3618
|
event: {
|
|
3619
3619
|
type: 'Form Submitted',
|
|
@@ -3635,7 +3635,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3635
3635
|
title: "Exists true"
|
|
3636
3636
|
})];
|
|
3637
3637
|
case 13:
|
|
3638
|
-
existsTrue =
|
|
3638
|
+
existsTrue = _k.sent();
|
|
3639
3639
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3640
3640
|
event: {
|
|
3641
3641
|
type: 'Form Submitted',
|
|
@@ -3657,7 +3657,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3657
3657
|
title: "Exists False"
|
|
3658
3658
|
})];
|
|
3659
3659
|
case 14:
|
|
3660
|
-
existsFalse =
|
|
3660
|
+
existsFalse = _k.sent();
|
|
3661
3661
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3662
3662
|
event: {
|
|
3663
3663
|
type: 'Form Submitted',
|
|
@@ -3667,11 +3667,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3667
3667
|
conditions: {
|
|
3668
3668
|
"$and": [
|
|
3669
3669
|
{
|
|
3670
|
-
"condition": (
|
|
3671
|
-
|
|
3670
|
+
"condition": (_f = {},
|
|
3671
|
+
_f[field.id] = {
|
|
3672
3672
|
"$doesNotContain": "tri2"
|
|
3673
3673
|
},
|
|
3674
|
-
|
|
3674
|
+
_f)
|
|
3675
3675
|
}
|
|
3676
3676
|
]
|
|
3677
3677
|
},
|
|
@@ -3681,7 +3681,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3681
3681
|
title: "doesNotContainTrue"
|
|
3682
3682
|
})];
|
|
3683
3683
|
case 15:
|
|
3684
|
-
doesNotContainTrue =
|
|
3684
|
+
doesNotContainTrue = _k.sent();
|
|
3685
3685
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3686
3686
|
event: {
|
|
3687
3687
|
type: 'Form Submitted',
|
|
@@ -3691,11 +3691,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3691
3691
|
conditions: {
|
|
3692
3692
|
"$and": [
|
|
3693
3693
|
{
|
|
3694
|
-
"condition": (
|
|
3695
|
-
|
|
3694
|
+
"condition": (_g = {},
|
|
3695
|
+
_g[field.id] = {
|
|
3696
3696
|
"$doesNotContain": "tri"
|
|
3697
3697
|
},
|
|
3698
|
-
|
|
3698
|
+
_g)
|
|
3699
3699
|
}
|
|
3700
3700
|
]
|
|
3701
3701
|
},
|
|
@@ -3705,7 +3705,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3705
3705
|
title: "doesNotContainFalse"
|
|
3706
3706
|
})];
|
|
3707
3707
|
case 16:
|
|
3708
|
-
doesNotContainFalse =
|
|
3708
|
+
doesNotContainFalse = _k.sent();
|
|
3709
3709
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3710
3710
|
event: {
|
|
3711
3711
|
type: 'Form Submitted',
|
|
@@ -3715,11 +3715,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3715
3715
|
conditions: {
|
|
3716
3716
|
"$and": [
|
|
3717
3717
|
{
|
|
3718
|
-
"condition": (
|
|
3719
|
-
|
|
3718
|
+
"condition": (_h = {},
|
|
3719
|
+
_h[field.id] = {
|
|
3720
3720
|
"$contains": "tri2"
|
|
3721
3721
|
},
|
|
3722
|
-
|
|
3722
|
+
_h)
|
|
3723
3723
|
}
|
|
3724
3724
|
]
|
|
3725
3725
|
},
|
|
@@ -3729,7 +3729,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3729
3729
|
title: "containFalse"
|
|
3730
3730
|
})];
|
|
3731
3731
|
case 17:
|
|
3732
|
-
containFalse =
|
|
3732
|
+
containFalse = _k.sent();
|
|
3733
3733
|
return [4 /*yield*/, sdk.api.automation_triggers.createOne({
|
|
3734
3734
|
event: {
|
|
3735
3735
|
type: 'Form Submitted',
|
|
@@ -3739,11 +3739,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3739
3739
|
conditions: {
|
|
3740
3740
|
"$and": [
|
|
3741
3741
|
{
|
|
3742
|
-
"condition": (
|
|
3743
|
-
|
|
3742
|
+
"condition": (_j = {},
|
|
3743
|
+
_j[field.id] = {
|
|
3744
3744
|
"$contains": "tri"
|
|
3745
3745
|
},
|
|
3746
|
-
|
|
3746
|
+
_j)
|
|
3747
3747
|
}
|
|
3748
3748
|
]
|
|
3749
3749
|
},
|
|
@@ -3753,13 +3753,13 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3753
3753
|
title: "containTrue"
|
|
3754
3754
|
})];
|
|
3755
3755
|
case 18:
|
|
3756
|
-
containTrue =
|
|
3756
|
+
containTrue = _k.sent();
|
|
3757
3757
|
return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
|
|
3758
3758
|
enduserId: enduser.id,
|
|
3759
3759
|
formId: form.id,
|
|
3760
3760
|
})];
|
|
3761
3761
|
case 19:
|
|
3762
|
-
accessCode = (
|
|
3762
|
+
accessCode = (_k.sent()).accessCode;
|
|
3763
3763
|
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({
|
|
3764
3764
|
accessCode: accessCode,
|
|
3765
3765
|
responses: [
|
|
@@ -3776,23 +3776,23 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3776
3776
|
// allow triggers to happen
|
|
3777
3777
|
];
|
|
3778
3778
|
case 20:
|
|
3779
|
-
|
|
3779
|
+
_k.sent();
|
|
3780
3780
|
// allow triggers to happen
|
|
3781
3781
|
return [4 /*yield*/, wait(undefined, 1000)];
|
|
3782
3782
|
case 21:
|
|
3783
3783
|
// allow triggers to happen
|
|
3784
|
-
|
|
3784
|
+
_k.sent();
|
|
3785
3785
|
return [4 /*yield*/, async_test("Triggers with conditional works", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
|
|
3786
|
-
var _a, _b, _c, _d,
|
|
3786
|
+
var _a, _b, _c, _d, _f, _g;
|
|
3787
3787
|
return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Equals'))
|
|
3788
3788
|
&& ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('contains'))
|
|
3789
3789
|
&& ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('exists'))
|
|
3790
3790
|
&& ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('No Conditions'))
|
|
3791
|
-
&& ((
|
|
3792
|
-
&& !((
|
|
3791
|
+
&& ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('doesNotContain'))
|
|
3792
|
+
&& !((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('No')));
|
|
3793
3793
|
} })];
|
|
3794
3794
|
case 22:
|
|
3795
|
-
|
|
3795
|
+
_k.sent();
|
|
3796
3796
|
return [4 /*yield*/, async_test("Automated triggers work", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
|
|
3797
3797
|
var _a, _b, _c;
|
|
3798
3798
|
return !!(((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey1.id]) === ''
|
|
@@ -3800,7 +3800,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3800
3800
|
&& ((_c = e.journeys) === null || _c === void 0 ? void 0 : _c[journey3.id]) === undefined);
|
|
3801
3801
|
} })];
|
|
3802
3802
|
case 23:
|
|
3803
|
-
|
|
3803
|
+
_k.sent();
|
|
3804
3804
|
return [4 /*yield*/, Promise.all([
|
|
3805
3805
|
sdk.api.journeys.deleteOne(journey1.id),
|
|
3806
3806
|
sdk.api.journeys.deleteOne(journey2.id),
|
|
@@ -3821,7 +3821,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
|
|
|
3821
3821
|
sdk.api.automation_triggers.deleteOne(doesNotContainFalse.id),
|
|
3822
3822
|
])];
|
|
3823
3823
|
case 24:
|
|
3824
|
-
|
|
3824
|
+
_k.sent();
|
|
3825
3825
|
return [2 /*return*/];
|
|
3826
3826
|
}
|
|
3827
3827
|
});
|
|
@@ -5429,8 +5429,8 @@ var auto_reply_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5429
5429
|
}); };
|
|
5430
5430
|
var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5431
5431
|
var _a, source, destination, otherEnduser, _b, emailToMove, email, _c, eventToMove, event, _d, roomToMove, room, chatToMove, chat;
|
|
5432
|
-
return __generator(this, function (
|
|
5433
|
-
switch (
|
|
5432
|
+
return __generator(this, function (_f) {
|
|
5433
|
+
switch (_f.label) {
|
|
5434
5434
|
case 0:
|
|
5435
5435
|
log_header("Merge Endusers");
|
|
5436
5436
|
return [4 /*yield*/, sdk.api.endusers.createSome([
|
|
@@ -5439,68 +5439,68 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
5439
5439
|
{ email: 'other@tellescope.com' },
|
|
5440
5440
|
])];
|
|
5441
5441
|
case 1:
|
|
5442
|
-
_a = (
|
|
5442
|
+
_a = (_f.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
|
|
5443
5443
|
return [4 /*yield*/, sdk.api.emails.createSome([
|
|
5444
5444
|
{ enduserId: source.id, subject: 'subject', logOnly: true, textContent: 'email' },
|
|
5445
5445
|
{ enduserId: otherEnduser.id, subject: 'subject', logOnly: true, textContent: 'email' },
|
|
5446
5446
|
])];
|
|
5447
5447
|
case 2:
|
|
5448
|
-
_b = (
|
|
5448
|
+
_b = (_f.sent()).created, emailToMove = _b[0], email = _b[1];
|
|
5449
5449
|
return [4 /*yield*/, sdk.api.calendar_events.createSome([
|
|
5450
5450
|
{ attendees: [{ type: 'enduser', id: source.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
|
|
5451
5451
|
{ attendees: [{ type: 'enduser', id: otherEnduser.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
|
|
5452
5452
|
])];
|
|
5453
5453
|
case 3:
|
|
5454
|
-
_c = (
|
|
5454
|
+
_c = (_f.sent()).created, eventToMove = _c[0], event = _c[1];
|
|
5455
5455
|
return [4 /*yield*/, sdk.api.chat_rooms.createSome([
|
|
5456
5456
|
{ enduserIds: [source.id], title: 'title' },
|
|
5457
5457
|
{ enduserIds: [otherEnduser.id], title: 'title' },
|
|
5458
5458
|
])];
|
|
5459
5459
|
case 4:
|
|
5460
|
-
_d = (
|
|
5460
|
+
_d = (_f.sent()).created, roomToMove = _d[0], room = _d[1];
|
|
5461
5461
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomToMove.id, senderId: source.id, message: 'test' })];
|
|
5462
5462
|
case 5:
|
|
5463
|
-
chatToMove =
|
|
5463
|
+
chatToMove = _f.sent();
|
|
5464
5464
|
return [4 /*yield*/, sdk.api.chats.createOne({
|
|
5465
5465
|
roomId: room.id, senderId: otherEnduser.id, message: 'test'
|
|
5466
5466
|
})];
|
|
5467
5467
|
case 6:
|
|
5468
|
-
chat =
|
|
5468
|
+
chat = _f.sent();
|
|
5469
5469
|
return [4 /*yield*/, sdk.api.endusers.merge({ sourceEnduserId: source.id, destinationEnduserId: destination.id })];
|
|
5470
5470
|
case 7:
|
|
5471
|
-
|
|
5471
|
+
_f.sent();
|
|
5472
5472
|
return [4 /*yield*/, async_test("Source is deleted", function () { return sdk.api.endusers.getOne(source.id); }, handleAnyError)];
|
|
5473
5473
|
case 8:
|
|
5474
|
-
|
|
5474
|
+
_f.sent();
|
|
5475
5475
|
return [4 /*yield*/, async_test("Destination merged", function () { return sdk.api.endusers.getOne(destination.id); }, { onResult: function (e) { return (e.email === destination.email
|
|
5476
5476
|
&& e.fname === source.fname
|
|
5477
5477
|
&& e.lname === source.lname); } })];
|
|
5478
5478
|
case 9:
|
|
5479
|
-
|
|
5479
|
+
_f.sent();
|
|
5480
5480
|
return [4 /*yield*/, async_test("Other email is unchanged", function () { return sdk.api.emails.getOne(email.id); }, { onResult: function (e) { return e.enduserId === otherEnduser.id; } })];
|
|
5481
5481
|
case 10:
|
|
5482
|
-
|
|
5482
|
+
_f.sent();
|
|
5483
5483
|
return [4 /*yield*/, 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; }); } })];
|
|
5484
5484
|
case 11:
|
|
5485
|
-
|
|
5485
|
+
_f.sent();
|
|
5486
5486
|
return [4 /*yield*/, 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; })); } })];
|
|
5487
5487
|
case 12:
|
|
5488
|
-
|
|
5488
|
+
_f.sent();
|
|
5489
5489
|
return [4 /*yield*/, async_test("Other chat is unchanged", function () { return sdk.api.chats.getOne(chat.id); }, { onResult: function (e) { return e.senderId === otherEnduser.id; } })];
|
|
5490
5490
|
case 13:
|
|
5491
|
-
|
|
5491
|
+
_f.sent();
|
|
5492
5492
|
return [4 /*yield*/, async_test("Email moved", function () { return sdk.api.emails.getOne(emailToMove.id); }, { onResult: function (e) { return e.enduserId === destination.id; } })];
|
|
5493
5493
|
case 14:
|
|
5494
|
-
|
|
5494
|
+
_f.sent();
|
|
5495
5495
|
return [4 /*yield*/, async_test("Chat moved", function () { return sdk.api.chats.getOne(chatToMove.id); }, { onResult: function (e) { return e.senderId === destination.id; } })];
|
|
5496
5496
|
case 15:
|
|
5497
|
-
|
|
5497
|
+
_f.sent();
|
|
5498
5498
|
return [4 /*yield*/, 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)); } })];
|
|
5499
5499
|
case 16:
|
|
5500
|
-
|
|
5500
|
+
_f.sent();
|
|
5501
5501
|
return [4 /*yield*/, 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; })); } })];
|
|
5502
5502
|
case 17:
|
|
5503
|
-
|
|
5503
|
+
_f.sent();
|
|
5504
5504
|
return [4 /*yield*/, Promise.all([
|
|
5505
5505
|
sdk.api.endusers.deleteOne(destination.id),
|
|
5506
5506
|
sdk.api.endusers.deleteOne(otherEnduser.id),
|
|
@@ -5508,7 +5508,7 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
5508
5508
|
sdk.api.calendar_events.deleteOne(eventToMove.id),
|
|
5509
5509
|
])];
|
|
5510
5510
|
case 18:
|
|
5511
|
-
|
|
5511
|
+
_f.sent();
|
|
5512
5512
|
return [2 /*return*/];
|
|
5513
5513
|
}
|
|
5514
5514
|
});
|
|
@@ -5608,8 +5608,8 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
5608
5608
|
var handleRateLimitError = { shouldError: true, onError: function (e) { return e.message === 'Rate limit exceeded'; } };
|
|
5609
5609
|
var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5610
5610
|
var _a, e1, e2, _b, email1, email2, _c, sms1, sms2, _d, email3, email4, email5;
|
|
5611
|
-
return __generator(this, function (
|
|
5612
|
-
switch (
|
|
5611
|
+
return __generator(this, function (_f) {
|
|
5612
|
+
switch (_f.label) {
|
|
5613
5613
|
case 0:
|
|
5614
5614
|
log_header("Rate Limits");
|
|
5615
5615
|
return [4 /*yield*/, sdk.api.endusers.createSome([
|
|
@@ -5617,7 +5617,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5617
5617
|
{ fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
|
|
5618
5618
|
])];
|
|
5619
5619
|
case 1:
|
|
5620
|
-
_a = (
|
|
5620
|
+
_a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
|
|
5621
5621
|
return [4 /*yield*/, async_test("Same template email rate limit 1-per-minute", function () { return sdk.api.emails.createSome([
|
|
5622
5622
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
|
|
5623
5623
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
|
|
@@ -5625,13 +5625,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5625
5625
|
// these should work, as 1 each is safe
|
|
5626
5626
|
];
|
|
5627
5627
|
case 2:
|
|
5628
|
-
|
|
5628
|
+
_f.sent();
|
|
5629
5629
|
return [4 /*yield*/, sdk.api.emails.createSome([
|
|
5630
5630
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
|
|
5631
5631
|
{ logOnly: true, enduserId: e2.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
|
|
5632
5632
|
])];
|
|
5633
5633
|
case 3:
|
|
5634
|
-
_b = (
|
|
5634
|
+
_b = (_f.sent()).created, email1 = _b[0], email2 = _b[1];
|
|
5635
5635
|
// already has 1 created
|
|
5636
5636
|
return [4 /*yield*/, async_test("Same enduser rate limit 5 per 5 seconds", function () { return sdk.api.emails.createSome([
|
|
5637
5637
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', },
|
|
@@ -5642,15 +5642,15 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5642
5642
|
]); }, handleRateLimitError)];
|
|
5643
5643
|
case 4:
|
|
5644
5644
|
// already has 1 created
|
|
5645
|
-
|
|
5645
|
+
_f.sent();
|
|
5646
5646
|
return [4 /*yield*/, wait(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
|
|
5647
5647
|
case 5:
|
|
5648
|
-
|
|
5648
|
+
_f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
|
|
5649
5649
|
return [4 /*yield*/, async_test("Same template email rate limit 1-per-minute after creating", function () { return sdk.api.emails.createOne({
|
|
5650
5650
|
logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID
|
|
5651
5651
|
}); }, handleRateLimitError)];
|
|
5652
5652
|
case 6:
|
|
5653
|
-
|
|
5653
|
+
_f.sent();
|
|
5654
5654
|
return [4 /*yield*/, async_test("Same template sms rate limit 1-per-minute", function () { return sdk.api.sms_messages.createSome([
|
|
5655
5655
|
{ logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
|
|
5656
5656
|
{ logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
|
|
@@ -5658,13 +5658,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5658
5658
|
// these should work, as 1 each is safe
|
|
5659
5659
|
];
|
|
5660
5660
|
case 7:
|
|
5661
|
-
|
|
5661
|
+
_f.sent();
|
|
5662
5662
|
return [4 /*yield*/, sdk.api.sms_messages.createSome([
|
|
5663
5663
|
{ logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
|
|
5664
5664
|
{ logOnly: true, enduserId: e2.id, templateId: PLACEHOLDER_ID, message: 'hi' },
|
|
5665
5665
|
])];
|
|
5666
5666
|
case 8:
|
|
5667
|
-
_c = (
|
|
5667
|
+
_c = (_f.sent()).created, sms1 = _c[0], sms2 = _c[1];
|
|
5668
5668
|
// already has 1 created, so 3 new should error (4 > 3)
|
|
5669
5669
|
return [4 /*yield*/, async_test("Same enduser sms rate limit 3 per 3 seconds", function () { return sdk.api.sms_messages.createSome([
|
|
5670
5670
|
{ logOnly: true, enduserId: e1.id, message: 'hi' },
|
|
@@ -5673,24 +5673,24 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5673
5673
|
]); }, handleRateLimitError)];
|
|
5674
5674
|
case 9:
|
|
5675
5675
|
// already has 1 created, so 3 new should error (4 > 3)
|
|
5676
|
-
|
|
5676
|
+
_f.sent();
|
|
5677
5677
|
return [4 /*yield*/, wait(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
|
|
5678
5678
|
case 10:
|
|
5679
|
-
|
|
5679
|
+
_f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
|
|
5680
5680
|
return [4 /*yield*/, async_test("Same template sms rate limit 1-per-minute after creating", function () { return sdk.api.sms_messages.createOne({
|
|
5681
5681
|
logOnly: true, enduserId: e2.id, templateId: PLACEHOLDER_ID, message: 'hi'
|
|
5682
5682
|
}); }, handleRateLimitError)
|
|
5683
5683
|
// these should work, as they do not have the same template
|
|
5684
5684
|
];
|
|
5685
5685
|
case 11:
|
|
5686
|
-
|
|
5686
|
+
_f.sent();
|
|
5687
5687
|
return [4 /*yield*/, sdk.api.emails.createSome([
|
|
5688
5688
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5689
5689
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5690
5690
|
{ logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
|
|
5691
5691
|
])];
|
|
5692
5692
|
case 12:
|
|
5693
|
-
_d = (
|
|
5693
|
+
_d = (_f.sent()).created, email3 = _d[0], email4 = _d[1], email5 = _d[2];
|
|
5694
5694
|
return [4 /*yield*/, Promise.all([
|
|
5695
5695
|
sdk.api.endusers.deleteOne(e1.id),
|
|
5696
5696
|
sdk.api.endusers.deleteOne(e2.id),
|
|
@@ -5703,7 +5703,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5703
5703
|
sdk.api.sms_messages.deleteOne(sms2.id),
|
|
5704
5704
|
])];
|
|
5705
5705
|
case 13:
|
|
5706
|
-
|
|
5706
|
+
_f.sent();
|
|
5707
5707
|
return [2 /*return*/];
|
|
5708
5708
|
}
|
|
5709
5709
|
});
|
|
@@ -5711,8 +5711,8 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
5711
5711
|
var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5712
5712
|
var _a, e1, e2, _b, jRemove, jDontRemove, removeStep1, removeStep2, dontRemoveStep1, dontRemoveStep2, room;
|
|
5713
5713
|
var _c, _d;
|
|
5714
|
-
return __generator(this, function (
|
|
5715
|
-
switch (
|
|
5714
|
+
return __generator(this, function (_f) {
|
|
5715
|
+
switch (_f.label) {
|
|
5716
5716
|
case 0:
|
|
5717
5717
|
log_header("Remove From Journey (Incoming Comms)");
|
|
5718
5718
|
return [4 /*yield*/, sdk.api.endusers.createSome([
|
|
@@ -5720,56 +5720,56 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5720
5720
|
{ fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
|
|
5721
5721
|
])];
|
|
5722
5722
|
case 1:
|
|
5723
|
-
_a = (
|
|
5723
|
+
_a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
|
|
5724
5724
|
return [4 /*yield*/, sdk.api.journeys.createSome([
|
|
5725
5725
|
{ title: "j1", onIncomingEnduserCommunication: 'Remove' },
|
|
5726
5726
|
{ title: "j2" },
|
|
5727
5727
|
])];
|
|
5728
5728
|
case 2:
|
|
5729
|
-
_b = (
|
|
5729
|
+
_b = (_f.sent()).created, jRemove = _b[0], jDontRemove = _b[1];
|
|
5730
5730
|
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
5731
5731
|
journeyId: jRemove.id,
|
|
5732
5732
|
events: [{ type: 'onJourneyStart', info: {} }],
|
|
5733
5733
|
action: { type: 'setEnduserStatus', info: { status: 'Started' } },
|
|
5734
5734
|
})];
|
|
5735
5735
|
case 3:
|
|
5736
|
-
removeStep1 =
|
|
5736
|
+
removeStep1 = _f.sent();
|
|
5737
5737
|
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
5738
5738
|
journeyId: jRemove.id,
|
|
5739
5739
|
events: [{ type: 'afterAction', info: { automationStepId: removeStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
|
|
5740
5740
|
action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
|
|
5741
5741
|
})];
|
|
5742
5742
|
case 4:
|
|
5743
|
-
removeStep2 =
|
|
5743
|
+
removeStep2 = _f.sent();
|
|
5744
5744
|
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
5745
5745
|
journeyId: jDontRemove.id,
|
|
5746
5746
|
events: [{ type: 'onJourneyStart', info: {} }],
|
|
5747
5747
|
action: { type: 'setEnduserStatus', info: { status: 'Started' } },
|
|
5748
5748
|
})];
|
|
5749
5749
|
case 5:
|
|
5750
|
-
dontRemoveStep1 =
|
|
5750
|
+
dontRemoveStep1 = _f.sent();
|
|
5751
5751
|
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
5752
5752
|
journeyId: jDontRemove.id,
|
|
5753
5753
|
events: [{ type: 'afterAction', info: { automationStepId: dontRemoveStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
|
|
5754
5754
|
action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
|
|
5755
5755
|
})];
|
|
5756
5756
|
case 6:
|
|
5757
|
-
dontRemoveStep2 =
|
|
5757
|
+
dontRemoveStep2 = _f.sent();
|
|
5758
5758
|
return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[jRemove.id] = '', _c[jDontRemove.id] = '', _c) })];
|
|
5759
5759
|
case 7:
|
|
5760
|
-
|
|
5760
|
+
_f.sent();
|
|
5761
5761
|
return [4 /*yield*/, sdk.api.endusers.updateOne(e2.id, { journeys: (_d = {}, _d[jRemove.id] = '', _d[jDontRemove.id] = '', _d) })];
|
|
5762
5762
|
case 8:
|
|
5763
|
-
|
|
5763
|
+
_f.sent();
|
|
5764
5764
|
return [4 /*yield*/, wait(undefined, 100)];
|
|
5765
5765
|
case 9:
|
|
5766
|
-
|
|
5766
|
+
_f.sent();
|
|
5767
5767
|
return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
|
|
5768
5768
|
case 10:
|
|
5769
|
-
room =
|
|
5769
|
+
room = _f.sent();
|
|
5770
5770
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })];
|
|
5771
5771
|
case 11:
|
|
5772
|
-
|
|
5772
|
+
_f.sent();
|
|
5773
5773
|
return [4 /*yield*/, 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) {
|
|
5774
5774
|
return a.journeyId === jRemove.id
|
|
5775
5775
|
&& a.automationStepId === removeStep1.id
|
|
@@ -5795,10 +5795,10 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5795
5795
|
&& a.status === 'active';
|
|
5796
5796
|
})); }, 25, 400); }, passOnAnyResult)];
|
|
5797
5797
|
case 12:
|
|
5798
|
-
|
|
5798
|
+
_f.sent();
|
|
5799
5799
|
return [4 /*yield*/, sdk.api.journeys.handle_incoming_communication({ enduserId: e2.id })];
|
|
5800
5800
|
case 13:
|
|
5801
|
-
|
|
5801
|
+
_f.sent();
|
|
5802
5802
|
return [4 /*yield*/, async_test("handle_incoming_communication test for other enduser", function () { return pollForResults(sdk.api.automated_actions.getSome, function (actions) { return (!!actions.find(function (a) {
|
|
5803
5803
|
return a.journeyId === jRemove.id
|
|
5804
5804
|
&& a.automationStepId === removeStep1.id
|
|
@@ -5806,7 +5806,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5806
5806
|
&& a.status === 'cancelled';
|
|
5807
5807
|
})); }, 100, 25); }, passOnAnyResult)];
|
|
5808
5808
|
case 14:
|
|
5809
|
-
|
|
5809
|
+
_f.sent();
|
|
5810
5810
|
return [4 /*yield*/, Promise.all([
|
|
5811
5811
|
sdk.api.endusers.deleteOne(e1.id),
|
|
5812
5812
|
sdk.api.endusers.deleteOne(e2.id),
|
|
@@ -5815,7 +5815,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5815
5815
|
sdk.api.chat_rooms.deleteOne(room.id),
|
|
5816
5816
|
])];
|
|
5817
5817
|
case 15:
|
|
5818
|
-
|
|
5818
|
+
_f.sent();
|
|
5819
5819
|
return [2 /*return*/];
|
|
5820
5820
|
}
|
|
5821
5821
|
});
|
|
@@ -7518,11 +7518,11 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
|
|
|
7518
7518
|
case 14:
|
|
7519
7519
|
_a.sent();
|
|
7520
7520
|
return [4 /*yield*/, async_test("Reminder processed after delay", function () { return pollForResults(function () { return sdk.api.tickets.getOne(tToRemind.id); }, function (t) {
|
|
7521
|
-
var _a, _b, _c, _d,
|
|
7521
|
+
var _a, _b, _c, _d, _f, _g;
|
|
7522
7522
|
return (((_b = (_a = t.reminders) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.didRemind) === true
|
|
7523
7523
|
&& t.nextReminderInMS === -1
|
|
7524
7524
|
&& ((_d = (_c = t.reminders) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.didRemind) === true
|
|
7525
|
-
&& ((
|
|
7525
|
+
&& ((_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);
|
|
7526
7526
|
}, 100, 50); }, passOnAnyResult)
|
|
7527
7527
|
// cleanup
|
|
7528
7528
|
];
|
|
@@ -7537,26 +7537,67 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
|
|
|
7537
7537
|
}
|
|
7538
7538
|
});
|
|
7539
7539
|
}); };
|
|
7540
|
+
var bulk_read_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
7541
|
+
var numEndusers, endusers, _i, endusers_1, e;
|
|
7542
|
+
return __generator(this, function (_a) {
|
|
7543
|
+
switch (_a.label) {
|
|
7544
|
+
case 0:
|
|
7545
|
+
log_header("Bulk Read (ID-lookup) Tests");
|
|
7546
|
+
numEndusers = 101;
|
|
7547
|
+
return [4 /*yield*/, sdk.api.endusers.createSome(Array.from(Array(numEndusers).keys()).map(function () { return 0; }).map(function () { return ({}); }))];
|
|
7548
|
+
case 1:
|
|
7549
|
+
endusers = (_a.sent()).created;
|
|
7550
|
+
return [4 /*yield*/, 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
|
|
7551
|
+
&& result.matches.filter(function (e) { return endusers.find(function (_e) { return _e.id === e.id; }); }).length === result.matches.length); } })];
|
|
7552
|
+
case 2:
|
|
7553
|
+
_a.sent();
|
|
7554
|
+
return [4 /*yield*/, 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)];
|
|
7555
|
+
case 3:
|
|
7556
|
+
_a.sent();
|
|
7557
|
+
return [4 /*yield*/, 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; }) }); }, {
|
|
7558
|
+
shouldError: true,
|
|
7559
|
+
onError: function (e) { return e.message === 'Error parsing field ids: Arrays should not contain more than 1000 elements'; }
|
|
7560
|
+
})
|
|
7561
|
+
// cleanup
|
|
7562
|
+
];
|
|
7563
|
+
case 4:
|
|
7564
|
+
_a.sent();
|
|
7565
|
+
_i = 0, endusers_1 = endusers;
|
|
7566
|
+
_a.label = 5;
|
|
7567
|
+
case 5:
|
|
7568
|
+
if (!(_i < endusers_1.length)) return [3 /*break*/, 8];
|
|
7569
|
+
e = endusers_1[_i];
|
|
7570
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(e.id)];
|
|
7571
|
+
case 6:
|
|
7572
|
+
_a.sent();
|
|
7573
|
+
_a.label = 7;
|
|
7574
|
+
case 7:
|
|
7575
|
+
_i++;
|
|
7576
|
+
return [3 /*break*/, 5];
|
|
7577
|
+
case 8: return [2 /*return*/];
|
|
7578
|
+
}
|
|
7579
|
+
});
|
|
7580
|
+
}); };
|
|
7540
7581
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
7541
|
-
var err_1, n, _a, _b, _c, _i, returnValidation, t, _d,
|
|
7542
|
-
var
|
|
7543
|
-
return __generator(this, function (
|
|
7544
|
-
switch (
|
|
7582
|
+
var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
|
|
7583
|
+
var _j, _k;
|
|
7584
|
+
return __generator(this, function (_l) {
|
|
7585
|
+
switch (_l.label) {
|
|
7545
7586
|
case 0:
|
|
7546
7587
|
log_header("API");
|
|
7547
7588
|
return [4 /*yield*/, async_test("email-image tracking endpoint is live", function () { return axios.get('http://localhost:8080/email-image/'); }, { onResult: function (result) { return result.data === TRACK_OPEN_IMAGE.toString('utf-8'); } })];
|
|
7548
7589
|
case 1:
|
|
7549
|
-
|
|
7550
|
-
|
|
7590
|
+
_l.sent();
|
|
7591
|
+
_l.label = 2;
|
|
7551
7592
|
case 2:
|
|
7552
|
-
|
|
7593
|
+
_l.trys.push([2, 45, , 46]);
|
|
7553
7594
|
form_conditional_logic_tests();
|
|
7554
7595
|
return [4 /*yield*/, test_weighted_round_robin()];
|
|
7555
7596
|
case 3:
|
|
7556
|
-
|
|
7597
|
+
_l.sent();
|
|
7557
7598
|
return [4 /*yield*/, validate_schema()];
|
|
7558
7599
|
case 4:
|
|
7559
|
-
|
|
7600
|
+
_l.sent();
|
|
7560
7601
|
return [4 /*yield*/, Promise.all([
|
|
7561
7602
|
sdk.authenticate(email, password),
|
|
7562
7603
|
sdkSub.authenticate(subUserEmail, password),
|
|
@@ -7567,128 +7608,131 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
|
|
|
7567
7608
|
// console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
|
|
7568
7609
|
];
|
|
7569
7610
|
case 5:
|
|
7570
|
-
|
|
7611
|
+
_l.sent();
|
|
7571
7612
|
// console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
|
|
7572
7613
|
return [4 /*yield*/, async_test("count exists",
|
|
7573
7614
|
// @ts-ignore
|
|
7574
7615
|
function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
|
|
7575
7616
|
case 6:
|
|
7576
7617
|
// console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
|
|
7577
|
-
|
|
7618
|
+
_l.sent();
|
|
7578
7619
|
return [4 /*yield*/, async_test("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: 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'; } })];
|
|
7579
7620
|
case 7:
|
|
7580
|
-
|
|
7621
|
+
_l.sent();
|
|
7581
7622
|
return [4 /*yield*/, mfa_tests()];
|
|
7582
7623
|
case 8:
|
|
7583
|
-
|
|
7624
|
+
_l.sent();
|
|
7584
7625
|
return [4 /*yield*/, setup_tests()];
|
|
7585
7626
|
case 9:
|
|
7586
|
-
|
|
7627
|
+
_l.sent();
|
|
7587
7628
|
return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
|
|
7588
7629
|
case 10:
|
|
7589
|
-
|
|
7590
|
-
return [4 /*yield*/,
|
|
7630
|
+
_l.sent(); // should come right after setup tests
|
|
7631
|
+
return [4 /*yield*/, bulk_read_tests()];
|
|
7591
7632
|
case 11:
|
|
7592
|
-
|
|
7593
|
-
return [4 /*yield*/,
|
|
7633
|
+
_l.sent();
|
|
7634
|
+
return [4 /*yield*/, ticket_reminder_tests()];
|
|
7594
7635
|
case 12:
|
|
7595
|
-
|
|
7596
|
-
return [4 /*yield*/,
|
|
7636
|
+
_l.sent();
|
|
7637
|
+
return [4 /*yield*/, enduser_access_tags_tests()];
|
|
7597
7638
|
case 13:
|
|
7598
|
-
|
|
7599
|
-
return [4 /*yield*/,
|
|
7639
|
+
_l.sent();
|
|
7640
|
+
return [4 /*yield*/, marketing_email_unsubscribe_tests()];
|
|
7600
7641
|
case 14:
|
|
7601
|
-
|
|
7602
|
-
return [4 /*yield*/,
|
|
7642
|
+
_l.sent();
|
|
7643
|
+
return [4 /*yield*/, unique_strings_tests()];
|
|
7603
7644
|
case 15:
|
|
7604
|
-
|
|
7605
|
-
return [4 /*yield*/,
|
|
7645
|
+
_l.sent();
|
|
7646
|
+
return [4 /*yield*/, self_serve_appointment_booking_tests()];
|
|
7606
7647
|
case 16:
|
|
7607
|
-
|
|
7608
|
-
return [4 /*yield*/,
|
|
7648
|
+
_l.sent();
|
|
7649
|
+
return [4 /*yield*/, alternate_phones_tests()];
|
|
7609
7650
|
case 17:
|
|
7610
|
-
|
|
7611
|
-
return [4 /*yield*/,
|
|
7651
|
+
_l.sent();
|
|
7652
|
+
return [4 /*yield*/, ticket_queue_tests()];
|
|
7612
7653
|
case 18:
|
|
7613
|
-
|
|
7614
|
-
return [4 /*yield*/,
|
|
7654
|
+
_l.sent();
|
|
7655
|
+
return [4 /*yield*/, no_chained_triggers_tests()];
|
|
7615
7656
|
case 19:
|
|
7616
|
-
|
|
7617
|
-
return [4 /*yield*/,
|
|
7657
|
+
_l.sent();
|
|
7658
|
+
return [4 /*yield*/, field_equals_trigger_tests()];
|
|
7618
7659
|
case 20:
|
|
7619
|
-
|
|
7620
|
-
return [4 /*yield*/,
|
|
7660
|
+
_l.sent();
|
|
7661
|
+
return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
|
|
7621
7662
|
case 21:
|
|
7622
|
-
|
|
7623
|
-
return [4 /*yield*/,
|
|
7663
|
+
_l.sent();
|
|
7664
|
+
return [4 /*yield*/, role_based_access_tests()];
|
|
7624
7665
|
case 22:
|
|
7625
|
-
|
|
7626
|
-
return [4 /*yield*/,
|
|
7666
|
+
_l.sent();
|
|
7667
|
+
return [4 /*yield*/, automation_trigger_tests()];
|
|
7627
7668
|
case 23:
|
|
7628
|
-
|
|
7629
|
-
return [4 /*yield*/,
|
|
7669
|
+
_l.sent();
|
|
7670
|
+
return [4 /*yield*/, enduser_session_tests()];
|
|
7630
7671
|
case 24:
|
|
7631
|
-
|
|
7632
|
-
return [4 /*yield*/,
|
|
7672
|
+
_l.sent();
|
|
7673
|
+
return [4 /*yield*/, nextReminderInMS_tests()];
|
|
7633
7674
|
case 25:
|
|
7634
|
-
|
|
7635
|
-
return [4 /*yield*/,
|
|
7675
|
+
_l.sent();
|
|
7676
|
+
return [4 /*yield*/, search_tests()];
|
|
7636
7677
|
case 26:
|
|
7637
|
-
|
|
7638
|
-
return [4 /*yield*/,
|
|
7678
|
+
_l.sent();
|
|
7679
|
+
return [4 /*yield*/, wait_for_trigger_tests()];
|
|
7639
7680
|
case 27:
|
|
7640
|
-
|
|
7641
|
-
return [4 /*yield*/,
|
|
7681
|
+
_l.sent();
|
|
7682
|
+
return [4 /*yield*/, pdf_generation()];
|
|
7642
7683
|
case 28:
|
|
7643
|
-
|
|
7644
|
-
return [4 /*yield*/,
|
|
7684
|
+
_l.sent();
|
|
7685
|
+
return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
|
|
7645
7686
|
case 29:
|
|
7646
|
-
|
|
7647
|
-
return [4 /*yield*/,
|
|
7687
|
+
_l.sent();
|
|
7688
|
+
return [4 /*yield*/, rate_limit_tests()];
|
|
7648
7689
|
case 30:
|
|
7649
|
-
|
|
7650
|
-
return [4 /*yield*/,
|
|
7690
|
+
_l.sent();
|
|
7691
|
+
return [4 /*yield*/, merge_enduser_tests()];
|
|
7651
7692
|
case 31:
|
|
7652
|
-
|
|
7653
|
-
return [4 /*yield*/,
|
|
7693
|
+
_l.sent();
|
|
7694
|
+
return [4 /*yield*/, auto_reply_tests()];
|
|
7654
7695
|
case 32:
|
|
7655
|
-
|
|
7656
|
-
return [4 /*yield*/,
|
|
7696
|
+
_l.sent();
|
|
7697
|
+
return [4 /*yield*/, sub_organization_enduser_tests()];
|
|
7657
7698
|
case 33:
|
|
7658
|
-
|
|
7659
|
-
return [4 /*yield*/,
|
|
7699
|
+
_l.sent();
|
|
7700
|
+
return [4 /*yield*/, sub_organization_tests()];
|
|
7660
7701
|
case 34:
|
|
7661
|
-
|
|
7662
|
-
return [4 /*yield*/,
|
|
7702
|
+
_l.sent();
|
|
7703
|
+
return [4 /*yield*/, filter_by_date_tests()];
|
|
7663
7704
|
case 35:
|
|
7664
|
-
|
|
7665
|
-
return [4 /*yield*/,
|
|
7705
|
+
_l.sent();
|
|
7706
|
+
return [4 /*yield*/, generate_user_auth_tests()];
|
|
7666
7707
|
case 36:
|
|
7667
|
-
|
|
7668
|
-
return [4 /*yield*/,
|
|
7708
|
+
_l.sent();
|
|
7709
|
+
return [4 /*yield*/, generateEnduserAuthTests()];
|
|
7669
7710
|
case 37:
|
|
7670
|
-
|
|
7671
|
-
return [4 /*yield*/,
|
|
7711
|
+
_l.sent();
|
|
7712
|
+
return [4 /*yield*/, public_form_tests()];
|
|
7672
7713
|
case 38:
|
|
7673
|
-
|
|
7674
|
-
return [4 /*yield*/,
|
|
7714
|
+
_l.sent();
|
|
7715
|
+
return [4 /*yield*/, badInputTests()];
|
|
7675
7716
|
case 39:
|
|
7676
|
-
|
|
7677
|
-
return [4 /*yield*/,
|
|
7717
|
+
_l.sent();
|
|
7718
|
+
return [4 /*yield*/, filterTests()];
|
|
7678
7719
|
case 40:
|
|
7679
|
-
|
|
7680
|
-
return [4 /*yield*/,
|
|
7720
|
+
_l.sent();
|
|
7721
|
+
return [4 /*yield*/, updatesTests()];
|
|
7681
7722
|
case 41:
|
|
7682
|
-
|
|
7683
|
-
return [4 /*yield*/,
|
|
7723
|
+
_l.sent();
|
|
7724
|
+
return [4 /*yield*/, threadKeyTests()];
|
|
7684
7725
|
case 42:
|
|
7685
|
-
|
|
7686
|
-
return [4 /*yield*/,
|
|
7726
|
+
_l.sent();
|
|
7727
|
+
return [4 /*yield*/, enduserAccessTests()];
|
|
7687
7728
|
case 43:
|
|
7688
|
-
|
|
7689
|
-
return [
|
|
7729
|
+
_l.sent();
|
|
7730
|
+
return [4 /*yield*/, enduser_redaction_tests()];
|
|
7690
7731
|
case 44:
|
|
7691
|
-
|
|
7732
|
+
_l.sent();
|
|
7733
|
+
return [3 /*break*/, 46];
|
|
7734
|
+
case 45:
|
|
7735
|
+
err_1 = _l.sent();
|
|
7692
7736
|
console.error("Failed during custom test");
|
|
7693
7737
|
if (err_1.message && err_1.info) {
|
|
7694
7738
|
console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
|
|
@@ -7697,20 +7741,20 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
|
|
|
7697
7741
|
console.error(err_1);
|
|
7698
7742
|
}
|
|
7699
7743
|
process.exit(1);
|
|
7700
|
-
return [3 /*break*/,
|
|
7701
|
-
case
|
|
7744
|
+
return [3 /*break*/, 46];
|
|
7745
|
+
case 46:
|
|
7702
7746
|
_a = schema;
|
|
7703
7747
|
_b = [];
|
|
7704
7748
|
for (_c in _a)
|
|
7705
7749
|
_b.push(_c);
|
|
7706
7750
|
_i = 0;
|
|
7707
|
-
|
|
7708
|
-
case
|
|
7709
|
-
if (!(_i < _b.length)) return [3 /*break*/,
|
|
7751
|
+
_l.label = 47;
|
|
7752
|
+
case 47:
|
|
7753
|
+
if (!(_i < _b.length)) return [3 /*break*/, 50];
|
|
7710
7754
|
_c = _b[_i];
|
|
7711
|
-
if (!(_c in _a)) return [3 /*break*/,
|
|
7755
|
+
if (!(_c in _a)) return [3 /*break*/, 49];
|
|
7712
7756
|
n = _c;
|
|
7713
|
-
returnValidation = (
|
|
7757
|
+
returnValidation = (_k = (_j = schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
|
|
7714
7758
|
return [4 /*yield*/, run_generated_tests({
|
|
7715
7759
|
queries: sdk.api[n],
|
|
7716
7760
|
model: schema[n],
|
|
@@ -7719,41 +7763,41 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
|
|
|
7719
7763
|
create: returnValidation // ModelFields<ClientModel>,
|
|
7720
7764
|
}
|
|
7721
7765
|
})];
|
|
7722
|
-
case 47:
|
|
7723
|
-
_k.sent();
|
|
7724
|
-
_k.label = 48;
|
|
7725
7766
|
case 48:
|
|
7726
|
-
|
|
7727
|
-
|
|
7767
|
+
_l.sent();
|
|
7768
|
+
_l.label = 49;
|
|
7728
7769
|
case 49:
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
for (_f in _d)
|
|
7732
|
-
_e.push(_f);
|
|
7733
|
-
_g = 0;
|
|
7734
|
-
_k.label = 50;
|
|
7770
|
+
_i++;
|
|
7771
|
+
return [3 /*break*/, 47];
|
|
7735
7772
|
case 50:
|
|
7736
|
-
|
|
7737
|
-
_f =
|
|
7738
|
-
|
|
7739
|
-
|
|
7740
|
-
|
|
7773
|
+
_d = tests;
|
|
7774
|
+
_f = [];
|
|
7775
|
+
for (_g in _d)
|
|
7776
|
+
_f.push(_g);
|
|
7777
|
+
_h = 0;
|
|
7778
|
+
_l.label = 51;
|
|
7741
7779
|
case 51:
|
|
7742
|
-
|
|
7743
|
-
|
|
7780
|
+
if (!(_h < _f.length)) return [3 /*break*/, 56];
|
|
7781
|
+
_g = _f[_h];
|
|
7782
|
+
if (!(_g in _d)) return [3 /*break*/, 55];
|
|
7783
|
+
t = _g;
|
|
7784
|
+
_l.label = 52;
|
|
7744
7785
|
case 52:
|
|
7745
|
-
|
|
7746
|
-
return [
|
|
7786
|
+
_l.trys.push([52, 54, , 55]);
|
|
7787
|
+
return [4 /*yield*/, tests[t]()];
|
|
7747
7788
|
case 53:
|
|
7748
|
-
|
|
7789
|
+
_l.sent();
|
|
7790
|
+
return [3 /*break*/, 55];
|
|
7791
|
+
case 54:
|
|
7792
|
+
err_2 = _l.sent();
|
|
7749
7793
|
console.error("Error running test:");
|
|
7750
7794
|
console.error(err_2);
|
|
7751
7795
|
process.exit(1);
|
|
7752
|
-
return [3 /*break*/,
|
|
7753
|
-
case 54:
|
|
7754
|
-
_g++;
|
|
7755
|
-
return [3 /*break*/, 50];
|
|
7796
|
+
return [3 /*break*/, 55];
|
|
7756
7797
|
case 55:
|
|
7798
|
+
_h++;
|
|
7799
|
+
return [3 /*break*/, 51];
|
|
7800
|
+
case 56:
|
|
7757
7801
|
process.exit();
|
|
7758
7802
|
return [2 /*return*/];
|
|
7759
7803
|
}
|