@tellescope/sdk 1.4.61 → 1.4.62

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 CHANGED
@@ -1367,7 +1367,6 @@ export declare class Session extends SessionManager {
1367
1367
  creator: string;
1368
1368
  organizationIds?: string[] | undefined;
1369
1369
  sharedWithOrganizations?: string[][] | undefined;
1370
- users?: number | undefined;
1371
1370
  endusers?: number | undefined;
1372
1371
  engagement_events?: number | undefined;
1373
1372
  journeys?: number | undefined;
@@ -1377,6 +1376,7 @@ export declare class Session extends SessionManager {
1377
1376
  sms_messages?: number | undefined;
1378
1377
  chat_rooms?: number | undefined;
1379
1378
  chats?: number | undefined;
1379
+ users?: number | undefined;
1380
1380
  templates?: number | undefined;
1381
1381
  files?: number | undefined;
1382
1382
  tickets?: number | undefined;
@@ -1471,7 +1471,6 @@ export declare class Session extends SessionManager {
1471
1471
  creator: string;
1472
1472
  organizationIds?: string[] | undefined;
1473
1473
  sharedWithOrganizations?: string[][] | undefined;
1474
- users?: number | undefined;
1475
1474
  endusers?: number | undefined;
1476
1475
  engagement_events?: number | undefined;
1477
1476
  journeys?: number | undefined;
@@ -1481,6 +1480,7 @@ export declare class Session extends SessionManager {
1481
1480
  sms_messages?: number | undefined;
1482
1481
  chat_rooms?: number | undefined;
1483
1482
  chats?: number | undefined;
1483
+ users?: number | undefined;
1484
1484
  templates?: number | undefined;
1485
1485
  files?: number | undefined;
1486
1486
  tickets?: number | undefined;
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { Socket } from 'socket.io-client';
2
3
  import { ReactNativeFile, S3PresignedPost } from "@tellescope/types-utilities";
3
4
  import { ClientModelForName, User } from "@tellescope/types-client";
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAM,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,kBAAkB,EAAE,IAAI,EACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,eAAO,MAAM,YAAY,+BAA+B,CAAA;AAExD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,IAAI,OAAQ,QAAQ,IAAI,CAAC,+BAEpC,CAAA;AAEF,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC;AA0BD,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,qBAAa,OAAO;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,SAAc;IAC1B,eAAe,SAAU;IAEzB,MAAM,EAAE;QAAE,OAAO,EAAE;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAA;KAAC,CAAC;gBAElC,CAAC;cAAiD,MAAM;KAAE;IAqCtE,aAAa,2EAAuE;IAEpF,YAAY,MAAO,MAAM,UAIxB;IAED,WAAW,MAAO;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,UAInE;IAED,UAAU,aAGT;IAED,UAAU,aAOT;IAED,WAAW,kBAAmB,OAAO;;;;;;;;;;kBAWpC;IAED,YAAY,SAAgB,GAAG,kBAQ9B;IACD,IAAI,0BAA8B,MAAM,qDAAoC;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,gBASxG;IAED,GAAG,0BAA8B,MAAM,iEAQtC;IAED,KAAK,0BAA8B,MAAM,iEAQxC;IAED,MAAM,0BAA8B,MAAM,+DAQzC;IAED,MAAM,cAAqB,eAAe,QAAQ,IAAI,GAAG,MAAM,GAAG,eAAe,mBAWhF;IAED,QAAQ,gBAAuB,MAAM,kBAGpC;IAED,IAAI,UAAiB,MAAM,QAAQ,MAAM,sEAUxC;IAED,EAAE,cAAa,MAAM,sBAAsB,IAAI,0IAAiC;IAEhF;;MAEE;IACF,SAAS;;;6BAA4F,GAAG,KAAK,IAAI;2BAqBhH;IAED,aAAa;6BAAsC,GAAG,KAAK,IAAI;eAM9D;IAED,WAAW,YAAa,MAAM,EAAE,mBAA0C;IAC1E,wBAAwB,aAGvB;IAED,UAAU,YAAa,MAAM,UAE5B;IACD,iBAAiB,aAgBhB;IACD,mBAAmB,aA6BlB;IAED,kBAAkB;IAClB,aAAa,sBAmBZ;CACF"}
@@ -1,4 +1,5 @@
1
- export declare const cancelConditionsTests: () => Promise<void>;
1
+ export declare const formUnsubmittedCancelConditionTest: () => Promise<void>;
2
+ export declare const formsUnsubmittedCancelConditionTest: () => Promise<void>;
2
3
  export declare const meetings_tests: () => Promise<void>;
3
4
  export declare const managed_content_records_tests: () => Promise<void>;
4
5
  export declare const calendar_event_RSVPs_tests: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAu+DA,eAAO,MAAM,qBAAqB,qBA8IjC,CAAA;AA4ID,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAmJhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAu+DA,eAAO,MAAM,kCAAkC,qBA4I9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAsK/C,CAAA;AA6ID,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAmJhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA"}
@@ -82,7 +82,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
82
82
  return (mod && mod.__esModule) ? mod : { "default": mod };
83
83
  };
84
84
  Object.defineProperty(exports, "__esModule", { value: true });
85
- exports.role_based_access_permissions_tests = exports.self_serve_appointment_booking_tests = exports.filter_by_date_tests = exports.databases_tests = exports.calendar_event_RSVPs_tests = exports.managed_content_records_tests = exports.meetings_tests = exports.cancelConditionsTests = void 0;
85
+ exports.role_based_access_permissions_tests = exports.self_serve_appointment_booking_tests = exports.filter_by_date_tests = exports.databases_tests = exports.calendar_event_RSVPs_tests = exports.managed_content_records_tests = exports.meetings_tests = exports.formsUnsubmittedCancelConditionTest = exports.formUnsubmittedCancelConditionTest = void 0;
86
86
  require('source-map-support').install();
87
87
  var crypto_1 = __importDefault(require("crypto"));
88
88
  var buffer = __importStar(require("buffer")); // only node >=15.7.0
@@ -2564,12 +2564,12 @@ var sequenceTests = function () { return __awaiter(void 0, void 0, void 0, funct
2564
2564
  }
2565
2565
  });
2566
2566
  }); };
