@tellescope/sdk 1.185.2 → 1.187.0

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 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA8vEA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAsfD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAqmBD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAgD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA2ahD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAgyCD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA2C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA2N1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4nBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAsxEA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAsrBD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAqmBD,eAAO,MAAM,6BAA6B,qBAgCzC,CAAA;AAED,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAgD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA2ahD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAgyCD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA2C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA2N1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4nBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
@@ -274,47 +274,50 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
274
274
  case 28:
275
275
  // ensure that going to "Non-Admin" triggers a role change
276
276
  _a.sent();
277
- return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
277
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)]; // wait for role change to propagate so authenticate does fail next
278
278
  case 29:
279
+ _a.sent(); // wait for role change to propagate so authenticate does fail next
280
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
281
+ case 30:
279
282
  _a.sent();
280
283
  return [4 /*yield*/, (0, testing_1.async_test)('non admin authenticated', sdkNonAdmin.test_authenticated, { expectedResult: 'Authenticated!' })
281
284
  // reset nonAdmin role to a default non-admin
282
285
  ];
283
- case 30:
286
+ case 31:
284
287
  _a.sent();
285
288
  // reset nonAdmin role to a default non-admin
286
289
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true })];
287
- case 31:
290
+ case 32:
288
291
  // reset nonAdmin role to a default non-admin
289
292
  _a.sent();
290
293
  // should be unauthenticated due to role change
291
294
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 100)];
292
- case 32:
295
+ case 33:
293
296
  // reset nonAdmin role to a default non-admin
294
297
  // should be unauthenticated due to role change
295
298
  _a.sent();
296
299
  return [4 /*yield*/, (0, testing_1.async_test)('role change causes deauthentication', sdkNonAdmin.test_authenticated, handleAnyError)
297
300
  // reauthenticate
298
301
  ];
299
- case 33:
302
+ case 34:
300
303
  _a.sent();
301
304
  // reauthenticate
302
305
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)];
303
- case 34:
306
+ case 35:
304
307
  // reauthenticate
305
308
  _a.sent();
306
309
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)
307
310
  // may do some stuff in background after returning
308
311
  ];
309
- case 35:
312
+ case 36:
310
313
  _a.sent();
311
314
  // may do some stuff in background after returning
312
315
  return [4 /*yield*/, (0, testing_1.async_test)('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
313
- case 36:
316
+ case 37:
314
317
  // may do some stuff in background after returning
315
318
  _a.sent();
316
319
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
317
- case 37:
320
+ case 38:
318
321
  _a.sent();
319
322
  return [2 /*return*/];
320
323
  }
@@ -1639,48 +1642,63 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1639
1642
  return [4 /*yield*/, (0, testing_1.async_test)("user_display_info for room (for enduser)", function () { return enduserSDK.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
1640
1643
  case 12:
1641
1644
  _k.sent();
1642
- return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1645
+ return [4 /*yield*/, (0, testing_1.async_test)("non admin can't get room without enduser", function () { return sdkNonAdmin.api.chat_rooms.getOne({ id: room.id }); }, handleAnyError)];
1643
1646
  case 13:
1644
1647
  _k.sent();
1645
- return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
1648
+ return [4 /*yield*/, (0, testing_1.async_test)("non admin can't get chats from room without enduser", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: room.id } }); }, handleAnyError)];
1646
1649
  case 14:
1650
+ _k.sent();
1651
+ return [4 /*yield*/, sdk.api.endusers.updateOne(enduser.id, { assignedTo: [sdkNonAdmin.userInfo.id] })];
1652
+ case 15:
1653
+ _k.sent();
1654
+ return [4 /*yield*/, (0, testing_1.async_test)("non admin can get room with enduser", function () { return sdkNonAdmin.api.chat_rooms.getOne(room.id); }, passOnAnyResult)];
1655
+ case 16:
1656
+ _k.sent();
1657
+ return [4 /*yield*/, (0, testing_1.async_test)("non admin can get chats from room with enduser", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: room.id } }); }, passOnAnyResult)];
1658
+ case 17:
1659
+ _k.sent();
1660
+ return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1661
+ case 18:
1662
+ _k.sent();
1663
+ return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
1664
+ case 19:
1647
1665
  emptyRoom = _k.sent();
