@tellescope/sdk 1.3.42 → 1.3.44

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.
@@ -1,3 +1,4 @@
1
+ export declare const cancelConditionsTests: () => Promise<void>;
1
2
  export declare const meetings_tests: () => Promise<void>;
2
3
  export declare const managed_content_records_tests: () => Promise<void>;
3
4
  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":"AAk2DA,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAy0DA,eAAO,MAAM,qBAAqB,qBA8IjC,CAAA;AA4FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AA0eD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAoED,eAAO,MAAM,eAAe,qBA8C3B,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.databases_tests = exports.calendar_event_RSVPs_tests = exports.managed_content_records_tests = exports.meetings_tests = void 0;
85
+ exports.databases_tests = exports.calendar_event_RSVPs_tests = exports.managed_content_records_tests = exports.meetings_tests = exports.cancelConditionsTests = 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
@@ -1856,7 +1856,7 @@ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, func
1856
1856
  field = _a.sent();
1857
1857
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1858
1858
  journeyId: journey.id,
1859
- event: { type: 'onJourneyStart', info: {} },
1859
+ events: [{ type: 'onJourneyStart', info: {} }],
1860
1860
  // in practice, this would send a form, so that the next step(s) could handle the response
1861
1861
  // but we don't want to send emails in testing, and can still attach this Id to a form response to test a trigger
