@tellescope/sdk 1.67.6 → 1.67.7
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/sdk.d.ts +1 -0
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +1 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +139 -146
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +0 -1
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +1 -1
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +1 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +139 -146
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/sdk.ts +4 -0
- package/src/tests/tests.ts +114 -66
- package/test_generated.pdf +0 -0
package/lib/esm/tests/tests.js
CHANGED
|
@@ -877,18 +877,24 @@ var run_generated_tests = function (_a) {
|
|
|
877
877
|
case 5: return [4 /*yield*/, async_test("create-".concat(singularName), function () { return queries.createOne(instance); }, { onResult: function (r) { return !!(_id = r.id) && (name === 'api_keys' || !!r.creator) && validateReturnType(returns.create, r, defaultValidation); } })];
|
|
878
878
|
case 6:
|
|
879
879
|
_c.sent();
|
|
880
|
-
return [4 /*yield*/,
|
|
880
|
+
return [4 /*yield*/, wait(undefined, 25)];
|
|
881
881
|
case 7:
|
|
882
882
|
_c.sent();
|
|
883
|
-
|
|
884
|
-
return [4 /*yield*/, async_test("update-".concat(singularName), function () { return queries.updateOne(_id, updates, { replaceObjectFields: true }); }, { onResult: function (u) { return typeof u === 'object' && u.id === _id; } })];
|
|
883
|
+
return [4 /*yield*/, async_test("log-".concat(singularName, " create"), function () { return sdk.api.user_logs.getOne({ resourceId: _id, resource: name, action: 'create' }); }, { onResult: function (r) { return r && r.userId === sdk.userInfo.id; } })];
|
|
885
884
|
case 8:
|
|
886
885
|
_c.sent();
|
|
887
|
-
|
|
886
|
+
if (!model.defaultActions.update) return [3 /*break*/, 12];
|
|
887
|
+
return [4 /*yield*/, async_test("update-".concat(singularName), function () { return queries.updateOne(_id, updates, { replaceObjectFields: true }); }, { onResult: function (u) { return typeof u === 'object' && u.id === _id; } })];
|
|
888
888
|
case 9:
|
|
889
889
|
_c.sent();
|
|
890
|
-
|
|
891
|
-
case 10:
|
|
890
|
+
return [4 /*yield*/, wait(undefined, 25)];
|
|
891
|
+
case 10:
|
|
892
|
+
_c.sent();
|
|
893
|
+
return [4 /*yield*/, async_test("log-".concat(singularName, " update"), function () { return sdk.api.user_logs.getOne({ resourceId: _id, resource: name, action: 'update' }); }, { onResult: function (r) { return r && r.userId === sdk.userInfo.id; } })];
|
|
894
|
+
case 11:
|
|
895
|
+
_c.sent();
|
|
896
|
+
_c.label = 12;
|
|
897
|
+
case 12: return [4 /*yield*/, async_test("get-".concat(singularName), function () { return queries.getOne(_id); }, { onResult: function (d) {
|
|
892
898
|
if (!(d === null || d === void 0 ? void 0 : d.id))
|
|
893
899
|
return false;
|
|
894
900
|
for (var k in instance) {
|
|
@@ -899,7 +905,7 @@ var run_generated_tests = function (_a) {
|
|
|
899
905
|
return true;
|
|
900
906
|
}
|
|
901
907
|
})];
|
|
902
|
-
case
|
|
908
|
+
case 13:
|
|
903
909
|
_c.sent();
|
|
904
910
|
return [4 /*yield*/, async_test("get-".concat(safeName), function () { return queries.getSome({ filter: filter }); }, { onResult: function (_a) {
|
|
905
911
|
var d = _a[0];
|
|
@@ -914,27 +920,30 @@ var run_generated_tests = function (_a) {
|
|
|
914
920
|
return true;
|
|
915
921
|
}
|
|
916
922
|
})];
|
|
917
|
-
case
|
|
923
|
+
case 14:
|
|
918
924
|
_c.sent();
|
|
919
925
|
return [4 /*yield*/, async_test("delete-".concat(singularName), function () { return queries.deleteOne(_id); }, passOnVoid)];
|
|
920
|
-
case
|
|
926
|
+
case 15:
|
|
927
|
+
_c.sent();
|
|
928
|
+
return [4 /*yield*/, wait(undefined, 25)];
|
|
929
|
+
case 16:
|
|
921
930
|
_c.sent();
|
|
922
931
|
return [4 /*yield*/, async_test("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })
|
|
923
932
|
// lots of side effects
|
|
924
933
|
];
|
|
925
|
-
case
|
|
934
|
+
case 17:
|
|
926
935
|
_c.sent();
|
|
927
|
-
if (!(name === 'endusers')) return [3 /*break*/,
|
|
936
|
+
if (!(name === 'endusers')) return [3 /*break*/, 19];
|
|
928
937
|
return [4 /*yield*/, wait(undefined, 100)];
|
|
929
|
-
case
|
|
938
|
+
case 18:
|
|
930
939
|
_c.sent();
|
|
931
|
-
return [3 /*break*/,
|
|
932
|
-
case
|
|
933
|
-
case
|
|
940
|
+
return [3 /*break*/, 21];
|
|
941
|
+
case 19: return [4 /*yield*/, wait(undefined, 50)];
|
|
942
|
+
case 20:
|
|
934
943
|
_c.sent();
|
|
935
|
-
_c.label =
|
|
936
|
-
case
|
|
937
|
-
case
|
|
944
|
+
_c.label = 21;
|
|
945
|
+
case 21: return [4 /*yield*/, async_test("log-".concat(singularName, " delete"), function () { return sdk.api.user_logs.getOne({ resourceId: _id, resource: name, action: 'delete' }); }, { onResult: function (r) { return r && r.userId === sdk.userInfo.id; } })];
|
|
946
|
+
case 22:
|
|
938
947
|
_c.sent();
|
|
939
948
|
return [2 /*return*/];
|
|
940
949
|
}
|
|
@@ -1898,21 +1907,24 @@ var files_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1898
1907
|
return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
|
|
1899
1908
|
case 3:
|
|
1900
1909
|
_c.sent();
|
|
1910
|
+
return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // to use new role, handle logout on role change
|
|
1911
|
+
case 4:
|
|
1912
|
+
_c.sent(); // to use new role, handle logout on role change
|
|
1901
1913
|
buff = buffer.Buffer.from('test file data');
|
|
1902
1914
|
return [4 /*yield*/, async_test("non admin can prepare file upload", function () { return sdkNonAdmin.api.files.prepare_file_upload({
|
|
1903
1915
|
name: 'Test File', size: buff.byteLength, type: 'text/plain'
|
|
1904
1916
|
}); }, { onResult: function (t) { return true; } })];
|
|
1905
|
-
case
|
|
1917
|
+
case 5:
|
|
1906
1918
|
_c.sent();
|
|
1907
1919
|
return [4 /*yield*/, sdk.api.files.prepare_file_upload({
|
|
1908
1920
|
name: 'Test Private', size: buff.byteLength, type: 'text/plain', enduserId: enduser.id,
|
|
1909
1921
|
})];
|
|
1910
|
-
case
|
|
1922
|
+
case 6:
|
|
1911
1923
|
_a = _c.sent(), presignedUpload = _a.presignedUpload, file = _a.file;
|
|
1912
1924
|
return [4 /*yield*/, sdk.api.files.prepare_file_upload({
|
|
1913
1925
|
name: 'Test Private (no enduser)', size: buff.byteLength, type: 'text/plain',
|
|
1914
1926
|
})];
|
|
1915
|
-
case
|
|
1927
|
+
case 7:
|
|
1916
1928
|
_b = _c.sent(), presignedNonEnduser = _b.presignedUpload, fileNonEnduser = _b.file;
|
|
1917
1929
|
return [4 /*yield*/, sdk.api.files.prepare_file_upload({
|
|
1918
1930
|
name: 'Test Public', size: buff.byteLength, type: 'text/plain',
|
|
@@ -1920,62 +1932,62 @@ var files_tests = function () { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1920
1932
|
publicRead: true,
|
|
1921
1933
|
publicName: 'public',
|
|
1922
1934
|
})];
|
|
1923
|
-
case
|
|
1935
|
+
case 8:
|
|
1924
1936
|
presigned2 = (_c.sent()).presignedUpload;
|
|
1925
1937
|
return [4 /*yield*/, sdk.UPLOAD(
|
|
1926
1938
|
// @ts-ignore
|
|
1927
1939
|
presignedUpload, buff)];
|
|
1928
|
-
case
|
|
1940
|
+
case 9:
|
|
1929
1941
|
_c.sent();
|
|
1930
1942
|
return [4 /*yield*/, sdk.UPLOAD(
|
|
1931
1943
|
// @ts-ignore
|
|
1932
1944
|
presignedNonEnduser, buff)];
|
|
1933
|
-
case
|
|
1945
|
+
case 10:
|
|
1934
1946
|
_c.sent();
|
|
1935
1947
|
return [4 /*yield*/, sdk.UPLOAD(
|
|
1936
1948
|
// @ts-ignore
|
|
1937
1949
|
presigned2, buff)];
|
|
1938
|
-
case
|
|
1950
|
+
case 11:
|
|
1939
1951
|
_c.sent();
|
|
1940
1952
|
return [4 /*yield*/, async_test("Files associated with enduser on prepare_file_upload", function () { return sdk.api.files.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (fs) { return fs.length === 2; } })];
|
|
1941
|
-
case
|
|
1953
|
+
case 12:
|
|
1942
1954
|
_c.sent();
|
|
1943
1955
|
return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1944
|
-
case
|
|
1956
|
+
case 13:
|
|
1945
1957
|
downloadURL = (_c.sent()).downloadURL;
|
|
1946
1958
|
return [4 /*yield*/, sdk.DOWNLOAD(downloadURL)];
|
|
1947
|
-
case
|
|
1959
|
+
case 14:
|
|
1948
1960
|
downloaded = _c.sent();
|
|
1949
1961
|
assert(downloaded === buff.toString(), 'downloaded file does not match uploaded file', 'upload, download comparison');
|
|
1950
1962
|
return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1951
|
-
case
|
|
1963
|
+
case 15:
|
|
1952
1964
|
cachedURL = (_c.sent()).downloadURL;
|
|
1953
1965
|
assert(downloadURL === cachedURL, 'cache download url failed', 'download url cache');
|
|
1954
1966
|
return [4 /*yield*/, enduserSDK.api.files.file_download_URL({ secureName: file.secureName })];
|
|
1955
|
-
case
|
|
1967
|
+
case 16:
|
|
1956
1968
|
urlForEnduser = (_c.sent()).downloadURL;
|
|
1957
1969
|
assert(downloadURL === urlForEnduser, 'failed to get download url for enduser', 'download url for enduser');
|
|
1958
1970
|
return [4 /*yield*/, Promise.all([
|
|
1959
1971
|
sdk.api.endusers.deleteOne(enduser.id),
|
|
1960
1972
|
])];
|
|
1961
|
-
case
|
|
1973
|
+
case 17:
|
|
1962
1974
|
_c.sent();
|
|
1963
1975
|
return [4 /*yield*/, wait(undefined, 2000)]; // wait for files to be deleted as side effect
|
|
1964
|
-
case
|
|
1976
|
+
case 18:
|
|
1965
1977
|
_c.sent(); // wait for files to be deleted as side effect
|
|
1966
1978
|
return [4 /*yield*/, async_test("Files cleaned up as side effect of deleting enduser", function () { return sdk.api.files.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (fs) { return fs.length === 0; } })];
|
|
1967
|
-
case
|
|
1979
|
+
case 19:
|
|
1968
1980
|
_c.sent();
|
|
1969
1981
|
return [4 /*yield*/, async_test("Non-enduser file is left", function () { return sdk.api.files.getSome(); }, { onResult: function (fs) { return fs.length > 0; } })
|
|
1970
1982
|
// cleanup other file
|
|
1971
1983
|
];
|
|
1972
|
-
case
|
|
1984
|
+
case 20:
|
|
1973
1985
|
_c.sent();
|
|
1974
1986
|
// cleanup other file
|
|
1975
1987
|
return [4 /*yield*/, Promise.all([
|
|
1976
1988
|
sdk.api.files.deleteOne(fileNonEnduser.id),
|
|
1977
1989
|
])];
|
|
1978
|
-
case
|
|
1990
|
+
case 21:
|
|
1979
1991
|
// cleanup other file
|
|
1980
1992
|
_c.sent();
|
|
1981
1993
|
return [2 /*return*/];
|
|
@@ -2416,11 +2428,8 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
2416
2428
|
return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
|
|
2417
2429
|
case 16:
|
|
2418
2430
|
_c.sent();
|
|
2419
|
-
return [4 /*yield*/,
|
|
2431
|
+
return [4 /*yield*/, async_test("Tickets automatically created", function () { return pollForResults(sdk.api.tickets.getSome, function (tickets) { return (tickets === null || tickets === void 0 ? void 0 : tickets.length) === 2; }, 500, 15); }, passOnAnyResult)];
|
|
2420
2432
|
case 17:
|
|
2421
|
-
_c.sent(); // wait for tickets to be automatically created
|
|
2422
|
-
return [4 /*yield*/, async_test("Tickets automatically created", function () { return sdk.api.tickets.getSome(); }, { onResult: function (tickets) { return (tickets === null || tickets === void 0 ? void 0 : tickets.length) === 2; } })];
|
|
2423
|
-
case 18:
|
|
2424
2433
|
_c.sent();
|
|
2425
2434
|
return [4 /*yield*/, async_test("Ticket for enduser, default assignment, testCloseReasons", function () { return sdk.api.tickets.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (tickets) {
|
|
2426
2435
|
var _a;
|
|
@@ -2428,10 +2437,10 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
2428
2437
|
&& ((_a = tickets[0].closeReasons) === null || _a === void 0 ? void 0 : _a.length) === 3
|
|
2429
2438
|
&& tickets[0].owner === sdk.userInfo.id);
|
|
2430
2439
|
} })];
|
|
2431
|
-
case
|
|
2440
|
+
case 18:
|
|
2432
2441
|
_c.sent();
|
|
2433
2442
|
return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduser.id })];
|
|
2434
|
-
case
|
|
2443
|
+
case 19:
|
|
2435
2444
|
ticket = _c.sent();
|
|
2436
2445
|
return [4 /*yield*/, async_test("Ticket for enduser, care team assignment, no reasons", function () { return sdk.api.tickets.getSome({ filter: { enduserId: enduserWithTeam.id } }); }, { onResult: function (tickets) {
|
|
2437
2446
|
var _a;
|
|
@@ -2440,19 +2449,19 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
2440
2449
|
&& tickets[0].owner === sdkNonAdmin.userInfo.id;
|
|
2441
2450
|
}
|
|
2442
2451
|
})];
|
|
2443
|
-
case
|
|
2452
|
+
case 20:
|
|
2444
2453
|
_c.sent();
|
|
2445
2454
|
return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduserWithTeam.id })];
|
|
2446
|
-
case
|
|
2455
|
+
case 21:
|
|
2447
2456
|
ticketNull = _c.sent();
|
|
2448
2457
|
return [4 /*yield*/, sdk.api.tickets.updateOne(ticket.id, { closedForReason: 'Maybe', closedAt: new Date() })];
|
|
2449
|
-
case
|
|
2458
|
+
case 22:
|
|
2450
2459
|
_c.sent();
|
|
2451
2460
|
return [4 /*yield*/, sdk.api.tickets.updateOne(ticketNull.id, { closedAt: new Date() })];
|
|
2452
|
-
case
|
|
2461
|
+
case 23:
|
|
2453
2462
|
_c.sent();
|
|
2454
2463
|
return [4 /*yield*/, wait(undefined, 250)]; // wait for actions to be automatically created
|
|
2455
|
-
case
|
|
2464
|
+
case 24:
|
|
2456
2465
|
_c.sent(); // wait for actions to be automatically created
|
|
2457
2466
|
return [4 /*yield*/, async_test("Automated actions for handle ticket created", function () { return sdk.api.automated_actions.getSome(); }, { onResult: (function (actions) { return (actions === null || actions === void 0 ? void 0 : actions.length) === 4 // ticket creations + ticket completions = 2 + 2
|
|
2458
2467
|
&& (!!actions.find(function (a) {
|
|
@@ -2469,7 +2478,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
2469
2478
|
&& a.action.info.status === 'Null';
|
|
2470
2479
|
} // null branch when completed without closedForReason
|
|
2471
2480
|
)); }) })];
|
|
2472
|
-
case
|
|
2481
|
+
case 25:
|
|
2473
2482
|
_c.sent();
|
|
2474
2483
|
return [4 /*yield*/, Promise.all([
|
|
2475
2484
|
sdk.api.journeys.deleteOne(journey.id),
|
|
@@ -2479,7 +2488,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
|
|
|
2479
2488
|
sdk.api.tickets.deleteOne(ticket.id),
|
|
2480
2489
|
sdk.api.tickets.deleteOne(ticketNull.id),
|
|
2481
2490
|
])];
|
|
2482
|
-
case
|
|
2491
|
+
case 26:
|
|
2483
2492
|
_c.sent();
|
|
2484
2493
|
return [2 /*return*/];
|
|
2485
2494
|
}
|
|
@@ -2548,17 +2557,14 @@ var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void
|
|
|
2548
2557
|
return [4 /*yield*/, async_test("Next step not trigged early", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) !== 'Delayed Step'; } })];
|
|
2549
2558
|
case 10:
|
|
2550
2559
|
_b.sent();
|
|
2551
|
-
return [4 /*yield*/,
|
|
2560
|
+
return [4 /*yield*/, async_test("Sequenced action triggered", function () { return pollForResults(function () { return sdk.api.endusers.getOne(enduser.id); }, function (e) { var _a; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'Delayed Step'; }, TEST_DELAY, 15); }, passOnAnyResult)];
|
|
2552
2561
|
case 11:
|
|
2553
|
-
_b.sent(); // wait long enough for automation to process and delay to pass
|
|
2554
|
-
return [4 /*yield*/, async_test("Sequenced action triggered", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'Delayed Step'; } })];
|
|
2555
|
-
case 12:
|
|
2556
2562
|
_b.sent();
|
|
2557
2563
|
return [4 /*yield*/, Promise.all([
|
|
2558
2564
|
sdk.api.journeys.deleteOne(journey.id),
|
|
2559
2565
|
sdk.api.endusers.deleteOne(enduser.id),
|
|
2560
2566
|
])];
|
|
2561
|
-
case
|
|
2567
|
+
case 12:
|
|
2562
2568
|
_b.sent();
|
|
2563
2569
|
return [2 /*return*/];
|
|
2564
2570
|
}
|
|
@@ -2789,14 +2795,11 @@ export var formUnsubmittedCancelConditionTest = function () { return __awaiter(v
|
|
|
2789
2795
|
case 10:
|
|
2790
2796
|
accessCode = (_a.sent()).accessCode;
|
|
2791
2797
|
// allow fast followup to trigger
|
|
2792
|
-
return [4 /*yield*/,
|
|
2793
|
-
case 11:
|
|
2794
|
-
// allow fast followup to trigger
|
|
2795
|
-
_a.sent(); // allow background creation with generous pause
|
|
2796
|
-
return [4 /*yield*/, async_test("formUnsubmitted event with short delay is triggered", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'triggered again'; } })
|
|
2798
|
+
return [4 /*yield*/, async_test("formUnsubmitted event with short delay is triggered", function () { return pollForResults(function () { return sdk.api.endusers.getOne(enduser.id); }, function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'triggered again'; }, 1000, 10); }, passOnAnyResult)
|
|
2797
2799
|
// trigger cancel conditions
|
|
2798
2800
|
];
|
|
2799
|
-
case
|
|
2801
|
+
case 11:
|
|
2802
|
+
// allow fast followup to trigger
|
|
2800
2803
|
_a.sent();
|
|
2801
2804
|
// trigger cancel conditions
|
|
2802
2805
|
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: accessCode, automationStepId: triggerStep.id, responses: [{
|
|
@@ -2807,11 +2810,11 @@ export var formUnsubmittedCancelConditionTest = function () { return __awaiter(v
|
|
|
2807
2810
|
fieldId: field.id,
|
|
2808
2811
|
fieldTitle: field.title,
|
|
2809
2812
|
}] })];
|
|
2810
|
-
case
|
|
2813
|
+
case 12:
|
|
2811
2814
|
// trigger cancel conditions
|
|
2812
2815
|
_a.sent();
|
|
2813
2816
|
return [4 /*yield*/, wait(undefined, 1500)]; // allow background creation with generous pause
|
|
2814
|
-
case
|
|
2817
|
+
case 13:
|
|
2815
2818
|
_a.sent(); // allow background creation with generous pause
|
|
2816
2819
|
return [4 /*yield*/, async_test("Cancel conditions work for followup", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (as) {
|
|
2817
2820
|
var _a, _b;
|
|
@@ -2821,14 +2824,14 @@ export var formUnsubmittedCancelConditionTest = function () { return __awaiter(v
|
|
|
2821
2824
|
&& as.filter(function (a) { return a.status === 'cancelled'; }).length === 2;
|
|
2822
2825
|
}
|
|
2823
2826
|
})];
|
|
2824
|
-
case
|
|
2827
|
+
case 14:
|
|
2825
2828
|
_a.sent();
|
|
2826
2829
|
return [4 /*yield*/, Promise.all([
|
|
2827
2830
|
sdk.api.forms.deleteOne(form.id),
|
|
2828
2831
|
sdk.api.journeys.deleteOne(journey.id),
|
|
2829
2832
|
sdk.api.endusers.deleteOne(enduser.id)
|
|
2830
2833
|
])];
|
|
2831
|
-
case
|
|
2834
|
+
case 15:
|
|
2832
2835
|
_a.sent();
|
|
2833
2836
|
return [2 /*return*/];
|
|
2834
2837
|
}
|
|
@@ -3007,7 +3010,7 @@ export var formsUnsubmittedCancelConditionTest = function () { return __awaiter(
|
|
|
3007
3010
|
} })];
|
|
3008
3011
|
case 19:
|
|
3009
3012
|
_a.sent();
|
|
3010
|
-
return [4 /*yield*/, async_test("formResponses triggered after both forms submitted", function () { return sdk.api.endusers.getOne(enduser.id); },
|
|
3013
|
+
return [4 /*yield*/, async_test("formResponses triggered after both forms submitted", function () { return pollForResults(function () { return sdk.api.endusers.getOne(enduser.id); }, function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'formsSubmitted'; }, 500, 10); }, passOnAnyResult)];
|
|
3011
3014
|
case 20:
|
|
3012
3015
|
_a.sent();
|
|
3013
3016
|
return [4 /*yield*/, Promise.all([
|
|
@@ -3107,20 +3110,13 @@ export var formsUnsubmittedTest = function () { return __awaiter(void 0, void 0,
|
|
|
3107
3110
|
case 8:
|
|
3108
3111
|
// triggers formsUnsubmitted automated actions to be created when forms generated in templated message
|
|
3109
3112
|
_a.sent();
|
|
3110
|
-
return [4 /*yield*/, sdk.api.form_responses.getSome()
|
|
3111
|
-
// allow fast followup to trigger
|
|
3112
|
-
];
|
|
3113
|
+
return [4 /*yield*/, sdk.api.form_responses.getSome()];
|
|
3113
3114
|
case 9:
|
|
3114
3115
|
form_responses = _a.sent();
|
|
3115
|
-
|
|
3116
|
-
return [4 /*yield*/, wait(undefined, 5000)]; // allow background creation with generous pause
|
|
3117
|
-
case 10:
|
|
3118
|
-
// allow fast followup to trigger
|
|
3119
|
-
_a.sent(); // allow background creation with generous pause
|
|
3120
|
-
return [4 /*yield*/, async_test("formsUnsubmitted handler worked", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'triggered'; } })
|
|
3116
|
+
return [4 /*yield*/, async_test("formsUnsubmitted handler worked", function () { return pollForResults(function () { return sdk.api.endusers.getOne(enduser.id); }, function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'triggered'; }, 1000, 10); }, passOnAnyResult)
|
|
3121
3117
|
// trigger cancel conditions
|
|
3122
3118
|
];
|
|
3123
|
-
case
|
|
3119
|
+
case 10:
|
|
3124
3120
|
_a.sent();
|
|
3125
3121
|
// trigger cancel conditions
|
|
3126
3122
|
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: form_responses[0].accessCode, automationStepId: triggerStep.id, responses: [{
|
|
@@ -3131,14 +3127,14 @@ export var formsUnsubmittedTest = function () { return __awaiter(void 0, void 0,
|
|
|
3131
3127
|
fieldId: field.id,
|
|
3132
3128
|
fieldTitle: field.title,
|
|
3133
3129
|
}] })];
|
|
3134
|
-
case
|
|
3130
|
+
case 11:
|
|
3135
3131
|
// trigger cancel conditions
|
|
3136
3132
|
_a.sent();
|
|
3137
3133
|
return [4 /*yield*/, wait(undefined, 5000)]; // allow background creation with generous pause
|
|
3138
|
-
case
|
|
3134
|
+
case 12:
|
|
3139
3135
|
_a.sent(); // allow background creation with generous pause
|
|
3140
3136
|
return [4 /*yield*/, async_test("formResponses not triggered yet after 1 form remaining", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) !== 'formsSubmitted'; } })];
|
|
3141
|
-
case
|
|
3137
|
+
case 13:
|
|
3142
3138
|
_a.sent();
|
|
3143
3139
|
return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: form_responses[1].accessCode, automationStepId: triggerStep.id, responses: [{
|
|
3144
3140
|
answer: {
|
|
@@ -3148,20 +3144,20 @@ export var formsUnsubmittedTest = function () { return __awaiter(void 0, void 0,
|
|
|
3148
3144
|
fieldId: field.id,
|
|
3149
3145
|
fieldTitle: field.title,
|
|
3150
3146
|
}] })];
|
|
3151
|
-
case
|
|
3147
|
+
case 14:
|
|
3152
3148
|
_a.sent();
|
|
3153
3149
|
return [4 /*yield*/, wait(undefined, 5000)]; // allow background creation with generous pause
|
|
3154
|
-
case
|
|
3150
|
+
case 15:
|
|
3155
3151
|
_a.sent(); // allow background creation with generous pause
|
|
3156
3152
|
return [4 /*yield*/, async_test("formResponses triggered after both forms submitted", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e === null || e === void 0 ? void 0 : e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === 'formsSubmitted'; } })];
|
|
3157
|
-
case
|
|
3153
|
+
case 16:
|
|
3158
3154
|
_a.sent();
|
|
3159
3155
|
return [4 /*yield*/, Promise.all([
|
|
3160
3156
|
sdk.api.forms.deleteOne(form.id),
|
|
3161
3157
|
sdk.api.journeys.deleteOne(journey.id),
|
|
3162
3158
|
sdk.api.endusers.deleteOne(enduser.id)
|
|
3163
3159
|
])];
|
|
3164
|
-
case
|
|
3160
|
+
case 17:
|
|
3165
3161
|
_a.sent();
|
|
3166
3162
|
return [2 /*return*/];
|
|
3167
3163
|
}
|
|
@@ -3367,33 +3363,35 @@ var addToJourneyTests = function () { return __awaiter(void 0, void 0, void 0, f
|
|
|
3367
3363
|
case 5:
|
|
3368
3364
|
// add to journey and re-add
|
|
3369
3365
|
_a.sent();
|
|
3370
|
-
return [4 /*yield*/, async_test("Journey state correctly set by add_to_journey (to default state)", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a, _b; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === '' || ((_b = e.journeys) === null || _b === void 0 ? void 0 : _b[journey.id]) === 'Root'; } })
|
|
3366
|
+
return [4 /*yield*/, async_test("Journey state correctly set by add_to_journey (to default state)", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a, _b; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey.id]) === '' || ((_b = e.journeys) === null || _b === void 0 ? void 0 : _b[journey.id]) === 'Root'; } })
|
|
3367
|
+
// ensure that second step is generated before first is cancelled
|
|
3368
|
+
];
|
|
3371
3369
|
case 6:
|
|
3372
3370
|
_a.sent();
|
|
3373
|
-
|
|
3371
|
+
// ensure that second step is generated before first is cancelled
|
|
3372
|
+
return [4 /*yield*/, pollForResults(sdk.api.automated_actions.getSome, function (es) { return es.length === 2; }, 100, 50)];
|
|
3374
3373
|
case 7:
|
|
3375
|
-
|
|
3374
|
+
// ensure that second step is generated before first is cancelled
|
|
3375
|
+
_a.sent();
|
|
3376
3376
|
return [4 /*yield*/, sdk.api.endusers.add_to_journey({ enduserIds: [enduser.id], journeyId: journey.id })];
|
|
3377
3377
|
case 8:
|
|
3378
|
+
// ensure that second step is generated before first is cancelled
|
|
3378
3379
|
_a.sent();
|
|
3379
|
-
return [4 /*yield*/, async_test("Enduser
|
|
3380
|
+
return [4 /*yield*/, async_test("Enduser correctly added and re-added", function () { return pollForResults(sdk.api.automated_actions.getSome, function (es) { return (es.length === 4
|
|
3381
|
+
&& es.filter(function (e) { return e.status === 'cancelled' && e.automationStepId === follow.id; }).length === 1 // one afterAction is cancelled
|
|
3382
|
+
&& es.filter(function (e) { return e.status === 'active' && e.automationStepId === follow.id; }).length === 1 // one afterAction is still active
|
|
3383
|
+
&& es.filter(function (e) { return e.status === 'finished' && e.automationStepId === root.id; }).length === 2 // two initial onJourneyStart
|
|
3384
|
+
); }, 250, 40); }, passOnAnyResult)];
|
|
3380
3385
|
case 9:
|
|
3381
3386
|
_a.sent();
|
|
3382
|
-
return [4 /*yield*/,
|
|
3387
|
+
return [4 /*yield*/, async_test("Enduser throttle journey add working", function () { return sdk.api.endusers.add_to_journey({ enduserIds: [enduser.id], journeyId: journey.id, throttle: true }); }, handleAnyError)];
|
|
3383
3388
|
case 10:
|
|
3384
|
-
_a.sent(); // allow onJourneyStart step to trigger
|
|
3385
|
-
return [4 /*yield*/, async_test("Enduser correctly added and re-added", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (es) { return es.length === 4
|
|
3386
|
-
&& es.filter(function (e) { return e.status === 'cancelled' && e.automationStepId === follow.id; }).length === 1 // one afterAction is cancelled
|
|
3387
|
-
&& es.filter(function (e) { return e.status === 'active' && e.automationStepId === follow.id; }).length === 1 // one afterAction is still active
|
|
3388
|
-
&& es.filter(function (e) { return e.status === 'finished' && e.automationStepId === root.id; }).length === 2; } // two initial onJourneyStart
|
|
3389
|
-
})];
|
|
3390
|
-
case 11:
|
|
3391
3389
|
_a.sent();
|
|
3392
3390
|
return [4 /*yield*/, Promise.all([
|
|
3393
3391
|
sdk.api.journeys.deleteOne(journey.id),
|
|
3394
3392
|
sdk.api.endusers.deleteOne(enduser.id),
|
|
3395
3393
|
])];
|
|
3396
|
-
case
|
|
3394
|
+
case 11:
|
|
3397
3395
|
_a.sent();
|
|
3398
3396
|
return [2 /*return*/];
|
|
3399
3397
|
}
|
|
@@ -5150,29 +5148,26 @@ var run_autoreply_test = function (title, _a) {
|
|
|
5150
5148
|
return [4 /*yield*/, enduserSDK.api.chats.createOne({ roomId: room.id, message: 'enduser' })];
|
|
5151
5149
|
case 8:
|
|
5152
5150
|
_b.sent();
|
|
5153
|
-
return [4 /*yield*/,
|
|
5151
|
+
return [4 /*yield*/, async_test('Main test', function () { return pollForResults(function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, function (cs) { return (expectingAutoreply
|
|
5152
|
+
? cs.length === 3
|
|
5153
|
+
: cs.length === 2); }, 25, 10); }, passOnAnyResult)];
|
|
5154
5154
|
case 9:
|
|
5155
|
-
_b.sent();
|
|
5156
|
-
return [4 /*yield*/, async_test('Main test', function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (cs) { return (expectingAutoreply
|
|
5157
|
-
? cs.length === 3
|
|
5158
|
-
: cs.length === 2); } })];
|
|
5159
|
-
case 10:
|
|
5160
5155
|
_b.sent();
|
|
5161
5156
|
return [4 /*yield*/, enduserSDK.api.chats.createOne({ roomId: room.id, message: 'enduser again' })];
|
|
5162
|
-
case
|
|
5157
|
+
case 10:
|
|
5163
5158
|
_b.sent();
|
|
5164
5159
|
return [4 /*yield*/, wait(undefined, 50)];
|
|
5165
|
-
case
|
|
5160
|
+
case 11:
|
|
5166
5161
|
_b.sent();
|
|
5167
5162
|
return [4 /*yield*/, async_test("Duplicate autoreply avoided", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (cs) { return (expectingAutoreply
|
|
5168
5163
|
? cs.length === 4
|
|
5169
5164
|
: cs.length === 3); } })
|
|
5170
5165
|
// cleanup, including any availability blocks
|
|
5171
5166
|
];
|
|
5172
|
-
case
|
|
5167
|
+
case 12:
|
|
5173
5168
|
_b.sent();
|
|
5174
5169
|
return [4 /*yield*/, sdk.api.availability_blocks.getSome()];
|
|
5175
|
-
case
|
|
5170
|
+
case 13:
|
|
5176
5171
|
blocks = _b.sent();
|
|
5177
5172
|
return [4 /*yield*/, Promise.all(__spreadArray([
|
|
5178
5173
|
sdk.api.endusers.deleteOne(enduser.id),
|
|
@@ -5184,7 +5179,7 @@ var run_autoreply_test = function (title, _a) {
|
|
|
5184
5179
|
replaceObjectFields: true
|
|
5185
5180
|
})
|
|
5186
5181
|
], blocks.map(function (b) { return (sdk.api.availability_blocks.deleteOne(b.id)); }), true))];
|
|
5187
|
-
case
|
|
5182
|
+
case 14:
|
|
5188
5183
|
_b.sent();
|
|
5189
5184
|
return [2 /*return*/];
|
|
5190
5185
|
}
|
|
@@ -5507,14 +5502,11 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
|
|
|
5507
5502
|
// cleanup
|
|
5508
5503
|
_b.sent();
|
|
5509
5504
|
// test trigger cleaned up on journey delete
|
|
5510
|
-
return [4 /*yield*/,
|
|
5511
|
-
case 15:
|
|
5512
|
-
// test trigger cleaned up on journey delete
|
|
5513
|
-
_b.sent();
|
|
5514
|
-
return [4 /*yield*/, async_test("Trigger did not fire while not journey", function () { return sdk.api.automation_triggers.getOne(trigger.id); }, handleAnyError)
|
|
5505
|
+
return [4 /*yield*/, async_test("Trigger cleaned up by journey deletion", function () { return pollForResults(sdk.api.automation_triggers.getSome, function (results) { return !results.find(function (r) { return r.id === trigger.id; }); }, 100, 10); }, passOnAnyResult)
|
|
5515
5506
|
// double-check that wait for trigger step triggers were deleted
|
|
5516
5507
|
];
|
|
5517
|
-
case
|
|
5508
|
+
case 15:
|
|
5509
|
+
// test trigger cleaned up on journey delete
|
|
5518
5510
|
_b.sent();
|
|
5519
5511
|
return [2 /*return*/];
|
|
5520
5512
|
}
|
|
@@ -5685,41 +5677,37 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5685
5677
|
return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })];
|
|
5686
5678
|
case 11:
|
|
5687
5679
|
_e.sent();
|
|
5688
|
-
return [4 /*yield*/,
|
|
5689
|
-
|
|
5690
|
-
|
|
5691
|
-
|
|
5692
|
-
|
|
5680
|
+
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) {
|
|
5681
|
+
return a.journeyId === jRemove.id
|
|
5682
|
+
&& a.automationStepId === removeStep1.id
|
|
5683
|
+
&& a.enduserId === e1.id
|
|
5684
|
+
&& a.status === 'cancelled';
|
|
5685
|
+
})
|
|
5686
|
+
&& !!actions.find(function (a) {
|
|
5693
5687
|
return a.journeyId === jRemove.id
|
|
5694
5688
|
&& a.automationStepId === removeStep1.id
|
|
5689
|
+
&& a.enduserId === e2.id
|
|
5690
|
+
&& a.status === 'active';
|
|
5691
|
+
})
|
|
5692
|
+
&& !!actions.find(function (a) {
|
|
5693
|
+
return a.journeyId === jDontRemove.id
|
|
5694
|
+
&& a.automationStepId === dontRemoveStep1.id
|
|
5695
5695
|
&& a.enduserId === e1.id
|
|
5696
|
-
&& a.status === '
|
|
5696
|
+
&& a.status === 'active';
|
|
5697
5697
|
})
|
|
5698
|
-
|
|
5699
|
-
|
|
5700
|
-
|
|
5701
|
-
|
|
5702
|
-
|
|
5703
|
-
|
|
5704
|
-
|
|
5705
|
-
return a.journeyId === jDontRemove.id
|
|
5706
|
-
&& a.automationStepId === dontRemoveStep1.id
|
|
5707
|
-
&& a.enduserId === e1.id
|
|
5708
|
-
&& a.status === 'active';
|
|
5709
|
-
})
|
|
5710
|
-
&& !!actions.find(function (a) {
|
|
5711
|
-
return a.journeyId === jDontRemove.id
|
|
5712
|
-
&& a.automationStepId === dontRemoveStep1.id
|
|
5713
|
-
&& a.enduserId === e2.id
|
|
5714
|
-
&& a.status === 'active';
|
|
5715
|
-
})); } })];
|
|
5716
|
-
case 13:
|
|
5698
|
+
&& !!actions.find(function (a) {
|
|
5699
|
+
return a.journeyId === jDontRemove.id
|
|
5700
|
+
&& a.automationStepId === dontRemoveStep1.id
|
|
5701
|
+
&& a.enduserId === e2.id
|
|
5702
|
+
&& a.status === 'active';
|
|
5703
|
+
})); }, 25, 20); }, passOnAnyResult)];
|
|
5704
|
+
case 12:
|
|
5717
5705
|
_e.sent();
|
|
5718
5706
|
return [4 /*yield*/, sdk.api.journeys.handle_incoming_communication({ enduserId: e2.id })];
|
|
5719
|
-
case
|
|
5707
|
+
case 13:
|
|
5720
5708
|
_e.sent();
|
|
5721
5709
|
return [4 /*yield*/, wait(undefined, 250)];
|
|
5722
|
-
case
|
|
5710
|
+
case 14:
|
|
5723
5711
|
_e.sent();
|
|
5724
5712
|
return [4 /*yield*/, async_test("handle_incoming_communication test for other enduser", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (actions) { return (!!actions.find(function (a) {
|
|
5725
5713
|
return a.journeyId === jRemove.id
|
|
@@ -5727,7 +5715,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5727
5715
|
&& a.enduserId === e2.id
|
|
5728
5716
|
&& a.status === 'cancelled';
|
|
5729
5717
|
})); } })];
|
|
5730
|
-
case
|
|
5718
|
+
case 15:
|
|
5731
5719
|
_e.sent();
|
|
5732
5720
|
return [4 /*yield*/, Promise.all([
|
|
5733
5721
|
sdk.api.endusers.deleteOne(e1.id),
|
|
@@ -5736,7 +5724,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
|
|
|
5736
5724
|
sdk.api.journeys.deleteOne(jDontRemove.id),
|
|
5737
5725
|
sdk.api.chat_rooms.deleteOne(room.id),
|
|
5738
5726
|
])];
|
|
5739
|
-
case
|
|
5727
|
+
case 16:
|
|
5740
5728
|
_e.sent();
|
|
5741
5729
|
return [2 /*return*/];
|
|
5742
5730
|
}
|
|
@@ -5746,9 +5734,11 @@ var pdf_generation = function () { return __awaiter(void 0, void 0, void 0, func
|
|
|
5746
5734
|
var e, responses, i, fr;
|
|
5747
5735
|
return __generator(this, function (_a) {
|
|
5748
5736
|
switch (_a.label) {
|
|
5749
|
-
case 0:
|
|
5750
|
-
|
|
5751
|
-
|
|
5737
|
+
case 0:
|
|
5738
|
+
log_header("pdf_generation Tests");
|
|
5739
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'test' })
|
|
5740
|
+
// include lots of answers to ensure PDF height doesn't produce any cut-off
|
|
5741
|
+
];
|
|
5752
5742
|
case 1:
|
|
5753
5743
|
e = _a.sent();
|
|
5754
5744
|
responses = [];
|
|
@@ -5777,7 +5767,6 @@ var pdf_generation = function () { return __awaiter(void 0, void 0, void 0, func
|
|
|
5777
5767
|
.then(function (d) { return (fs.writeFileSync('test_generated.pdf', d.data)); });
|
|
5778
5768
|
return [4 /*yield*/, Promise.all([
|
|
5779
5769
|
sdk.api.endusers.deleteOne(e.id),
|
|
5780
|
-
sdk.api.form_responses.deleteOne(fr.id),
|
|
5781
5770
|
])];
|
|
5782
5771
|
case 3:
|
|
5783
5772
|
_a.sent();
|
|
@@ -6004,10 +5993,11 @@ var pollForResults = function (f, evaluate, intervalInMS, iterations) {
|
|
|
6004
5993
|
if (intervalInMS === void 0) { intervalInMS = 500; }
|
|
6005
5994
|
if (iterations === void 0) { iterations = 20; }
|
|
6006
5995
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
6007
|
-
var i, result;
|
|
5996
|
+
var lastResult, i, result;
|
|
6008
5997
|
return __generator(this, function (_a) {
|
|
6009
5998
|
switch (_a.label) {
|
|
6010
5999
|
case 0:
|
|
6000
|
+
lastResult = undefined;
|
|
6011
6001
|
i = 0;
|
|
6012
6002
|
_a.label = 1;
|
|
6013
6003
|
case 1:
|
|
@@ -6018,13 +6008,16 @@ var pollForResults = function (f, evaluate, intervalInMS, iterations) {
|
|
|
6018
6008
|
return [4 /*yield*/, f()];
|
|
6019
6009
|
case 3:
|
|
6020
6010
|
result = _a.sent();
|
|
6011
|
+
lastResult = result;
|
|
6021
6012
|
if (evaluate(result))
|
|
6022
6013
|
return [2 /*return*/, result];
|
|
6023
6014
|
_a.label = 4;
|
|
6024
6015
|
case 4:
|
|
6025
6016
|
i++;
|
|
6026
6017
|
return [3 /*break*/, 1];
|
|
6027
|
-
case 5:
|
|
6018
|
+
case 5:
|
|
6019
|
+
console.log(lastResult);
|
|
6020
|
+
throw new Error("failed pollForResults");
|
|
6028
6021
|
}
|
|
6029
6022
|
});
|
|
6030
6023
|
});
|