1648
1666
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (creator can access, even when not in userIds)", function () { return sdk.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1649
- case 15:
1667
+ case 20:
1650
1668
  _k.sent();
1651
1669
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (not in empty room)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
1652
- case 16:
1670
+ case 21:
1653
1671
  _k.sent();
1654
1672
  return [4 /*yield*/, (0, testing_1.async_test)("join-room", function () { return sdk2.api.chat_rooms.join_room({ id: emptyRoom.id }); }, { onResult: function (_a) {
1655
1673
  var room = _a.room;
1656
1674
  return room.id === emptyRoom.id;
1657
1675
  } })];
1658
- case 17:
1676
+ case 22:
1659
1677
  _k.sent();
1660
1678
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat-room (join successful)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1661
- case 18:
1679
+ case 23:
1662
1680
  _k.sent();
1663
1681
  return [4 /*yield*/, (0, testing_1.async_test)("create-chat (join successful)", function () { return sdk2.api.chats.createOne({ roomId: emptyRoom.id, message: 'test' }); }, passOnAnyResult)];
1664
- case 19:
1682
+ case 24:
1665
1683
  _k.sent();
1666
1684
  return [4 /*yield*/, (0, testing_1.async_test)("get-chat (join successful)", function () { return sdk2.api.chats.getSome({ filter: { roomId: emptyRoom.id } }); }, { onResult: function (r) { return r.length > 0; } })];
1667
- case 20:
1685
+ case 25:
1668
1686
  _k.sent();
1669
1687
  return [4 /*yield*/, (0, testing_1.async_test)("[bulk] get-chat-room (join successful)", function () { return sdk2.bulk_load({ load: [{ model: 'chat_rooms' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === emptyRoom.id; }); } })];
1670
- case 21:
1688
+ case 26:
1671
1689
  _k.sent();
1672
1690
  return [4 /*yield*/, enduserSDK.logout()];
1673
- case 22:
1691
+ case 27:
1674
1692
  _k.sent();
1675
1693
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1676
- case 23:
1694
+ case 28:
1677
1695
  loggedOutEnduser = _k.sent();
1678
1696
  (0, testing_1.assert)(new Date(loggedOutEnduser.lastLogout).getTime() > Date.now() - 100, 'lastLogout fail for enduser', 'lastLogout for enduser');
1679
1697
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1680
- case 24:
1698
+ case 29:
1681
1699
  _k.sent();
1682
1700
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
1683
- case 25:
1701
+ case 30:
1684
1702
  _k.sent();
1685
1703
  return [2 /*return*/];
1686
1704
  }
@@ -4047,13 +4065,239 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
4047
4065
  }
4048
4066
  });
4049
4067
  }); };
