@tellescope/sdk 1.67.5 → 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.
@@ -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*/, 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; } })];
880
+ return [4 /*yield*/, wait(undefined, 25)];
881
881
  case 7:
882
882
  _c.sent();
883
- if (!model.defaultActions.update) return [3 /*break*/, 10];
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
- 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; } })];
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
- _c.label = 10;
891
- case 10: return [4 /*yield*/, async_test("get-".concat(singularName), function () { return queries.getOne(_id); }, { onResult: function (d) {
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 11:
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 12:
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 13:
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 14:
934
+ case 17:
926
935
  _c.sent();
927
- if (!(name === 'endusers')) return [3 /*break*/, 16];
936
+ if (!(name === 'endusers')) return [3 /*break*/, 19];
928
937
  return [4 /*yield*/, wait(undefined, 100)];
929
- case 15:
938
+ case 18:
930
939
  _c.sent();
931
- return [3 /*break*/, 18];
932
- case 16: return [4 /*yield*/, wait(undefined, 50)];
933
- case 17:
940
+ return [3 /*break*/, 21];
941
+ case 19: return [4 /*yield*/, wait(undefined, 50)];
942
+ case 20:
934
943
  _c.sent();
935
- _c.label = 18;
936
- case 18: 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; } })];
937
- case 19:
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 4:
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 5:
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 6:
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 7:
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 8:
1940
+ case 9:
1929
1941
  _c.sent();
1930
1942
  return [4 /*yield*/, sdk.UPLOAD(
1931
1943
  // @ts-ignore
1932
1944
  presignedNonEnduser, buff)];
1933
- case 9:
1945
+ case 10:
1934
1946
  _c.sent();
1935
1947
  return [4 /*yield*/, sdk.UPLOAD(
1936
1948
  // @ts-ignore
1937
1949
  presigned2, buff)];
1938
- case 10:
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 11:
1953
+ case 12:
1942
1954
  _c.sent();
1943
1955
  return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
1944
- case 12:
1956
+ case 13:
1945
1957
  downloadURL = (_c.sent()).downloadURL;
1946
1958
  return [4 /*yield*/, sdk.DOWNLOAD(downloadURL)];
1947
- case 13:
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 14:
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 15:
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 16:
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 17:
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 18:
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 19:
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 20:
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*/, wait(undefined, 2250)]; // wait for tickets to be automatically created
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 19:
2440
+ case 18:
2432
2441
  _c.sent();
2433
2442
  return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduser.id })];
2434
- case 20:
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 21:
2452
+ case 20:
2444
2453
  _c.sent();
2445
2454
  return [4 /*yield*/, sdk.api.tickets.getOne({ enduserId: enduserWithTeam.id })];
2446
- case 22:
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 23:
2458
+ case 22:
2450
2459
  _c.sent();
2451
2460
  return [4 /*yield*/, sdk.api.tickets.updateOne(ticketNull.id, { closedAt: new Date() })];
2452
- case 24:
2461
+ case 23:
2453
2462
  _c.sent();
2454
2463
  return [4 /*yield*/, wait(undefined, 250)]; // wait for actions to be automatically created
2455
- case 25:
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 26:
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 27:
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*/, wait(undefined, 4 * TEST_DELAY)]; // wait long enough for automation to process and delay to pass
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 13:
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*/, wait(undefined, 4000)]; // allow background creation with generous pause
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 12:
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 13:
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 14:
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 15:
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 16:
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); }, { 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'; } })];
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
- // allow fast followup to trigger
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 11:
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 12:
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 13:
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 14:
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 15:
3147
+ case 14:
3152
3148
  _a.sent();
3153
3149
  return [4 /*yield*/, wait(undefined, 5000)]; // allow background creation with generous pause
3154
- case 16:
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 17:
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 18:
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
- return [4 /*yield*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
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
- _a.sent(); // allow onJourneyStart step to trigger
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 throttle journey add working", function () { return sdk.api.endusers.add_to_journey({ enduserIds: [enduser.id], journeyId: journey.id, throttle: true }); }, handleAnyError)];
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*/, wait(undefined, 4000)]; // allow onJourneyStart step to trigger
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 12:
3394
+ case 11:
3397
3395
  _a.sent();
3398
3396
  return [2 /*return*/];
3399
3397
  }
@@ -3425,20 +3423,17 @@ var directAutomatedActionTest = function () { return __awaiter(void 0, void 0, v
3425
3423
  })];