2567
- var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void 0, function () {
2567
+ var formUnsubmittedCancelConditionTest = function () { return __awaiter(void 0, void 0, void 0, function () {
2568
2568
  var enduser, journey, form, field, triggerStep, unsub, fastFollowup, accessCode;
2569
2569
  return __generator(this, function (_a) {
2570
2570
  switch (_a.label) {
2571
2571
  case 0:
2572
- (0, testing_1.log_header)("Cancel Condition Tests");
2572
+ (0, testing_1.log_header)("formUnsubmitted Cancel Condition Tests");
2573
2573
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
2574
2574
  case 1:
2575
2575
  enduser = _a.sent();
@@ -2606,15 +2606,18 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2606
2606
  info: {
2607
2607
  automationStepId: triggerStep.id,
2608
2608
  delayInMS: 0,
2609
- delay: 0, unit: 'Seconds',
2610
- cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2609
+ delay: 0, unit: 'Seconds', // don't matter
2610
+ // this cancelCondition is now added automatically, does not need to be part of step
2611
+ // cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id }}]
2611
2612
  }
2612
2613
  }],
2613
2614
  action: {
2614
2615
  type: 'setEnduserStatus',
2615
2616
  info: { status: 'triggered' },
2616
2617
  },
2617
- })];
2618
+ })
2619
+ // should occur right after unsub
2620
+ ];
2618
2621
  case 6:
2619
2622
  unsub = _a.sent();