4068
+ var order_created_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4069
+ var t1, t2, t3, t4, e;
4070
+ return __generator(this, function (_a) {
4071
+ switch (_a.label) {
4072
+ case 0:
4073
+ (0, testing_1.log_header)("Automation Trigger Tests (Order Created)");
4074
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4075
+ event: { type: 'Order Created', info: {} },
4076
+ action: { type: 'Add Tags', info: { tags: ['No conditions'] } },
4077
+ status: 'Active',
4078
+ title: "No conditions"
4079
+ })];
4080
+ case 1:
4081
+ t1 = _a.sent();
4082
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4083
+ event: { type: 'Order Created', info: { titles: ['Title'] } },
4084
+ action: { type: 'Add Tags', info: { tags: ['Title'] } },
4085
+ status: 'Active',
4086
+ title: "Title Condition"
4087
+ })];
4088
+ case 2:
4089
+ t2 = _a.sent();
4090
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4091
+ event: { type: 'Order Created', info: { fills: ['Fill'] } },
4092
+ action: { type: 'Add Tags', info: { tags: ['Fill'] } },
4093
+ status: 'Active',
4094
+ title: "Fill Condition"
4095
+ })];
4096
+ case 3:
4097
+ t3 = _a.sent();
4098
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4099
+ event: { type: 'Order Created', info: { partialFrequency: 'freq' } },
4100
+ action: { type: 'Add Tags', info: { tags: ['Frequency'] } },
4101
+ status: 'Active',
4102
+ title: "Frequency Condition"
4103
+ })];
4104
+ case 4:
4105
+ t4 = _a.sent();
4106
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4107
+ case 5:
4108
+ e = _a.sent();
4109
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', title: 'nomatch', fill: 'nomatch', frequency: 'nomatch', externalId: '1', enduserId: e.id })];
4110
+ case 6:
4111
+ _a.sent();
4112
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4113
+ case 7:
4114
+ _a.sent(); // allow triggers to happen
4115
+ return [4 /*yield*/, (0, testing_1.async_test)("First tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4116
+ var _a, _b, _c, _d, _f;
4117
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 1
4118
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('No conditions'))
4119
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Title'))
4120
+ && !((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Fill'))
4121
+ && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Frequency')));
4122
+ } })];
4123
+ case 8:
4124
+ _a.sent();
4125
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '2', enduserId: e.id, title: "Title" })];
4126
+ case 9:
4127
+ _a.sent();
4128
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4129
+ case 10:
4130
+ _a.sent(); // allow triggers to happen
4131
+ return [4 /*yield*/, (0, testing_1.async_test)("Second tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4132
+ var _a, _b, _c, _d, _f;
4133
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 2
4134
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('No conditions'))
4135
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Title'))
4136
+ && !((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Fill'))
4137
+ && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Frequency')));
4138
+ } })];
4139
+ case 11:
4140
+ _a.sent();
4141
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '3', enduserId: e.id, title: "Title", fill: "Fill" })];
4142
+ case 12:
4143
+ _a.sent();
4144
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4145
+ case 13:
4146
+ _a.sent(); // allow triggers to happen
4147
+ return [4 /*yield*/, (0, testing_1.async_test)("Third tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4148
+ var _a, _b, _c, _d, _f;
4149
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 3
4150
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('No conditions'))
4151
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Title'))
4152
+ && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Fill'))
4153
+ && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Frequency')));
4154
+ } })];
4155
+ case 14:
4156
+ _a.sent();
4157
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'test', source: 'test', externalId: '4', enduserId: e.id, title: "Title", fill: "Fill", frequency: '1029freq--29' })];
4158
+ case 15:
4159
+ _a.sent();
4160
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4161
+ case 16:
4162
+ _a.sent(); // allow triggers to happen
4163
+ return [4 /*yield*/, (0, testing_1.async_test)("Fourth tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4164
+ var _a, _b, _c, _d, _f;
4165
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 4
4166
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('No conditions'))
4167
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Title'))
4168
+ && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Fill'))
4169
+ && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Frequency')));
4170
+ } })];
4171
+ case 17:
4172
+ _a.sent();
4173
+ return [4 /*yield*/, Promise.all([
4174
+ sdk.api.automation_triggers.deleteOne(t1.id),
4175
+ sdk.api.automation_triggers.deleteOne(t2.id),
4176
+ sdk.api.automation_triggers.deleteOne(t3.id),
4177
+ sdk.api.automation_triggers.deleteOne(t4.id),
4178
+ sdk.api.endusers.deleteOne(e.id),
4179
+ ])];
4180
+ case 18:
4181
+ _a.sent();
4182
+ return [2 /*return*/];
4183
+ }
4184
+ });
4185
+ }); };
4186
+ var tag_added_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4187
+ var t1, t2, t3, e;
4188
+ return __generator(this, function (_a) {
4189
+ switch (_a.label) {
4190
+ case 0:
4191
+ (0, testing_1.log_header)("Automation Trigger Tests (Tag Added)");
4192
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4193
+ event: { type: 'Tag Added', info: { tag: "1" } },
4194
+ action: { type: 'Add Tags', info: { tags: ['1 Added'] } },
4195
+ status: 'Active',
4196
+ title: "No conditions"
4197
+ })];
4198
+ case 1:
4199
+ t1 = _a.sent();
4200
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4201
+ event: { type: 'Tag Added', info: { tag: "2" } },
4202
+ action: { type: 'Add Tags', info: { tags: ['2 Added'] } },
4203
+ status: 'Active',
4204
+ title: "Title Condition"
4205
+ })];
4206
+ case 2:
4207
+ t2 = _a.sent();
4208
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4209
+ event: { type: 'Tag Added', info: { tag: "3" } },
4210
+ action: { type: 'Add Tags', info: { tags: ['3 Added'] } },
4211
+ status: 'Active',
4212
+ title: "Fill Condition"
4213
+ })];
4214
+ case 3:
4215
+ t3 = _a.sent();
4216
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4217
+ case 4:
4218
+ e = _a.sent();
4219
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { fname: 'no tags added' })];
4220
+ case 5:
4221
+ _a.sent();
4222
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4223
+ case 6:
4224
+ _a.sent(); // allow triggers to happen
4225
+ return [4 /*yield*/, (0, testing_1.async_test)("No tags added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })];
4226
+ case 7:
4227
+ _a.sent();
4228
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { tags: ['1'] })];
4229
+ case 8:
4230
+ _a.sent();
4231
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4232
+ case 9:
4233
+ _a.sent(); // allow triggers to happen
4234
+ return [4 /*yield*/, (0, testing_1.async_test)("Tag 1 added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4235
+ var _a;
4236
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 2
4237
+ && e.tags.includes('1')
4238
+ && e.tags.includes('1 Added'));
4239
+ } })];
4240
+ case 10:
4241
+ _a.sent();
4242
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { tags: ['4'] })];
4243
+ case 11:
4244
+ _a.sent();
4245
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4246
+ case 12:
4247
+ _a.sent(); // allow triggers to happen
4248
+ return [4 /*yield*/, (0, testing_1.async_test)('Unrecognized tag added', function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4249
+ var _a;
4250
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 3
4251
+ && e.tags.includes('1')
4252
+ && e.tags.includes('1 Added')
4253
+ && e.tags.includes('4'));
4254
+ } })];
4255
+ case 13:
4256
+ _a.sent();
4257
+ return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { tags: ['2', '3'] })];
4258
+ case 14:
4259
+ _a.sent();
4260
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)]; // allow triggers to happen
4261
+ case 15:
4262
+ _a.sent(); // allow triggers to happen
4263
+ return [4 /*yield*/, (0, testing_1.async_test)("Tag 2 and 3 added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4264
+ var _a;
4265
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 7
4266
+ && e.tags.includes('1')
4267
+ && e.tags.includes('1 Added')
4268
+ && e.tags.includes('4')
4269
+ && e.tags.includes('2')
4270
+ && e.tags.includes('3')
4271
+ && e.tags.includes('2 Added')
4272
+ && e.tags.includes('3 Added'));
4273
+ } })];
4274
+ case 16:
4275
+ _a.sent();
4276
+ return [4 /*yield*/, Promise.all([
4277
+ sdk.api.automation_triggers.deleteOne(t1.id),
4278
+ sdk.api.automation_triggers.deleteOne(t2.id),
4279
+ sdk.api.automation_triggers.deleteOne(t3.id),
4280
+ sdk.api.endusers.deleteOne(e.id),
4281
+ ])];
4282
+ case 17:
4283
+ _a.sent();
4284
+ return [2 /*return*/];
4285
+ }
4286
+ });
4287
+ }); };
4050
4288
  var automation_trigger_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4051