3426
3424
  case 2:
3427
3425
  action = _a.sent();
3428
- return [4 /*yield*/, wait(undefined, 3000)];
3426
+ return [4 /*yield*/, async_test("Enduser status set by manual automated action", 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[PLACEHOLDER_ID]) === 'Working'; }, 1000, 10); }, passOnAnyResult)];
3429
3427
  case 3:
3430
- _a.sent();
3431
- return [4 /*yield*/, async_test("Enduser status set by manual automated action", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return ((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[PLACEHOLDER_ID]) === 'Working'; } })];
3432
- case 4:
3433
3428
  _a.sent();
3434
3429
  return [4 /*yield*/, async_test("Automated action is finished", function () { return sdk.api.automated_actions.getOne(action.id); }, { onResult: function (e) { return e.status === 'finished'; } })];
3435
- case 5:
3430
+ case 4:
3436
3431
  _a.sent();
3437
3432
  return [4 /*yield*/, Promise.all([
3438
3433
  sdk.api.endusers.deleteOne(enduser.id),
3439
3434
  sdk.api.automated_actions.deleteOne(action.id),
3440
3435
  ])];
3441
- case 6:
3436
+ case 5:
3442
3437
  _a.sent();
3443
3438
  return [2 /*return*/];
3444
3439
  }
@@ -5153,29 +5148,26 @@ var run_autoreply_test = function (title, _a) {
5153
5148
  return [4 /*yield*/, enduserSDK.api.chats.createOne({ roomId: room.id, message: 'enduser' })];
5154
5149
  case 8:
5155
5150
  _b.sent();
5156
- return [4 /*yield*/, wait(undefined, 50)];
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)];
5157
5154
  case 9:
5158
- _b.sent();
5159
- return [4 /*yield*/, async_test('Main test', function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (cs) { return (expectingAutoreply
5160
- ? cs.length === 3
5161
- : cs.length === 2); } })];
5162
- case 10:
5163
5155
  _b.sent();
5164
5156
  return [4 /*yield*/, enduserSDK.api.chats.createOne({ roomId: room.id, message: 'enduser again' })];
5165
- case 11:
5157
+ case 10:
5166
5158
  _b.sent();
5167
5159
  return [4 /*yield*/, wait(undefined, 50)];
5168
- case 12:
5160
+ case 11:
5169
5161
  _b.sent();
5170
5162
  return [4 /*yield*/, async_test("Duplicate autoreply avoided", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (cs) { return (expectingAutoreply
5171
5163
  ? cs.length === 4
5172
5164
  : cs.length === 3); } })
5173
5165
  // cleanup, including any availability blocks
5174
5166
  ];
5175
- case 13:
5167
+ case 12:
5176
5168
  _b.sent();
5177
5169
  return [4 /*yield*/, sdk.api.availability_blocks.getSome()];
5178
- case 14:
5170
+ case 13:
5179
5171
  blocks = _b.sent();
5180
5172
  return [4 /*yield*/, Promise.all(__spreadArray([
5181
5173
  sdk.api.endusers.deleteOne(enduser.id),
@@ -5187,7 +5179,7 @@ var run_autoreply_test = function (title, _a) {
5187
5179
  replaceObjectFields: true
5188
5180
  })
5189
5181
  ], blocks.map(function (b) { return (sdk.api.availability_blocks.deleteOne(b.id)); }), true))];
5190
- case 15:
5182
+ case 14:
5191
5183
  _b.sent();
5192
5184
  return [2 /*return*/];
5193
5185
  }
@@ -5510,14 +5502,11 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
5510
5502
  // cleanup
5511
5503
  _b.sent();
5512
5504
  // test trigger cleaned up on journey delete
5513
- return [4 /*yield*/, wait(undefined, 150)];
5514
- case 15:
5515
- // test trigger cleaned up on journey delete
5516
- _b.sent();
5517
- 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)
5518
5506
  // double-check that wait for trigger step triggers were deleted
5519
5507
  ];
5520
- case 16:
5508
+ case 15:
5509
+ // test trigger cleaned up on journey delete
5521
5510
  _b.sent();
5522
5511
  return [2 /*return*/];
5523
5512
  }
@@ -5688,41 +5677,37 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5688
5677
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })];
5689
5678
  case 11:
5690
5679
  _e.sent();