1862
1862
  action: {
@@ -1868,10 +1868,10 @@ var formEventTests = function () { return __awaiter(void 0, void 0, void 0, func
1868
1868
  triggerStep = _a.sent();
1869
1869
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1870
1870
  journeyId: journey.id,
1871
- event: {
1872
- type: 'formResponse',
1873
- info: { automationStepId: triggerStep.id }
1874
- },
1871
+ events: [{
1872
+ type: 'formResponse',
1873
+ info: { automationStepId: triggerStep.id }
1874
+ }],
1875
1875
  action: {
1876
1876
  type: 'setEnduserStatus',
1877
1877
  info: { status: 'placeholder' },
@@ -1939,7 +1939,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
1939
1939
  nullJourney = _c.sent();
1940
1940
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1941
1941
  journeyId: journey.id,
1942
- event: { type: 'onJourneyStart', info: {} },
1942
+ events: [{ type: 'onJourneyStart', info: {} }],
1943
1943
  action: {
1944
1944
  type: 'createTicket',
1945
1945
  info: {
@@ -1957,7 +1957,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
1957
1957
  root = _c.sent();
1958
1958
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
1959
1959
  journeyId: nullJourney.id,
1960
- event: { type: 'onJourneyStart', info: {} },
1960
+ events: [{ type: 'onJourneyStart', info: {} }],
1961
1961
  action: {
1962
1962
  type: 'createTicket',
1963
1963
  info: {
@@ -1975,7 +1975,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
1975
1975
  nullRoot = _c.sent();
1976
1976
  createStep = function (journeyId, automationStepId, closedForReason) { return (sdk.api.automation_steps.createOne({
1977
1977
  journeyId: journeyId,
1978
- event: { type: 'ticketCompleted', info: { automationStepId: automationStepId, closedForReason: closedForReason, } },
1978
+ events: [{ type: 'ticketCompleted', info: { automationStepId: automationStepId, closedForReason: closedForReason, } }],
1979
1979
  action: { type: 'setEnduserStatus', info: { status: closedForReason !== null && closedForReason !== void 0 ? closedForReason : 'Null' }, },
1980
1980
  })); };
1981
1981
  return [4 /*yield*/, createStep(nullJourney.id, nullRoot.id)];
@@ -2008,7 +2008,7 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
2008
2008
  return [4 /*yield*/, sdk.api.endusers.updateOne(enduserWithTeam.id, { journeys: (_b = {}, _b[nullJourney.id] = 'Added (Null)', _b) })];
2009
2009
  case 16:
2010
2010
  _c.sent();
2011
- return [4 /*yield*/, (0, testing_1.wait)(undefined, 2000)]; // wait for tickets to be automatically created
2011
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 2200)]; // wait for tickets to be automatically created
2012
2012
  case 17:
2013
2013
  _c.sent(); // wait for tickets to be automatically created
2014
2014
  return [4 /*yield*/, (0, testing_1.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; } })];
@@ -2078,13 +2078,92 @@ var ticketEventTests = function () { return __awaiter(void 0, void 0, void 0, fu
2078
2078
  });
2079
2079
  }); };
2080
2080
  var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void 0, function () {
2081
- var journey, journey2, enduser, enduser2, step, step2, createAction, numberOfActions, i;
2081
+ var journey, enduser, TEST_DELAY, step;
2082
2082
  var _a;
2083
2083
  return __generator(this, function (_b) {
2084
2084
  switch (_b.label) {
2085
2085
  case 0:
2086
2086
  (0, testing_1.log_header)("Remove from Journey");
2087
2087
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey' })];
2088
+ case 1:
2089
+ journey = _b.sent();
2090
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'test@tellescope.com' })];
2091
+ case 2:
2092
+ enduser = _b.sent();
2093
+ TEST_DELAY = 1000;
2094
+ return [4 /*yield*/, (sdk.api.automation_steps.createOne({
2095
+ journeyId: journey.id,
2096
+ events: [{ type: 'onJourneyStart', info: {} }],
2097
+ action: { type: 'setEnduserStatus', info: { status: 'Root' }, },
2098
+ }))];
2099
+ case 3:
2100
+ step = _b.sent();
2101
+ return [4 /*yield*/, (sdk.api.automation_steps.createOne({
2102
+ journeyId: journey.id,
2103
+ events: [{ type: 'afterAction', info: {
2104
+ automationStepId: step.id,
2105
+ delay: TEST_DELAY / 1000,
2106
+ delayInMS: TEST_DELAY,
2107
+ unit: 'Seconds',
2108
+ } }],
2109
+ action: { type: 'setEnduserStatus', info: { status: 'Delayed Step' }, },
2110
+ }))
2111
+ // test empty events step doesn't get triggered or cause errors
2112
+ ];
2113
+ case 4:
2114
+ _b.sent();
2115
+ // test empty events step doesn't get triggered or cause errors
2116
+ return [4 /*yield*/, (sdk.api.automation_steps.createOne({
2117
+ journeyId: journey.id,
2118
+ events: [],
2119
+ action: { type: 'setEnduserStatus', info: { status: 'INVARIANT_VIOLATION' }, },
2120
+ }))
2121
+ // add to journey to trigger initial action
2122
+ ];
2123
+ case 5:
2124
+ // test empty events step doesn't get triggered or cause errors
2125
+ _b.sent();
2126
+ // add to journey to trigger initial action
2127
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { journeys: (_a = {}, _a[journey.id] = 'New', _a) }, { replaceObjectFields: true })];
2128
+ case 6:
2129
+ // add to journey to trigger initial action
2130
+ _b.sent();
2131
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
2132
+ case 7:
2133
+ _b.sent();
2134
+ return [4 /*yield*/, (0, testing_1.async_test)("Root action triggered (only root)", function () { return sdk.api.automated_actions.getSome({ filter: { enduserId: enduser.id } }); }, { onResult: function (es) { return es.length === 1; } })];
2135
+ case 8:
2136
+ _b.sent();
2137
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
2138
+ case 9:
2139
+ _b.sent();
2140
+ return [4 /*yield*/, (0, testing_1.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'; } })];
2141
+ case 10:
2142
+ _b.sent();
2143
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 3 * TEST_DELAY)]; // wait long enough for automation to process and delay to pass
2144
+ case 11:
2145
+ _b.sent(); // wait long enough for automation to process and delay to pass
2146
+ return [4 /*yield*/, (0, testing_1.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'; } })];
2147
+ case 12:
2148
+ _b.sent();
2149
+ return [4 /*yield*/, Promise.all([
2150
+ sdk.api.journeys.deleteOne(journey.id),
2151
+ sdk.api.endusers.deleteOne(enduser.id),
2152
+ ])];
2153
+ case 13:
2154
+ _b.sent();
2155
+ return [2 /*return*/];
2156
+ }
2157
+ });
2158
+ }); };
2159
+ var sequenceTests = function () { return __awaiter(void 0, void 0, void 0, function () {
2160
+ var journey, journey2, enduser, enduser2, step, step2, createAction, numberOfActions, i;
2161
+ var _a;
2162
+ return __generator(this, function (_b) {
2163
+ switch (_b.label) {
2164
+ case 0:
2165
+ (0, testing_1.log_header)("Automation Sequencing");
2166
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey' })];
2088
2167
  case 1:
2089
2168
  journey = _b.sent();
2090
2169
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'other journey' })];
@@ -2101,14 +2180,14 @@ var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void
2101
2180
  _b.sent();
2102
2181
  return [4 /*yield*/, (sdk.api.automation_steps.createOne({
2103
2182
  journeyId: journey.id,
2104
- event: { type: 'onJourneyStart', info: {} },
2183
+ events: [{ type: 'onJourneyStart', info: {} }],
2105
2184
  action: { type: 'setEnduserStatus', info: { status: 'Root' }, },
2106
2185
  }))];
2107
2186
  case 6:
2108
2187
  step = _b.sent();
2109
2188
  return [4 /*yield*/, (sdk.api.automation_steps.createOne({
2110
2189
  journeyId: journey2.id,
2111
- event: { type: 'onJourneyStart', info: {} },
2190
+ events: [{ type: 'onJourneyStart', info: {} }],
2112
2191
  action: { type: 'setEnduserStatus', info: { status: 'Root' }, },
2113
2192
  }))];
2114
2193
  case 7:
@@ -2116,7 +2195,6 @@ var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void
2116
2195
  createAction = function (journeyId, step, enduserId) { return (sdk.api.automated_actions.createOne({
2117
2196
  journeyId: journeyId,
2118
2197
  automationStepId: step.id,
2119
- cancelConditions: [],
2120
2198
  enduserId: enduserId !== null && enduserId !== void 0 ? enduserId : enduser.id,
2121
2199
  processAfter: Date.now() + 1000000,
2122
2200
  status: 'active',
@@ -2169,19 +2247,213 @@ var removeFromJourneyTests = function () { return __awaiter(void 0, void 0, void
2169
2247
  }
2170
2248
  });
2171
2249
  }); };
2250
+ var cancelConditionsTests = function () { return __awaiter(void 0, void 0, void 0, function () {
2251
+ var enduser, journey, form, field, triggerStep, unsub, fastFollowup, accessCode;
2252
+ return __generator(this, function (_a) {
2253
+ switch (_a.label) {
2254
+ case 0:
2255
+ (0, testing_1.log_header)("Cancel Condition Tests");
2256
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'deletemeee@tellescope.com' })];
2257
+ case 1:
2258
+ enduser = _a.sent();
2259
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'test journey ' })];
2260
+ case 2:
2261
+ journey = _a.sent();
2262
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'test form' })];
2263
+ case 3:
2264
+ form = _a.sent();
2265
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
2266
+ formId: form.id, title: 'question', type: 'string',
2267
+ previousFields: [{ type: 'root', info: {} }]
2268
+ })
2269
+ // this action won't be fired, because patient isn't added to journey as part of tests
2270
+ ];
2271
+ case 4:
2272
+ field = _a.sent();
2273
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2274
+ journeyId: journey.id,
2275
+ events: [{ type: 'onJourneyStart', info: {} }],
2276
+ // in practice, this would send a form, so that the next step(s) could handle the response
2277
+ // but we don't want to send emails in testing, and can still attach this Id to a form response to test a trigger
2278
+ action: {
2279
+ type: 'setEnduserStatus',
2280
+ info: { status: 'start' },
2281
+ },
2282
+ })];
2283
+ case 5:
2284
+ triggerStep = _a.sent();
2285
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2286
+ journeyId: journey.id,
2287
+ events: [{
2288
+ type: 'formUnsubmitted',
2289
+ info: {
2290
+ automationStepId: triggerStep.id,
2291
+ delayInMS: 0,
2292
+ delay: 0, unit: 'Seconds',
2293
+ cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2294
+ }
2295
+ }],
2296
+ action: {
2297
+ type: 'setEnduserStatus',
2298
+ info: { status: 'triggered' },
2299
+ },
2300
+ })];
2301
+ case 6:
2302
+ unsub = _a.sent();
2303
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2304
+ journeyId: journey.id,
2305
+ events: [{
2306
+ type: 'afterAction',
2307
+ info: {
2308
+ automationStepId: unsub.id,
2309
+ delayInMS: 0,
2310
+ delay: 0, unit: 'Seconds',
2311
+ cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2312
+ }
2313
+ }],
2314
+ action: {
2315
+ type: 'setEnduserStatus',
2316
+ info: { status: 'triggered again' },
2317
+ },
2318
+ })];
2319
+ case 7:
2320
+ fastFollowup = _a.sent();
2321
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2322
+ journeyId: journey.id,
2323
+ events: [{
2324
+ type: 'afterAction',
2325
+ info: {
2326
+ automationStepId: unsub.id,
2327
+ delayInMS: 1000000,
2328
+ delay: 0, unit: 'Seconds',
2329
+ cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2330
+ }
2331
+ }],
2332
+ action: {
2333
+ type: 'setEnduserStatus',
2334
+ info: { status: 'violation 1' },
2335
+ },
2336
+ })
2337
+ // a second followup to the unsub event (to create example of two actions with same cancel condition)
2338
+ ];
2339
+ case 8:
2340
+ _a.sent();
2341
+ // a second followup to the unsub event (to create example of two actions with same cancel condition)
2342
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
2343
+ journeyId: journey.id,
2344
+ events: [{
2345
+ type: 'afterAction',
2346
+ info: {
2347
+ automationStepId: unsub.id,
2348
+ delayInMS: 1000000,
2349
+ delay: 0, unit: 'Seconds',
2350
+ cancelConditions: [{ type: 'formResponse', info: { automationStepId: triggerStep.id } }]
2351
+ }
2352
+ }],
2353
+ action: {
2354
+ type: 'setEnduserStatus',
2355
+ info: { status: 'violation 2' },
2356
+ },
2357
+ })];
2358
+ case 9:
2359
+ // a second followup to the unsub event (to create example of two actions with same cancel condition)
2360
+ _a.sent();
2361
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
2362
+ formId: form.id,
2363
+ automationStepId: triggerStep.id,
2364
+ enduserId: enduser.id
2365
+ })
2366
+ // allow formUnsubmitted to trigger
2367
+ // await wait(undefined, 1500) // allow background creation with generous pause
2368
+ // await async_test(
2369
+ // `formUnsubmitted event with short delay is triggered`,
2370
+ // () => sdk.api.endusers.getOne(enduser.id),
2371
+ // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2372
+ // )
2373
+ // allow fast followup to trigger
2374
+ ];
2375
+ case 10:
2376
+ accessCode = (_a.sent()).accessCode;
2377
+ // allow formUnsubmitted to trigger
2378
+ // await wait(undefined, 1500) // allow background creation with generous pause
2379
+ // await async_test(
2380
+ // `formUnsubmitted event with short delay is triggered`,
2381
+ // () => sdk.api.endusers.getOne(enduser.id),
2382
+ // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2383
+ // )
2384
+ // allow fast followup to trigger
2385
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 4000)]; // allow background creation with generous pause
2386
+ case 11:
2387
+ // allow formUnsubmitted to trigger
2388
+ // await wait(undefined, 1500) // allow background creation with generous pause
2389
+ // await async_test(
2390
+ // `formUnsubmitted event with short delay is triggered`,
2391
+ // () => sdk.api.endusers.getOne(enduser.id),
2392
+ // { onResult: e => e?.journeys?.[journey.id] === 'triggered' }
2393
+ // )
2394
+ // allow fast followup to trigger
2395
+ _a.sent(); // allow background creation with generous pause
2396
+ 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'; } })
2397
+ // trigger cancel conditions
2398
+ ];
2399
+ case 12:
2400
+ _a.sent();
2401
+ // trigger cancel conditions
2402
+ return [4 /*yield*/, sdk.api.form_responses.submit_form_response({ accessCode: accessCode, automationStepId: triggerStep.id, responses: [{
2403
+ answer: {
2404
+ type: 'string',
2405
+ value: 'answer'
2406
+ },
2407
+ fieldId: field.id,
2408
+ fieldTitle: field.title,
2409
+ }] })];
2410
+ case 13:
2411
+ // trigger cancel conditions
2412
+ _a.sent();
2413
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 1500)]; // allow background creation with generous pause
2414
+ case 14:
2415
+ _a.sent(); // allow background creation with generous pause
2416
+ return [4 /*yield*/, (0, testing_1.async_test)("Cancel conditions work for followup", function () { return sdk.api.automated_actions.getSome(); }, { onResult: function (as) {
2417
+ var _a, _b;
2418
+ return as.length === 4
2419
+ && ((_a = as.find(function (a) { return a.automationStepId === unsub.id; })) === null || _a === void 0 ? void 0 : _a.status) === 'finished'
2420
+ && ((_b = as.find(function (a) { return a.automationStepId === fastFollowup.id; })) === null || _b === void 0 ? void 0 : _b.status) === 'finished'
2421
+ && as.filter(function (a) { return a.status === 'cancelled'; }).length === 2;
2422
+ }
2423
+ })];
2424
+ case 15:
2425
+ _a.sent();
2426
+ return [4 /*yield*/, Promise.all([
2427
+ sdk.api.forms.deleteOne(form.id),
2428
+ sdk.api.journeys.deleteOne(journey.id),
2429
+ sdk.api.endusers.deleteOne(enduser.id)
2430
+ ])];
2431
+ case 16:
2432
+ _a.sent();
2433
+ return [2 /*return*/];
2434
+ }
2435
+ });
2436
+ }); };
2437
+ exports.cancelConditionsTests = cancelConditionsTests;
2172
2438
  var automation_events_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