4289
  return __generator(this, function (_a) {
4052
4290
  switch (_a.label) {
4053
4291
  case 0:
4054
4292
  (0, testing_1.log_header)("Automation Trigger Tests");
4055
- return [4 /*yield*/, formSubmittedTriggerTests()];
4293
+ return [4 /*yield*/, tag_added_tests()];
4056
4294
  case 1:
4295
+ _a.sent();
4296
+ return [4 /*yield*/, order_created_tests()];
4297
+ case 2:
4298
+ _a.sent();
4299
+ return [4 /*yield*/, formSubmittedTriggerTests()];
4300
+ case 3:
4057
4301
  _a.sent();
4058
4302
  return [2 /*return*/];
4059
4303
  }
@@ -4148,11 +4392,17 @@ var form_response_tests = function () { return __awaiter(void 0, void 0, void 0,
4148
4392
  // assert(triggeredAutomation?.event?.type === 'formResponse', 'no form response event', 'form response event triggered')
4149
4393
  (0, testing_1.assert)(((_a = enduserWithUpdate === null || enduserWithUpdate === void 0 ? void 0 : enduserWithUpdate.fields) === null || _a === void 0 ? void 0 : _a[stringIntakeField]) === stringResponse, 'no enduser update', 'enduser updated');
4150
4394
  (0, testing_1.assert)(((_b = recordedResponse === null || recordedResponse === void 0 ? void 0 : recordedResponse.responses) === null || _b === void 0 ? void 0 : _b.length) === 1 && ((_c = recordedResponse.responses[0]) === null || _c === void 0 ? void 0 : _c.answer.value) === stringResponse, 'response not recorded', 'response recorded');
4151
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
4395
+ return [4 /*yield*/, (0, testing_1.async_test)("Can set lockedAt field on form response", function () { return sdk.api.form_responses.updateOne(recordedResponse.id, { lockedAt: new Date() }); }, { onResult: function (r) { return !!r.lockedAt; } })];
4152
4396
  case 14:
4153
4397
  _d.sent();
4154
- return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
4398
+ return [4 /*yield*/, (0, testing_1.async_test)("Can unset lockedAt", function () { return sdk.api.form_responses.updateOne(recordedResponse.id, { lockedAt: '' }); }, { onResult: function (r) { return !r.lockedAt; } })];
4155
4399
  case 15:
4400
+ _d.sent();
4401
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
4402
+ case 16:
4403
+ _d.sent();
4404
+ return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
4405
+ case 17:
4156
4406
  _d.sent();
4157
4407
  return [2 /*return*/];
4158
4408
  }
@@ -6055,7 +6305,7 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
6055
6305
  return [4 /*yield*/, sdk.api.endusers.updateOne(eNoTrigger.id, { fields: { Test: 'Trigger' } })];
6056
6306
  case 10:
6057
6307
  _b.sent();
6058
- return [4 /*yield*/, (0, testing_1.wait)(undefined, 5000)
6308
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 8000)
6059
6309
  // TODO - Test a delayed action which comes after the triggered action
6060
6310
  ];
6061
6311
  case 11:
@@ -10946,92 +11196,92 @@ var test_form_response_search = function () { return __awaiter(void 0, void 0, v
10946
11196
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
10947
11197
  case 16:
10948
11198
  _l.sent(); // should come directly after setup to avoid extra sync values
10949
- return [4 /*yield*/, enduserAccessTests()];
11199
+ return [4 /*yield*/, enduser_access_tags_tests()];
10950
11200
  case 17:
10951
11201
  _l.sent();
10952
- return [4 /*yield*/, test_form_response_search()];
11202
+ return [4 /*yield*/, enduserAccessTests()];
10953
11203
  case 18:
10954
11204
  _l.sent();
10955
- return [4 /*yield*/, date_parsing_tests()];
11205
+ return [4 /*yield*/, test_form_response_search()];
10956
11206
  case 19:
10957
11207
  _l.sent();
10958
- return [4 /*yield*/, fromEmailOverride_tests()];
11208
+ return [4 /*yield*/, date_parsing_tests()];
10959
11209
  case 20:
10960
11210
  _l.sent();
10961
- return [4 /*yield*/, ticket_tests()];
11211
+ return [4 /*yield*/, fromEmailOverride_tests()];
10962
11212
  case 21:
10963
11213
  _l.sent();
10964
- return [4 /*yield*/, uniqueness_tests()];
11214
+ return [4 /*yield*/, ticket_tests()];
10965
11215
  case 22:
10966
11216
  _l.sent();
10967
- return [4 /*yield*/, (0, exports.enduser_orders_tests)()];
11217
+ return [4 /*yield*/, uniqueness_tests()];
10968
11218
  case 23:
10969
11219
  _l.sent();
10970
- return [4 /*yield*/, calendar_event_care_team_tests()];
11220
+ return [4 /*yield*/, (0, exports.enduser_orders_tests)()];
10971
11221
  case 24:
10972
11222
  _l.sent();
10973
- return [4 /*yield*/, merge_enduser_tests()];
11223
+ return [4 /*yield*/, calendar_event_care_team_tests()];
10974
11224
  case 25:
10975
11225
  _l.sent();
10976
- return [4 /*yield*/, input_modifier_tests()];
11226
+ return [4 /*yield*/, merge_enduser_tests()];
10977
11227
  case 26:
10978
11228
  _l.sent();
10979
- return [4 /*yield*/, (0, exports.formsort_tests)()];
11229
+ return [4 /*yield*/, input_modifier_tests()];
10980
11230
  case 27:
10981
11231
  _l.sent();
10982
- return [4 /*yield*/, (0, exports.switch_to_related_contacts_tests)()];
11232
+ return [4 /*yield*/, (0, exports.formsort_tests)()];
10983
11233
  case 28:
10984
11234
  _l.sent();
10985
- return [4 /*yield*/, redaction_tests()];
11235
+ return [4 /*yield*/, (0, exports.switch_to_related_contacts_tests)()];
10986
11236
  case 29:
10987
11237
  _l.sent();
10988
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
11238
+ return [4 /*yield*/, redaction_tests()];
10989
11239
  case 30:
10990
11240
  _l.sent();
10991
- return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
11241
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
10992
11242
  case 31:
10993
11243
  _l.sent();
10994
- return [4 /*yield*/, rate_limit_tests()];
11244
+ return [4 /*yield*/, (0, exports.no_chained_triggers_tests)()];
10995
11245
  case 32:
10996
11246
  _l.sent();
10997
- return [4 /*yield*/, mdb_filter_tests()];
11247
+ return [4 /*yield*/, rate_limit_tests()];
10998
11248
  case 33:
10999
11249
  _l.sent();
11000
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
11250
+ return [4 /*yield*/, mdb_filter_tests()];
11001
11251
  case 34:
11002
11252
  _l.sent();
11003
- return [4 /*yield*/, superadmin_tests()];
11253
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
11004
11254
  case 35:
11005
11255
  _l.sent();
11006
- return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
11256
+ return [4 /*yield*/, superadmin_tests()];
11007
11257
  case 36:
11008
11258
  _l.sent();
11009
- return [4 /*yield*/, vital_trigger_tests()];
11259
+ return [4 /*yield*/, (0, exports.ticket_queue_tests)()];
11010
11260
  case 37:
11011
11261
  _l.sent();
11012
- return [4 /*yield*/, close_reasons_no_duplicates_tests()];
11262
+ return [4 /*yield*/, vital_trigger_tests()];
11013
11263
  case 38:
11014
11264
  _l.sent();
11015
- return [4 /*yield*/, register_as_enduser_tests()];
11265
+ return [4 /*yield*/, close_reasons_no_duplicates_tests()];
11016
11266
  case 39:
11017
11267
  _l.sent();
11018
- return [4 /*yield*/, lockout_tests()];
11268
+ return [4 /*yield*/, register_as_enduser_tests()];
11019
11269
  case 40:
11270
+ _l.sent();
11271
+ return [4 /*yield*/, lockout_tests()];
11272
+ case 41:
11020
11273
  _l.sent();
11021
11274
  return [4 /*yield*/, delete_user_tests()
11022
11275
  // await test_send_with_template()
11023
11276
  ];
11024
- case 41:
11277
+ case 42:
11025
11278
  _l.sent();
11026
11279
  // await test_send_with_template()
11027
11280
  return [4 /*yield*/, bulk_read_tests()];
11028
- case 42:
11281
+ case 43:
11029
11282
  // await test_send_with_template()
11030
11283
  _l.sent();
11031
11284
  return [4 /*yield*/, (0, exports.ticket_reminder_tests)()];
11032
- case 43:
11033
- _l.sent();
11034
- return [4 /*yield*/, enduser_access_tags_tests()];
11035
11285
  case 44:
11036
11286
  _l.sent();
11037
11287
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];