5691
- return [4 /*yield*/, wait(undefined, 100)];
5692
- case 12:
5693
- _e.sent();
5694
- console.log(jRemove.id, removeStep2.id, e1.id);
5695
- return [4 /*yield*/, async_test("Appropriate Automated Actions are cancelled on incoming message", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (actions) { return (!!actions.find(function (a) {
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) {
5696
5687
  return a.journeyId === jRemove.id
5697
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
5698
5695
  && a.enduserId === e1.id
5699
- && a.status === 'cancelled';
5696
+ && a.status === 'active';
5700
5697
  })
5701
- && !!actions.find(function (a) {
5702
- return a.journeyId === jRemove.id
5703
- && a.automationStepId === removeStep1.id
5704
- && a.enduserId === e2.id
5705
- && a.status === 'active';
5706
- })
5707
- && !!actions.find(function (a) {
5708
- return a.journeyId === jDontRemove.id
5709
- && a.automationStepId === dontRemoveStep1.id
5710
- && a.enduserId === e1.id
5711
- && a.status === 'active';
5712
- })
5713
- && !!actions.find(function (a) {
5714
- return a.journeyId === jDontRemove.id
5715
- && a.automationStepId === dontRemoveStep1.id
5716
- && a.enduserId === e2.id
5717
- && a.status === 'active';
5718
- })); } })];
5719
- 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:
5720
5705
  _e.sent();
5721
5706
  return [4 /*yield*/, sdk.api.journeys.handle_incoming_communication({ enduserId: e2.id })];
5722
- case 14:
5707
+ case 13:
5723
5708
  _e.sent();
5724
5709
  return [4 /*yield*/, wait(undefined, 250)];
5725
- case 15:
5710
+ case 14:
5726
5711
  _e.sent();
5727
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) {
5728
5713
  return a.journeyId === jRemove.id
@@ -5730,7 +5715,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5730
5715
  && a.enduserId === e2.id
5731
5716
  && a.status === 'cancelled';
5732
5717
  })); } })];
5733
- case 16:
5718
+ case 15:
5734
5719
  _e.sent();
5735
5720
  return [4 /*yield*/, Promise.all([
5736
5721
  sdk.api.endusers.deleteOne(e1.id),
@@ -5739,7 +5724,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5739
5724
  sdk.api.journeys.deleteOne(jDontRemove.id),
5740
5725
  sdk.api.chat_rooms.deleteOne(room.id),
5741
5726
  ])];
5742
- case 17:
5727
+ case 16:
5743
5728
  _e.sent();
5744
5729
  return [2 /*return*/];
5745
5730
  }