2173
2439
  return __generator(this, function (_a) {
2174
2440
  switch (_a.label) {
2175
2441
  case 0:
2176
2442
  (0, testing_1.log_header)("Automation Events");
2177
- return [4 /*yield*/, formEventTests()];
2443
+ return [4 /*yield*/, (0, exports.cancelConditionsTests)()];
2178
2444
  case 1:
2179
2445
  _a.sent();
2180
- return [4 /*yield*/, ticketEventTests()];
2446
+ return [4 /*yield*/, sequenceTests()];
2181
2447
  case 2:
2182
2448
  _a.sent();
2183
- return [4 /*yield*/, removeFromJourneyTests()];
2449
+ return [4 /*yield*/, formEventTests()];
2184
2450
  case 3:
2451
+ _a.sent();
2452
+ return [4 /*yield*/, ticketEventTests()];
2453
+ case 4:
2454
+ _a.sent();
2455
+ return [4 /*yield*/, removeFromJourneyTests()];
2456
+ case 5:
2185
2457
  _a.sent();
2186
2458
  return [2 /*return*/];
2187
2459
  }
@@ -3172,6 +3444,7 @@ var databases_tests = function () { return __awaiter(void 0, void 0, void 0, fun
3172
3444
  exports.databases_tests = databases_tests;
3173
3445
  var NO_TEST = function () { };
3174
3446
  var tests = {
3447
+ automation_steps: automation_events_tests,
3175
3448
  calendar_event_templates: NO_TEST,
3176
3449
  databases: exports.databases_tests,
3177
3450
  database_records: NO_TEST,
@@ -3197,7 +3470,6 @@ var tests = {
3197
3470
  form_responses: form_response_tests,
3198
3471
  calendar_events: calendar_events_tests,
3199
3472
  webhooks: NO_TEST,
3200
- automation_steps: automation_events_tests,
3201
3473
  sequence_automations: NO_TEST,
3202
3474
  automated_actions: NO_TEST,
3203
3475
  enduser_status_updates: status_update_tests,