2620
2623
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
@@ -2624,17 +2627,21 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2624
2627
  info: {
2625
2628
  automationStepId: unsub.id,
2626
2629
  delayInMS: 0,
2627
- delay: 0, unit: 'Seconds',
2628
- cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2630
+ delay: 0, unit: 'Seconds', // don't matter
2631
+ // this cancelCondition is now added automatically, does not need to be part of step
2632
+ // cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id }}]
2629
2633
  }
2630
2634
  }],
2631
2635
  action: {
2632
2636
  type: 'setEnduserStatus',
2633
2637
  info: { status: 'triggered again' },
2634
2638
  },
2635
- })];
2639
+ })
2640
+ // should be cancelled after unsub
2641
+ ];
2636
2642
  case 7:
2637
2643
  fastFollowup = _a.sent();
2644
+ // should be cancelled after unsub
2638
2645
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
2639
2646
  journeyId: journey.id,
2640
2647
  events: [{
@@ -2642,8 +2649,9 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2642
2649
  info: {
2643
2650
  automationStepId: unsub.id,
2644
2651
  delayInMS: 1000000,
2645
- delay: 0, unit: 'Seconds',
2646
- cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2652
+ delay: 0, unit: 'Seconds', // don't matter
2653
+ // this cancelCondition is now added automatically, passed down from unsub
2654
+ // cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id }}]
2647
2655
  }
2648
2656
  }],
2649
2657
  action: {
@@ -2651,10 +2659,13 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2651
2659
  info: { status: 'violation 1' },
2652
2660
  },
2653
2661
  })
2662
+ // should be cancelled after unsub
2654
2663
  // a second followup to the unsub event (to create example of two actions with same cancel condition)
2655
2664
  ];
2656
2665
  case 8:
2666
+ // should be cancelled after unsub
2657
2667
  _a.sent();
2668
+ // should be cancelled after unsub
2658
2669
  // a second followup to the unsub event (to create example of two actions with same cancel condition)
2659
2670
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
2660
2671
  journeyId: journey.id,
@@ -2663,8 +2674,9 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2663
2674
  info: {
2664
2675
  automationStepId: unsub.id,
2665
2676
  delayInMS: 1000000,
2666
- delay: 0, unit: 'Seconds',
2667
- cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2677
+ delay: 0, unit: 'Seconds', // don't matter
2678
+ // this cancelCondition is now added automatically, does not need to be part of step
2679
+ // cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id }}]
2668
2680
  }
2669
2681
  }],
2670
2682
  action: {
@@ -2673,6 +2685,7 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2673
2685
  },
2674
2686
  })];
2675
2687
  case 9:
2688
+ // should be cancelled after unsub
2676
2689
  // a second followup to the unsub event (to create example of two actions with same cancel condition)
2677
2690
  _a.sent();
2678
2691
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
@@ -2680,34 +2693,13 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2680
2693
  automationStepId: triggerStep.id,
2681
2694
  enduserId: enduser.id
2682
2695
  })
2683
- // allow formUnsubmitted to trigger
2684
- // await wait(undefined, 1500) // allow background creation with generous pause
2685
- // await async_test(
2686
- // `formUnsubmitted event with short delay is triggered`,
2687
- // () => sdk.api.endusers.getOne(enduser.id),
2688
- // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2689
- // )
2690
2696
  // allow fast followup to trigger
2691
2697
  ];
2692
2698
  case 10:
2693
2699
  accessCode = (_a.sent()).accessCode;
2694
- // allow formUnsubmitted to trigger
2695
- // await wait(undefined, 1500) // allow background creation with generous pause
2696
- // await async_test(
2697
- // `formUnsubmitted event with short delay is triggered`,
2698
- // () => sdk.api.endusers.getOne(enduser.id),
2699
- // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2700
- // )
2701
2700
  // allow fast followup to trigger
2702
2701
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 4000)]; // allow background creation with generous pause
2703
2702
  case 11:
2704
- // allow formUnsubmitted to trigger
2705
- // await wait(undefined, 1500) // allow background creation with generous pause
2706
- // await async_test(
2707
- // `formUnsubmitted event with short delay is triggered`,
2708
- // () => sdk.api.endusers.getOne(enduser.id),
2709
- // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2710
- // )
2711
2703
  // allow fast followup to trigger