@@ -5749,9 +5734,11 @@ var pdf_generation = function () { return __awaiter(void 0, void 0, void 0, func
5749
5734
  var e, responses, i, fr;
5750
5735
  return __generator(this, function (_a) {
5751
5736
  switch (_a.label) {
5752
- case 0: return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'test' })
5753
- // include lots of answers to ensure PDF height doesn't produce any cut-off
5754
- ];
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
+ ];
5755
5742
  case 1:
5756
5743
  e = _a.sent();
5757
5744
  responses = [];
@@ -5780,7 +5767,6 @@ var pdf_generation = function () { return __awaiter(void 0, void 0, void 0, func
5780
5767
  .then(function (d) { return (fs.writeFileSync('test_generated.pdf', d.data)); });
5781
5768
  return [4 /*yield*/, Promise.all([
5782
5769
  sdk.api.endusers.deleteOne(e.id),
5783
- sdk.api.form_responses.deleteOne(fr.id),
5784
5770
  ])];
5785
5771
  case 3:
5786
5772
  _a.sent();
@@ -6007,10 +5993,11 @@ var pollForResults = function (f, evaluate, intervalInMS, iterations) {
6007
5993
  if (intervalInMS === void 0) { intervalInMS = 500; }
6008
5994
  if (iterations === void 0) { iterations = 20; }
6009
5995
  return __awaiter(void 0, void 0, void 0, function () {
6010
- var i, result;
5996
+ var lastResult, i, result;
6011
5997
  return __generator(this, function (_a) {
6012
5998
  switch (_a.label) {
6013
5999
  case 0:
6000
+ lastResult = undefined;
6014
6001
  i = 0;
6015
6002
  _a.label = 1;
6016
6003
  case 1:
@@ -6021,13 +6008,16 @@ var pollForResults = function (f, evaluate, intervalInMS, iterations) {
6021
6008
  return [4 /*yield*/, f()];
6022
6009
  case 3:
6023
6010
  result = _a.sent();
6011
+ lastResult = result;
6024
6012
  if (evaluate(result))
6025
6013
  return [2 /*return*/, result];
6026
6014
  _a.label = 4;
6027
6015
  case 4:
6028
6016
  i++;
6029
6017
  return [3 /*break*/, 1];
6030
- case 5: throw new Error("failed pollForResults");
6018
+ case 5:
6019
+ console.log(lastResult);
6020
+ throw new Error("failed pollForResults");
6031
6021
  }
6032
6022
  });
6033
6023
  });
@@ -6486,6 +6476,80 @@ var field_equals_trigger_tests = function () { return __awaiter(void 0, void 0,
6486
6476
  }
6487
6477
  });
6488
6478
  }); };
6479
+ export var no_chained_triggers_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
6480
+ var t1, t2, enduser;
6481
+ return __generator(this, function (_a) {
6482
+ switch (_a.label) {
6483
+ case 0:
6484
+ log_header("No Chained Triggers Tests");
6485
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
6486
+ title: 't1', status: 'Active',
6487
+ event: {
6488
+ type: 'Field Equals',
6489
+ info: {
6490
+ field: 'fname',
6491
+ value: 'Trigger'
6492
+ },
6493
+ },
6494
+ action: {
6495
+ type: 'Add Tags',
6496
+ info: { tags: ['t1'] }
6497
+ }
6498
+ })];
6499
+ case 1:
6500
+ t1 = _a.sent();
6501
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
6502
+ title: 't2', status: 'Active',
6503
+ event: {
6504
+ type: 'Field Equals',
6505
+ info: {
6506
+ field: 'fname',
6507
+ value: '$exists'
6508
+ },
6509
+ },
6510
+ action: {
6511
+ type: 'Add Tags',
6512
+ info: { tags: ['t2'] }
6513
+ },
6514
+ enduserCondition: { $and: [{ condition: { tags: 't1' } }] },
6515
+ })
6516
+ // should only trigger t1, t1 would trigger t2 if allowed, but should not
6517
+ ];
6518
+ case 2:
6519
+ t2 = _a.sent();
6520
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Trigger' })];
6521
+ case 3:
6522
+ enduser = _a.sent();
6523
+ return [4 /*yield*/, wait(undefined, 250)];
6524
+ case 4:
6525
+ _a.sent();
6526
+ return [4 /*yield*/, async_test("Trigger not activated by other trigger update", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a, _b; return !!(!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('t2')) && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('t1'))); } })
6527
+ // should cover both triggers now, which results in adding only the second tag
6528
+ ];
6529
+ case 5:
6530
+ _a.sent();
6531
+ // should cover both triggers now, which results in adding only the second tag
6532
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { fname: "Updated" })];
6533
+ case 6:
6534
+ // should cover both triggers now, which results in adding only the second tag
6535
+ _a.sent();
6536
+ return [4 /*yield*/, wait(undefined, 250)];
6537
+ case 7:
6538
+ _a.sent();
6539
+ return [4 /*yield*/, async_test("Trigger activated directly", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('t1')) && e.tags.includes('t2')); } })];
6540
+ case 8:
6541
+ _a.sent();
6542
+ return [4 /*yield*/, Promise.all([
6543
+ sdk.api.automation_triggers.deleteOne(t1.id),
6544
+ sdk.api.automation_triggers.deleteOne(t2.id),
6545
+ sdk.api.endusers.deleteOne(enduser.id)
6546
+ ])];
6547
+ case 9:
6548
+ _a.sent();
6549
+ return [2 /*return*/];
6550
+ }
6551
+ });
6552
+ }); };
6489
6553
  var NO_TEST = function () { };
6490
6554
  var tests = {
6491
6555
  phone_trees: NO_TEST,
@@ -6590,7 +6654,7 @@ var validate_schema = function () {
6590
6654
  _k.sent();
6591
6655
  _k.label = 2;
6592
6656
  case 2:
6593
- _k.trys.push([2, 36, , 37]);
6657
+ _k.trys.push([2, 37, , 38]);
6594
6658
  return [4 /*yield*/, validate_schema()];
6595
6659
  case 3:
6596
6660
  _k.sent();
@@ -6624,86 +6688,89 @@ var validate_schema = function () {
6624
6688
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
6625
6689
  case 9:
6626
6690
  _k.sent(); // should come right after setup tests
6627
- return [4 /*yield*/, field_equals_trigger_tests()];
6691
+ return [4 /*yield*/, no_chained_triggers_tests()];
6628
6692
  case 10:
6629
6693
  _k.sent();
6630
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
6694
+ return [4 /*yield*/, field_equals_trigger_tests()];
6631
6695
  case 11:
6632
6696
  _k.sent();
6633
- return [4 /*yield*/, role_based_access_tests()];
6697
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
6634
6698
  case 12:
6635
6699
  _k.sent();
6636
- return [4 /*yield*/, automation_trigger_tests()];
6700
+ return [4 /*yield*/, role_based_access_tests()];
6637
6701
  case 13:
6638
6702
  _k.sent();
6639
- return [4 /*yield*/, enduser_session_tests()];
6703
+ return [4 /*yield*/, automation_trigger_tests()];
6640
6704
  case 14:
6641
6705
  _k.sent();
6642
- return [4 /*yield*/, nextReminderInMS_tests()];
6706
+ return [4 /*yield*/, enduser_session_tests()];
6643
6707
  case 15:
6644
6708
  _k.sent();
6645
- return [4 /*yield*/, search_tests()];
6709
+ return [4 /*yield*/, nextReminderInMS_tests()];
6646
6710
  case 16:
6647
6711
  _k.sent();
6648
- return [4 /*yield*/, wait_for_trigger_tests()];
6712
+ return [4 /*yield*/, search_tests()];
6649
6713
  case 17:
6650
6714
  _k.sent();
6651
- return [4 /*yield*/, pdf_generation()];
6715
+ return [4 /*yield*/, wait_for_trigger_tests()];
6652
6716
  case 18:
6653
6717
  _k.sent();
6654
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6718
+ return [4 /*yield*/, pdf_generation()];
6655
6719
  case 19:
6656
6720
  _k.sent();
6657
- return [4 /*yield*/, rate_limit_tests()];
6721
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6658
6722
  case 20:
6659
6723
  _k.sent();
6660
- return [4 /*yield*/, merge_enduser_tests()];
6724
+ return [4 /*yield*/, rate_limit_tests()];
6661
6725
  case 21:
6662
6726
  _k.sent();
6663
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
6727
+ return [4 /*yield*/, merge_enduser_tests()];
6664
6728
  case 22:
6665
6729
  _k.sent();
6666
- return [4 /*yield*/, auto_reply_tests()];
6730
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
6667
6731
  case 23:
6668
6732
  _k.sent();
6669
- return [4 /*yield*/, sub_organization_enduser_tests()];
6733
+ return [4 /*yield*/, auto_reply_tests()];
6670
6734
  case 24:
6671
6735
  _k.sent();
6672
- return [4 /*yield*/, sub_organization_tests()];
6736
+ return [4 /*yield*/, sub_organization_enduser_tests()];
6673
6737
  case 25:
6674
6738
  _k.sent();
6675
- return [4 /*yield*/, filter_by_date_tests()];
6739
+ return [4 /*yield*/, sub_organization_tests()];
6676
6740
  case 26:
6677
6741
  _k.sent();
6678
- return [4 /*yield*/, generate_user_auth_tests()];
6742
+ return [4 /*yield*/, filter_by_date_tests()];
6679
6743
  case 27:
6680
6744
  _k.sent();
6681
- return [4 /*yield*/, generateEnduserAuthTests()];
6745
+ return [4 /*yield*/, generate_user_auth_tests()];
6682
6746
  case 28:
6683
6747
  _k.sent();
6684
- return [4 /*yield*/, public_form_tests()];
6748
+ return [4 /*yield*/, generateEnduserAuthTests()];
6685
6749
  case 29:
6686
6750
  _k.sent();
6687
- return [4 /*yield*/, badInputTests()];
6751
+ return [4 /*yield*/, public_form_tests()];
6688
6752
  case 30:
6689
6753
  _k.sent();
6690
- return [4 /*yield*/, filterTests()];
6754
+ return [4 /*yield*/, badInputTests()];
6691
6755
  case 31:
6692
6756
  _k.sent();
6693
- return [4 /*yield*/, updatesTests()];
6757
+ return [4 /*yield*/, filterTests()];
6694
6758
  case 32:
6695
6759
  _k.sent();
6696
- return [4 /*yield*/, threadKeyTests()];
6760
+ return [4 /*yield*/, updatesTests()];
6697
6761
  case 33:
6698
6762
  _k.sent();
6699
- return [4 /*yield*/, enduserAccessTests()];
6763
+ return [4 /*yield*/, threadKeyTests()];
6700
6764
  case 34:
6701
6765
  _k.sent();
6702
- return [4 /*yield*/, enduser_redaction_tests()];
6766
+ return [4 /*yield*/, enduserAccessTests()];
6703
6767
  case 35:
6704
6768
  _k.sent();
6705
- return [3 /*break*/, 37];
6769
+ return [4 /*yield*/, enduser_redaction_tests()];
6706
6770
  case 36:
6771
+ _k.sent();
6772
+ return [3 /*break*/, 38];
6773
+ case 37:
6707
6774
  err_1 = _k.sent();
6708
6775
  console.error("Failed during custom test");
6709
6776
  if (err_1.message && err_1.info) {
@@ -6713,18 +6780,18 @@ var validate_schema = function () {
6713
6780
  console.error(err_1);
6714
6781
  }
6715
6782
  process.exit(1);
6716
- return [3 /*break*/, 37];
6717
- case 37:
6783
+ return [3 /*break*/, 38];
6784
+ case 38:
6718
6785
  _a = schema;
6719
6786
  _b = [];
6720
6787
  for (_c in _a)
6721
6788
  _b.push(_c);
6722
6789
  _i = 0;
6723
- _k.label = 38;
6724
- case 38:
6725
- if (!(_i < _b.length)) return [3 /*break*/, 41];
6790
+ _k.label = 39;
6791
+ case 39:
6792
+ if (!(_i < _b.length)) return [3 /*break*/, 42];
6726
6793
  _c = _b[_i];
6727
- if (!(_c in _a)) return [3 /*break*/, 40];
6794
+ if (!(_c in _a)) return [3 /*break*/, 41];
6728
6795
  n = _c;
6729
6796
  returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
6730
6797
  return [4 /*yield*/, run_generated_tests({
@@ -6735,41 +6802,41 @@ var validate_schema = function () {
6735
6802
  create: returnValidation // ModelFields<ClientModel>,
6736
6803
  }
6737
6804
  })];
6738
- case 39:
6739
- _k.sent();
6740
- _k.label = 40;
6741
6805
  case 40:
6742
- _i++;
6743
- return [3 /*break*/, 38];
6806
+ _k.sent();
6807
+ _k.label = 41;
6744
6808
  case 41:
6809
+ _i++;
6810
+ return [3 /*break*/, 39];
6811
+ case 42:
6745
6812
  _d = tests;
6746
6813
  _e = [];
6747
6814
  for (_f in _d)
6748
6815
  _e.push(_f);
6749
6816
  _g = 0;
6750
- _k.label = 42;
6751
- case 42:
6752
- if (!(_g < _e.length)) return [3 /*break*/, 47];
6753
- _f = _e[_g];
6754
- if (!(_f in _d)) return [3 /*break*/, 46];
6755
- t = _f;
6756
6817
  _k.label = 43;
6757
6818
  case 43:
6758
- _k.trys.push([43, 45, , 46]);
6759
- return [4 /*yield*/, tests[t]()];
6819
+ if (!(_g < _e.length)) return [3 /*break*/, 48];
6820
+ _f = _e[_g];
6821
+ if (!(_f in _d)) return [3 /*break*/, 47];
6822
+ t = _f;
6823
+ _k.label = 44;
6760
6824
  case 44:
6761
- _k.sent();
6762
- return [3 /*break*/, 46];
6825
+ _k.trys.push([44, 46, , 47]);
6826
+ return [4 /*yield*/, tests[t]()];
6763
6827
  case 45:
6828
+ _k.sent();
6829
+ return [3 /*break*/, 47];
6830
+ case 46:
6764
6831
  err_2 = _k.sent();
6765
6832
  console.error("Error running test:");
6766
6833
  console.error(err_2);
6767
6834
  process.exit(1);
6768
- return [3 /*break*/, 46];
6769
- case 46:
6770
- _g++;
6771
- return [3 /*break*/, 42];
6835
+ return [3 /*break*/, 47];
6772
6836
  case 47:
6837
+ _g++;
6838
+ return [3 /*break*/, 43];
6839
+ case 48:
6773
6840
  process.exit();
6774
6841
  return [2 /*return*/];
6775
6842
  }