2712
2704
  _a.sent(); // allow background creation with generous pause
2713
2705
  return [4 /*yield*/, (0, testing_1.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'; } })
@@ -2751,7 +2743,195 @@ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void
2751
2743
  }
2752
2744
  });
2753
2745
  }); };
2754
- exports.cancelConditionsTests = cancelConditionsTests;
2746
+ exports.formUnsubmittedCancelConditionTest = formUnsubmittedCancelConditionTest;
2747
+ var formsUnsubmittedCancelConditionTest = function () { return __awaiter(void 0, void 0, void 0, function () {
2748
+ var enduser, journey, form, field, triggerStep, unsub, form_responses;
2749
+ return __generator(this, function (_a) {
2750
+ switch (_a.label) {
2751
+ case 0:
2752
+ (0, testing_1.log_header)("formsUnsubmitted Cancel Condition Tests");
2753
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
2754
+ case 1:
2755
+ enduser = _a.sent();
2756
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey ' })];
2757
+ case 2:
2758
+ journey = _a.sent();
2759
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'test form' })];
2760
+ case 3:
2761
+ form = _a.sent();
2762
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
2763
+ formId: form.id, title: 'question', type: 'string',
2764
+ previousFields: [{ type: 'root', info: {} }]
2765
+ })
2766
+ // this action won't be fired, because patient isn't added to journey as part of tests
2767
+ ];
2768
+ case 4:
2769
+ field = _a.sent();
2770
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2771
+ journeyId: journey.id,
2772
+ events: [{ type: 'onJourneyStart', info: {} }],
2773
+ // in practice, this would send a form, so that the next step(s) could handle the response
2774
+ // but we don't want to send emails in testing, and can still attach this Id to a form response to test a trigger
2775
+ action: {
2776
+ type: 'setEnduserStatus',
2777
+ info: { status: 'start' },
2778
+ },
2779
+ })];
2780
+ case 5:
2781
+ triggerStep = _a.sent();
2782
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2783
+ journeyId: journey.id,
2784
+ events: [{
2785
+ type: 'formsUnsubmitted',
2786
+ info: {
2787
+ automationStepId: triggerStep.id,
2788
+ delayInMS: 10000,
2789
+ delay: 0, unit: 'Seconds',
2790
+ cancelConditions: [
2791
+ // { type: 'formResponse', info: { automationStepId: triggerStep.id }}
2792
+ ]
2793
+ }
2794
+ }],
2795
+ action: {
2796
+ type: 'setEnduserStatus',
2797
+ info: { status: 'triggered' },
2798
+ },
2799
+ })
2800
+ // test for all forms submitted triggering update
2801
+ ];
2802
+ case 6:
2803
+ unsub = _a.sent();
2804
+ // test for all forms submitted triggering update
2805
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2806
+ journeyId: journey.id,
2807
+ events: [{
2808
+ type: 'formResponses',
2809
+ info: { automationStepId: triggerStep.id }
2810
+ }],
2811
+ action: {
2812
+ type: 'setEnduserStatus',
2813
+ info: { status: 'formsSubmitted' },
2814
+ },
2815
+ })
2816
+ // triggers formsUnsubmitted automated actions to be created when forms generated in templated message
2817
+ ];
2818
+ case 7:
2819
+ // test for all forms submitted triggering update
2820
+ _a.sent();
2821
+ // triggers formsUnsubmitted automated actions to be created when forms generated in templated message
2822
+ return [4 /*yield*/, sdk.api.templates.get_templated_message({
2823
+ channel: 'Email',
2824
+ enduserId: enduser.id,
2825
+ message: "{{forms.".concat(form.id, ".link:title}} {{forms.").concat(form.id, ".link:title}}"),
2826
+ userId: sdk.userInfo.id,
2827
+ automationStepId: triggerStep.id,
2828
+ })];
2829
+ case 8:
2830
+ // triggers formsUnsubmitted automated actions to be created when forms generated in templated message
2831
+ _a.sent();
2832
+ return [4 /*yield*/, sdk.api.form_responses.getSome()
2833
+ // allow fast followup to trigger
2834
+ ];
2835
+ case 9:
2836
+ form_responses = _a.sent();
2837
+ // allow fast followup to trigger
2838
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 2500)]; // allow background creation with generous pause
2839
+ case 10:
2840
+ // allow fast followup to trigger
2841
+ _a.sent(); // allow background creation with generous pause
2842
+ return [4 /*yield*/, (0, testing_1.async_test)("FormsUnsubmitted action created with cancel conditions", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (as) {
2843
+ var _a;
2844
+ var match = as.find(function (a) { return a.automationStepId === unsub.id; });
2845
+ return !!(as.length === 1
2846
+ && (match === null || match === void 0 ? void 0 : match.status) === 'active'
2847
+ && (match === null || match === void 0 ? void 0 : match.event.type) === 'formsUnsubmitted'
2848
+ && ((_a = match.event.info.cancelConditions) === null || _a === void 0 ? void 0 : _a.find(function (c) {
2849
+ return c.type === 'formResponses'
2850
+ && c.info.automationStepId === triggerStep.id
2851
+ && c.info.unsubmittedFormCount === 2;
2852
+ })));
2853
+ } })];
2854
+ case 11:
2855
+ _a.sent();
2856
+ return [4 /*yield*/, (0, testing_1.async_test)("formResponses not triggered with all forms unsubmitted", 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'; } })
2857
+ // trigger cancel conditions
2858
+ ];
2859
+ case 12:
2860
+ _a.sent();
2861
+ // trigger cancel conditions
2862
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: form_responses[0].accessCode, automationStepId: triggerStep.id, responses: [{
2863
+ answer: {
2864
+ type: 'string',
2865
+ value: 'answer'
2866
+ },
2867
+ fieldId: field.id,
2868
+ fieldTitle: field.title,
2869
+ }] })];
2870
+ case 13:
2871
+ // trigger cancel conditions
2872
+ _a.sent();
2873
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 2500)]; // allow background creation with generous pause
2874
+ case 14:
2875
+ _a.sent(); // allow background creation with generous pause
2876
+ return [4 /*yield*/, (0, testing_1.async_test)("FormsUnsubmitted cancel conditions working", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (as) {
2877
+ var _a;
2878
+ var match = as.find(function (a) { return a.automationStepId === unsub.id; });
2879
+ return !!(as.length === 1
2880
+ && (match === null || match === void 0 ? void 0 : match.status) === 'active'
2881
+ && (match === null || match === void 0 ? void 0 : match.event.type) === 'formsUnsubmitted'
2882
+ && ((_a = match.event.info.cancelConditions) === null || _a === void 0 ? void 0 : _a.find(function (c) {
2883
+ return c.type === 'formResponses'
2884
+ && c.info.automationStepId === triggerStep.id
2885
+ && c.info.unsubmittedFormCount === 1;
2886
+ })));
2887
+ } })];
2888
+ case 15:
2889
+ _a.sent();
2890
+ return [4 /*yield*/, (0, testing_1.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'; } })];
2891
+ case 16:
2892
+ _a.sent();
2893
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: form_responses[1].accessCode, automationStepId: triggerStep.id, responses: [{
2894
+ answer: {
2895
+ type: 'string',
2896
+ value: 'answer'
2897
+ },
2898
+ fieldId: field.id,
2899
+ fieldTitle: field.title,
2900
+ }] })];
2901
+ case 17:
2902
+ _a.sent();
2903
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 2500)]; // allow background creation with generous pause
2904
+ case 18:
2905
+ _a.sent(); // allow background creation with generous pause
2906
+ return [4 /*yield*/, (0, testing_1.async_test)("FormsUnsubmitted cancel conditions work", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (as) {
2907
+ var _a;
2908
+ var match = as.find(function (a) { return a.automationStepId === unsub.id; });
2909
+ return !!(as.length === 2 // this now includes formResponses event as well, which we test has worked in the next test
2910
+ && (match === null || match === void 0 ? void 0 : match.status) === 'cancelled'
2911
+ && (match === null || match === void 0 ? void 0 : match.event.type) === 'formsUnsubmitted'
2912
+ && ((_a = match.event.info.cancelConditions) === null || _a === void 0 ? void 0 : _a.find(function (c) {
2913
+ return c.type === 'formResponses'
2914
+ && c.info.automationStepId === triggerStep.id
2915
+ && c.info.unsubmittedFormCount === 0;
2916
+ })));
2917
+ } })];
2918
+ case 19:
2919
+ _a.sent();
2920
+ return [4 /*yield*/, (0, testing_1.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'; } })];
2921
+ case 20:
2922
+ _a.sent();
2923
+ return [4 /*yield*/, Promise.all([
2924
+ sdk.api.forms.deleteOne(form.id),
2925
+ sdk.api.journeys.deleteOne(journey.id),
2926
+ sdk.api.endusers.deleteOne(enduser.id)
2927
+ ])];
2928
+ case 21:
2929
+ _a.sent();
2930
+ return [2 /*return*/];
2931
+ }
2932
+ });
2933
+ }); };
2934
+ exports.formsUnsubmittedCancelConditionTest = formsUnsubmittedCancelConditionTest;
2755
2935
  var addToJourneyTests = function () { return __awaiter(void 0, void 0, void 0, function () {
2756
2936
  var journey, enduser, root, follow;
2757
2937
  return __generator(this, function (_a) {
@@ -2821,23 +3001,26 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
2821
3001
  switch (_a.label) {
2822
3002
  case 0:
2823
3003
  (0, testing_1.log_header)("Automation Events");
2824
- return [4 /*yield*/, addToJourneyTests()];
3004
+ return [4 /*yield*/, (0, exports.formsUnsubmittedCancelConditionTest)()];
2825
3005
  case 1:
2826
3006
  _a.sent();
2827
- return [4 /*yield*/, (0, exports.cancelConditionsTests)()];
3007
+ return [4 /*yield*/, (0, exports.formUnsubmittedCancelConditionTest)()];
2828
3008
  case 2:
2829
3009
  _a.sent();
2830
- return [4 /*yield*/, sequenceTests()];
3010
+ return [4 /*yield*/, addToJourneyTests()];
2831
3011
  case 3:
2832
3012
  _a.sent();
2833
- return [4 /*yield*/, formEventTests()];
3013
+ return [4 /*yield*/, sequenceTests()];
2834
3014
  case 4:
2835
3015
  _a.sent();
2836
- return [4 /*yield*/, ticketEventTests()];
3016
+ return [4 /*yield*/, formEventTests()];
2837
3017
  case 5:
2838
3018
  _a.sent();
2839
- return [4 /*yield*/, removeFromJourneyTests()];
3019
+ return [4 /*yield*/, ticketEventTests()];
2840
3020
  case 6:
3021
+ _a.sent();
3022
+ return [4 /*yield*/, removeFromJourneyTests()];
3023
+ case 7:
2841
3024
  _a.sent();
2842
3025
  return [2 /*return*/];
2843
3026
  }
@@ -4093,6 +4276,7 @@ var role_based_access_permissions_tests = function () { return __awaiter(void 0,
4093
4276
  exports.role_based_access_permissions_tests = role_based_access_permissions_tests;
4094
4277
  var NO_TEST = function () { };
4095
4278
  var tests = {
4279
+ automation_steps: automation_events_tests,
4096
4280
  products: NO_TEST,
4097
4281
  purchase_credits: NO_TEST,
4098
4282
  purchases: NO_TEST,
@@ -4100,7 +4284,6 @@ var tests = {
4100
4284
  appointment_booking_pages: NO_TEST,
4101
4285
  role_based_access_permissions: exports.role_based_access_permissions_tests,
4102
4286
  chat_rooms: chat_room_tests,
4103
- automation_steps: automation_events_tests,
4104
4287
  files: files_tests,
4105
4288
  enduser_tasks: NO_TEST,
4106
4289
  care_plans: NO_TEST,
@@ -4151,7 +4334,7 @@ var tests = {
4151
4334
  (0, testing_1.log_header)("API");
4152
4335
  _k.label = 1;
4153
4336
  case 1:
4154
- _k.trys.push([1, 21, , 22]);
4337
+ _k.trys.push([1, 22, , 23]);
4155
4338
  return [4 /*yield*/, Promise.all([
4156
4339
  sdk.authenticate(email, password),
4157
4340
  sdkSub.authenticate(subUserEmail, password),
@@ -4167,56 +4350,60 @@ var tests = {
4167
4350
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
4168
4351
  case 4:
4169
4352
  _k.sent(); // should come right after setup tests
4170
- return [4 /*yield*/, sub_organization_enduser_tests()];
4353
+ console.log('delete me');
4354
+ return [4 /*yield*/, automation_events_tests()];
4171
4355
  case 5:
4172
4356
  _k.sent();
4173
- return [4 /*yield*/, sub_organization_tests()];
4357
+ return [4 /*yield*/, sub_organization_enduser_tests()];
4174
4358
  case 6:
4175
4359
  _k.sent();
4176
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
4360
+ return [4 /*yield*/, sub_organization_tests()];
4177
4361
  case 7:
4178
4362
  _k.sent();
4179
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
4363
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
4180
4364
  case 8:
4181
4365
  _k.sent();
4182
- return [4 /*yield*/, generate_user_auth_tests()];
4366
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
4183
4367
  case 9:
4184
4368
  _k.sent();
4185
- return [4 /*yield*/, role_based_access_tests()];
4369
+ return [4 /*yield*/, generate_user_auth_tests()];
4186
4370
  case 10:
4187
4371
  _k.sent();
4188
- return [4 /*yield*/, generateEnduserAuthTests()];
4372
+ return [4 /*yield*/, role_based_access_tests()];
4189
4373
  case 11:
4190
4374
  _k.sent();
4191
- return [4 /*yield*/, public_form_tests()];
4375
+ return [4 /*yield*/, generateEnduserAuthTests()];
4192
4376
  case 12:
4193
4377
  _k.sent();
4194
- return [4 /*yield*/, search_tests()];
4378
+ return [4 /*yield*/, public_form_tests()];
4195
4379
  case 13:
4196
4380
  _k.sent();
4197
- return [4 /*yield*/, badInputTests()];
4381
+ return [4 /*yield*/, search_tests()];
4198
4382
  case 14:
4199
4383
  _k.sent();
4200
- return [4 /*yield*/, filterTests()];
4384
+ return [4 /*yield*/, badInputTests()];
4201
4385
  case 15:
4202
4386
  _k.sent();
4203
- return [4 /*yield*/, updatesTests()];
4387
+ return [4 /*yield*/, filterTests()];
4204
4388
  case 16:
4205
4389
  _k.sent();
4206
- return [4 /*yield*/, threadKeyTests()];
4390
+ return [4 /*yield*/, updatesTests()];
4207
4391
  case 17:
4208
4392
  _k.sent();
4209
- return [4 /*yield*/, enduserAccessTests()];
4393
+ return [4 /*yield*/, threadKeyTests()];
4210
4394
  case 18:
4211
4395
  _k.sent();
4212
- return [4 /*yield*/, enduser_session_tests()];
4396
+ return [4 /*yield*/, enduserAccessTests()];
4213
4397
  case 19:
4214
4398
  _k.sent();
4215
- return [4 /*yield*/, enduser_redaction_tests()];
4399
+ return [4 /*yield*/, enduser_session_tests()];
4216
4400
  case 20:
4217
4401
  _k.sent();
4218
- return [3 /*break*/, 22];
4402
+ return [4 /*yield*/, enduser_redaction_tests()];
4219
4403
  case 21:
4404
+ _k.sent();
4405
+ return [3 /*break*/, 23];
4406
+ case 22:
4220
4407
  err_1 = _k.sent();
4221
4408
  console.error("Failed during custom test");
4222
4409
  if (err_1.message && err_1.info) {
@@ -4226,18 +4413,18 @@ var tests = {
4226
4413
  console.error(err_1);
4227
4414
  }
4228
4415
  process.exit(1);
4229
- return [3 /*break*/, 22];
4230
- case 22:
4416
+ return [3 /*break*/, 23];
4417
+ case 23:
4231
4418
  _a = schema_1.schema;
4232
4419
  _b = [];
4233
4420
  for (_c in _a)
4234
4421
  _b.push(_c);
4235
4422
  _i = 0;
4236
- _k.label = 23;
4237
- case 23:
4238
- if (!(_i < _b.length)) return [3 /*break*/, 26];
4423
+ _k.label = 24;
4424
+ case 24:
4425
+ if (!(_i < _b.length)) return [3 /*break*/, 27];
4239
4426
  _c = _b[_i];
4240
- if (!(_c in _a)) return [3 /*break*/, 25];
4427
+ if (!(_c in _a)) return [3 /*break*/, 26];
4241
4428
  n = _c;
4242
4429
  returnValidation = (_j = (_h = schema_1.schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
4243
4430
  return [4 /*yield*/, run_generated_tests({
@@ -4248,41 +4435,41 @@ var tests = {
4248
4435
  create: returnValidation // ModelFields<ClientModel>,
4249
4436
  }
4250
4437
  })];
4251
- case 24:
4252
- _k.sent();
4253
- _k.label = 25;
4254
4438
  case 25:
4255
- _i++;
4256
- return [3 /*break*/, 23];
4439
+ _k.sent();
4440
+ _k.label = 26;
4257
4441
  case 26:
4442
+ _i++;
4443
+ return [3 /*break*/, 24];
4444
+ case 27:
4258
4445
  _d = tests;
4259
4446
  _e = [];
4260
4447
  for (_f in _d)
4261
4448
  _e.push(_f);
4262
4449
  _g = 0;
4263
- _k.label = 27;
4264
- case 27:
4265
- if (!(_g < _e.length)) return [3 /*break*/, 32];
4266
- _f = _e[_g];
4267
- if (!(_f in _d)) return [3 /*break*/, 31];
4268
- t = _f;
4269
4450
  _k.label = 28;
4270
4451
  case 28:
4271
- _k.trys.push([28, 30, , 31]);
4272
- return [4 /*yield*/, tests[t]()];
4452
+ if (!(_g < _e.length)) return [3 /*break*/, 33];
4453
+ _f = _e[_g];
4454
+ if (!(_f in _d)) return [3 /*break*/, 32];
4455
+ t = _f;
4456
+ _k.label = 29;
4273
4457
  case 29:
4274
- _k.sent();
4275
- return [3 /*break*/, 31];
4458
+ _k.trys.push([29, 31, , 32]);
4459
+ return [4 /*yield*/, tests[t]()];
4276
4460
  case 30:
4461
+ _k.sent();
4462
+ return [3 /*break*/, 32];
4463
+ case 31:
4277
4464
  err_2 = _k.sent();
4278
4465
  console.error("Error running test:");
4279
4466
  console.error(err_2);
4280
4467
  process.exit(1);
4281
- return [3 /*break*/, 31];
4282
- case 31:
4283
- _g++;
4284
- return [3 /*break*/, 27];
4468
+ return [3 /*break*/, 32];
4285
4469
  case 32:
4470
+ _g++;
4471
+ return [3 /*break*/, 28];
4472
+ case 33:
4286
4473
  process.exit();
4287
4474
  return [2 /*return*/];
4288
4475
  }