@tellescope/sdk 1.4.28 → 1.4.31

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.
Files changed (44) hide show
  1. package/.env +3 -0
  2. package/lib/cjs/enduser.d.ts +6 -3
  3. package/lib/cjs/enduser.d.ts.map +1 -1
  4. package/lib/cjs/enduser.js +4 -4
  5. package/lib/cjs/enduser.js.map +1 -1
  6. package/lib/cjs/sdk.d.ts +16 -7
  7. package/lib/cjs/sdk.d.ts.map +1 -1
  8. package/lib/cjs/sdk.js +3 -4
  9. package/lib/cjs/sdk.js.map +1 -1
  10. package/lib/cjs/session.d.ts +3 -0
  11. package/lib/cjs/session.d.ts.map +1 -1
  12. package/lib/cjs/session.js +7 -4
  13. package/lib/cjs/session.js.map +1 -1
  14. package/lib/cjs/tests/socket_tests.d.ts.map +1 -1
  15. package/lib/cjs/tests/socket_tests.js +105 -66
  16. package/lib/cjs/tests/socket_tests.js.map +1 -1
  17. package/lib/cjs/tests/tests.d.ts.map +1 -1
  18. package/lib/cjs/tests/tests.js +253 -45
  19. package/lib/cjs/tests/tests.js.map +1 -1
  20. package/lib/esm/enduser.d.ts +6 -2
  21. package/lib/esm/enduser.d.ts.map +1 -1
  22. package/lib/esm/enduser.js +4 -4
  23. package/lib/esm/enduser.js.map +1 -1
  24. package/lib/esm/sdk.d.ts +14 -4
  25. package/lib/esm/sdk.d.ts.map +1 -1
  26. package/lib/esm/sdk.js +3 -4
  27. package/lib/esm/sdk.js.map +1 -1
  28. package/lib/esm/session.d.ts +4 -0
  29. package/lib/esm/session.d.ts.map +1 -1
  30. package/lib/esm/session.js +7 -4
  31. package/lib/esm/session.js.map +1 -1
  32. package/lib/esm/tests/socket_tests.d.ts.map +1 -1
  33. package/lib/esm/tests/socket_tests.js +105 -66
  34. package/lib/esm/tests/socket_tests.js.map +1 -1
  35. package/lib/esm/tests/tests.d.ts.map +1 -1
  36. package/lib/esm/tests/tests.js +253 -45
  37. package/lib/esm/tests/tests.js.map +1 -1
  38. package/lib/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +8 -8
  40. package/src/enduser.ts +12 -9
  41. package/src/sdk.ts +12 -3
  42. package/src/session.ts +5 -2
  43. package/src/tests/socket_tests.ts +47 -11
  44. package/src/tests/tests.ts +151 -2
@@ -68,6 +68,9 @@ var host = process.env.TEST_URL || 'http://localhost:8080';
68
68
  var _a = [process.env.TEST_EMAIL, process.env.TEST_PASSWORD], email = _a[0], password = _a[1];
69
69
  var _b = [process.env.TEST_EMAIL_2, process.env.TEST_PASSWORD_2], email2 = _b[0], password2 = _b[1];
70
70
  var _c = [process.env.NON_ADMIN_EMAIL, process.env.NON_ADMIN_PASSWORD], nonAdminEmail = _c[0], nonAdminPassword = _c[1];
71
+ var subUserEmail = process.env.SUB_EMAIL;
72
+ var otherSubUserEmail = process.env.OTHER_SUB_EMAIL;
73
+ var subSubUserEmail = process.env.SUB_SUB_EMAIL;
71
74
  var userId = '60398b0231a295e64f084fd9';
72
75
  var businessId = '60398b1131a295e64f084ff6';
73
76
  // const example_SDK_usage = async () => {
@@ -85,12 +88,16 @@ var businessId = '60398b1131a295e64f084ff6';
85
88
  // await sdk.api.endusers.deleteOne(enduser.id)
86
89
  // }
87
90
  var sdk = new Session({ host: host });
91
+ var sdkSub = new Session({ host: host });
92
+ var sdkOtherSub = new Session({ host: host });
93
+ var sdkSubSub = new Session({ host: host });
88
94
  var sdkOther = new Session({ host: host, apiKey: "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7" });
89
95
  var sdkNonAdmin = new Session({ host: host });
90
96
  var enduserSDK = new EnduserSession({ host: host, businessId: businessId });
97
+ var subEnduserSDK = new EnduserSession({ host: host, businessId: businessId, "organizationIds": ["636d3c230067fc6b4c92c59c"] });
91
98
  var enduserSDKDifferentBusinessId = new EnduserSession({ host: host, businessId: '80398b1131a295e64f084ff6' });
92
99
  // const sdkOtherEmail = "sebass@tellescope.com"
93
- if (!(email && password && email2 && password2 && nonAdminEmail && nonAdminPassword)) {
100
+ if (!(email && subUserEmail && otherSubUserEmail && subSubUserEmail && password && email2 && password2 && nonAdminEmail && nonAdminPassword)) {
94
101
  console.error("Set TEST_EMAIL and TEST_PASSWORD");
95
102
  process.exit();
96
103
  }
@@ -132,8 +139,14 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
132
139
  _a.sent();
133
140
  assert(uInfo.id === sdk.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
134
141
  assert(!!originalAuthToken && !!sdk.authToken && sdk.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
135
- return [4 /*yield*/, async_test('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
142
+ // reset nonAdmin role to a default non-admin
143
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true })];
136
144
  case 9:
145
+ // reset nonAdmin role to a default non-admin
146
+ _a.sent();
147
+ return [4 /*yield*/, async_test('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
148
+ case 10:
149
+ // reset nonAdmin role to a default non-admin
137
150
  _a.sent();
138
151
  return [2 /*return*/];
139
152
  }
@@ -202,6 +215,167 @@ var multi_tenant_tests = function () { return __awaiter(void 0, void 0, void 0,
202
215
  }
203
216
  });
204
217
  }); };
218
+ var sub_organization_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
219
+ var rootEnduser, subEnduser, subSubEnduser;
220
+ return __generator(this, function (_a) {
221
+ switch (_a.label) {
222
+ case 0:
223
+ log_header("Sub Organizations");
224
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'root@tellescope.com' })];
225
+ case 1:
226
+ rootEnduser = _a.sent();
227
+ return [4 /*yield*/, sdkSub.api.endusers.createOne({ email: 'sub@tellescope.com' })];
228
+ case 2:
229
+ subEnduser = _a.sent();
230
+ return [4 /*yield*/, sdkSubSub.api.endusers.createOne({ email: 'subsub@tellescope.com' })];
231
+ case 3:
232
+ subSubEnduser = _a.sent();
233
+ return [4 /*yield*/, async_test("root get root", function () { return sdk.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
234
+ case 4:
235
+ _a.sent();
236
+ return [4 /*yield*/, async_test("sub get root error", function () { return sdkSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
237
+ case 5:
238
+ _a.sent();
239
+ return [4 /*yield*/, async_test("other sub get root error", function () { return sdkOtherSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
240
+ case 6:
241
+ _a.sent();
242
+ return [4 /*yield*/, async_test("subsub get root error", function () { return sdkSubSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
243
+ case 7:
244
+ _a.sent();
245
+ return [4 /*yield*/, async_test("root get sub", function () { return sdk.api.endusers.getOne(subEnduser.id); }, passOnAnyResult)];
246
+ case 8:
247
+ _a.sent();
248
+ return [4 /*yield*/, async_test("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduser.id); }, passOnAnyResult)];
249
+ case 9:
250
+ _a.sent();
251
+ return [4 /*yield*/, async_test("other sub get sub error", function () { return sdkOtherSub.api.endusers.getOne(subEnduser.id); }, handleAnyError)];
252
+ case 10:
253
+ _a.sent();
254
+ return [4 /*yield*/, async_test("subsub get sub error", function () { return sdkSubSub.api.endusers.getOne(subEnduser.id); }, handleAnyError)];
255
+ case 11:
256
+ _a.sent();
257
+ return [4 /*yield*/, async_test("root get subsub", function () { return sdk.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
258
+ case 12:
259
+ _a.sent();
260
+ return [4 /*yield*/, async_test("sub get subsub", function () { return sdkSub.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
261
+ case 13:
262
+ _a.sent();
263
+ return [4 /*yield*/, async_test("other sub get sub sub error", function () { return sdkOtherSub.api.endusers.getOne(subSubEnduser.id); }, handleAnyError)];
264
+ case 14:
265
+ _a.sent();
266
+ return [4 /*yield*/, async_test("subsub get subsub", function () { return sdkSubSub.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
267
+ case 15:
268
+ _a.sent();
269
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: rootEnduser.id, password: password })];
270
+ case 16:
271
+ _a.sent();
272
+ return [4 /*yield*/, enduserSDK.authenticate(rootEnduser.email, password)];
273
+ case 17:
274
+ _a.sent();
275
+ return [4 /*yield*/, async_test("root enduser create", function () { return enduserSDK.api.engagement_events.createOne({ significance: 1, type: 'test', enduserId: rootEnduser.id }); }, { onResult: function (t) { var _a; return t.businessId === rootEnduser.businessId && !((_a = t.organizationIds) === null || _a === void 0 ? void 0 : _a.length); } })];
276
+ case 18:
277
+ _a.sent();
278
+ return [4 /*yield*/, async_test("enduser cannot update organizationIds", function () { return enduserSDK.api.endusers.updateOne(enduserSDK.userInfo.id, { organizationIds: [] }); }, handleAnyError)];
279
+ case 19:
280
+ _a.sent();
281
+ return [4 /*yield*/, async_test("users cannot update organizationIds", function () { return sdk.api.users.updateOne(sdk.userInfo.id, { organizationIds: [] }); }, handleAnyError)];
282
+ case 20:
283
+ _a.sent();
284
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: subEnduser.id, password: password })];
285
+ case 21:
286
+ _a.sent();
287
+ return [4 /*yield*/, enduserSDK.authenticate(subEnduser.email, password)];
288
+ case 22:
289
+ _a.sent();
290
+ return [4 /*yield*/, async_test("sub enduser create", function () { return enduserSDK.api.engagement_events.createOne({ significance: 1, type: 'test', enduserId: subEnduser.id }); }, { onResult: function (t) { var _a; return t.businessId === rootEnduser.businessId && ((_a = t.organizationIds) === null || _a === void 0 ? void 0 : _a.length) === 1; } })];
291
+ case 23:
292
+ _a.sent();
293
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: subSubEnduser.id, password: password })];
294
+ case 24:
295
+ _a.sent();
296
+ return [4 /*yield*/, enduserSDK.authenticate(subSubEnduser.email, password)];
297
+ case 25:
298
+ _a.sent();
299
+ return [4 /*yield*/, async_test("subSub enduser create", function () { return enduserSDK.api.engagement_events.createOne({ significance: 1, type: 'test', enduserId: subSubEnduser.id }); }, { onResult: function (t) { var _a; return t.businessId === rootEnduser.businessId && ((_a = t.organizationIds) === null || _a === void 0 ? void 0 : _a.length) === 2; } })];
300
+ case 26:
301
+ _a.sent();
302
+ return [4 /*yield*/, sdk.api.endusers.updateOne(rootEnduser.id, { organizationIds: subEnduser.organizationIds })];
303
+ case 27:
304
+ _a.sent();
305
+ return [4 /*yield*/, async_test("root get sub adjusted", function () { return sdk.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
306
+ case 28:
307
+ _a.sent();
308
+ return [4 /*yield*/, async_test("sub get sub adjusted", function () { return sdkSub.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
309
+ case 29:
310
+ _a.sent();
311
+ return [4 /*yield*/, async_test("other sub get sub adjusted error", function () { return sdkOtherSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
312
+ case 30:
313
+ _a.sent();
314
+ return [4 /*yield*/, async_test("subsub get sub adjusted error", function () { return sdkSubSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
315
+ case 31:
316
+ _a.sent();
317
+ return [4 /*yield*/, async_test("push behavior for organization ids (push by default)", function () { return sdk.api.endusers.updateOne(rootEnduser.id, { organizationIds: subEnduser.organizationIds }); },
318
+ // { onResult: e => e.organizationIds?.length === 2 * (subEnduser.organizationIds?.length ?? 0) },
319
+ handleAnyError // this is not going to pass, because pushing must result in organizationIds that match an existing organization
320
+ )];
321
+ case 32:
322
+ _a.sent();
323
+ return [4 /*yield*/, async_test("push behavior for organization ids (replace working)", function () { return sdk.api.endusers.updateOne(rootEnduser.id, { organizationIds: subEnduser.organizationIds }, { replaceObjectFields: true }); }, { onResult: function (e) { var _a, _b; return ((_a = e.organizationIds) === null || _a === void 0 ? void 0 : _a.length) === ((_b = subEnduser.organizationIds) === null || _b === void 0 ? void 0 : _b.length); } })];
324
+ case 33:
325
+ _a.sent();
326
+ return [4 /*yield*/, Promise.all([
327
+ sdk.api.endusers.deleteOne(rootEnduser.id),
328
+ sdk.api.endusers.deleteOne(subEnduser.id),
329
+ sdk.api.endusers.deleteOne(subSubEnduser.id),
330
+ ])];
331
+ case 34:
332
+ _a.sent();
333
+ return [2 /*return*/];
334
+ }
335
+ });
336
+ }); };
337
+ var sub_organization_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
338
+ var _a, _b;
339
+ return __generator(this, function (_c) {
340
+ switch (_c.label) {
341
+ case 0:
342
+ log_header("Sub Organizations (Enduser-Facing Tests)");
343
+ return [4 /*yield*/, enduserSDK.register({ email: 'root@tellescope.com', password: password })];
344
+ case 1:
345
+ _c.sent();
346
+ return [4 /*yield*/, subEnduserSDK.register({ email: 'sub@tellescope.com', password: password })];
347
+ case 2:
348
+ _c.sent();
349
+ return [4 /*yield*/, enduserSDK.authenticate('root@tellescope.com', password)];
350
+ case 3:
351
+ _c.sent();
352
+ return [4 /*yield*/, subEnduserSDK.authenticate('sub@tellescope.com', password)];
353
+ case 4:
354
+ _c.sent();
355
+ assert(!((_a = enduserSDK.userInfo.organizationIds) === null || _a === void 0 ? void 0 : _a.length), 'bad root organizationIds', 'root auth org ids');
356
+ assert(((_b = subEnduserSDK.userInfo.organizationIds) === null || _b === void 0 ? void 0 : _b.length) === 1, 'bad sub organizationIds', 'sub auth org ids');
357
+ return [4 /*yield*/, async_test("root get root", function () { return sdk.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
358
+ case 5:
359
+ _c.sent();
360
+ return [4 /*yield*/, async_test("sub get root error", function () { return sdkSub.api.endusers.getOne(enduserSDK.userInfo.id); }, handleAnyError)];
361
+ case 6:
362
+ _c.sent();
363
+ return [4 /*yield*/, async_test("root get sub", function () { return sdk.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
364
+ case 7:
365
+ _c.sent();
366
+ return [4 /*yield*/, async_test("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
367
+ case 8:
368
+ _c.sent();
369
+ return [4 /*yield*/, Promise.all([
370
+ sdk.api.endusers.deleteOne(enduserSDK.userInfo.id),
371
+ sdk.api.endusers.deleteOne(subEnduserSDK.userInfo.id),
372
+ ])];
373
+ case 9:
374
+ _c.sent();
375
+ return [2 /*return*/];
376
+ }
377
+ });
378
+ }); };
205
379
  var threadKeyTests = function () { return __awaiter(void 0, void 0, void 0, function () {
206
380
  var enduser, _a, e1, e2, e3, _b, e4, e5, e6, es;
207
381
  return __generator(this, function (_c) {
@@ -381,7 +555,7 @@ var generate_user_auth_tests = function () { return __awaiter(void 0, void 0, vo
381
555
  _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
382
556
  if (!enduser)
383
557
  throw new Error("Didn't get enduser when generate_auth_token called");
384
- assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
558
+ assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authTokea and get enduser');
385
559
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
386
560
  case 4:
387
561
  isAuthenticated = (_e.sent()).isAuthenticated;
@@ -3772,21 +3946,46 @@ export var role_based_access_permissions_tests = function () { return __awaiter(
3772
3946
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // to use new role, handle logout on role change
3773
3947
  case 3:
3774
3948
  _a.sent(); // to use new role, handle logout on role change
3949
+ return [4 /*yield*/, async_test('non-root admin can read', function () { return sdkSub.api.role_based_access_permissions.getOne(rbap.id); }, passOnAnyResult)];
3950
+ case 4:
3951
+ _a.sent();
3952
+ return [4 /*yield*/, async_test('non-root admin can read many', function () { return sdkSub.api.role_based_access_permissions.getSome(); }, { onResult: function (rs) { return rs.length > 0; } })];
3953
+ case 5:
3954
+ _a.sent();
3955
+ return [4 /*yield*/, async_test('non-root admin blocked create', function () { return sdkSub.api.role_based_access_permissions.createOne({
3956
+ role: noEnduserAccessRole,
3957
+ permissions: {
3958
+ endusers: {
3959
+ create: null,
3960
+ read: null,
3961
+ delete: null,
3962
+ update: null,
3963
+ }
3964
+ }
3965
+ }); }, handleAnyError)];
3966
+ case 6:
3967
+ _a.sent();
3968
+ return [4 /*yield*/, async_test('non-root admin blocked update', function () { return sdkSub.api.role_based_access_permissions.updateOne(rbap.id, { role: 'updated' }); }, handleAnyError)];
3969
+ case 7:
3970
+ _a.sent();
3971
+ return [4 /*yield*/, async_test('non-root admin blocked delete', function () { return sdkSub.api.role_based_access_permissions.deleteOne(rbap.id); }, handleAnyError)];
3972
+ case 8:
3973
+ _a.sent();
3775
3974
  return [4 /*yield*/, async_test('enduser read access restriction working', function () { return sdkNonAdmin.api.endusers.getSome(); }, handleAnyError)
3776
3975
  // cleanup
3777
3976
  ];
3778
- case 4:
3977
+ case 9:
3779
3978
  _a.sent();
3780
3979
  // cleanup
3781
3980
  return [4 /*yield*/, Promise.all([
3782
3981
  sdk.api.role_based_access_permissions.deleteOne(rbap.id),
3783
3982
  sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true }),
3784
3983
  ])];
3785
- case 5:
3984
+ case 10:
3786
3985
  // cleanup
3787
3986
  _a.sent();
3788
3987
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // to use new role, handle logout on role change
3789
- case 6:
3988
+ case 11:
3790
3989
  _a.sent(); // to use new role, handle logout on role change
3791
3990
  return [2 /*return*/];
3792
3991
  }
@@ -3847,9 +4046,12 @@ var tests = {
3847
4046
  log_header("API");
3848
4047
  _h.label = 1;
3849
4048
  case 1:
3850
- _h.trys.push([1, 19, , 20]);
4049
+ _h.trys.push([1, 21, , 22]);
3851
4050
  return [4 /*yield*/, Promise.all([
3852
4051
  sdk.authenticate(email, password),
4052
+ sdkSub.authenticate(subUserEmail, password),
4053
+ sdkOtherSub.authenticate(otherSubUserEmail, password),
4054
+ sdkSubSub.authenticate(subSubUserEmail, password),
3853
4055
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
3854
4056
  ])];
3855
4057
  case 2:
@@ -3860,50 +4062,56 @@ var tests = {
3860
4062
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
3861
4063
  case 4:
3862
4064
  _h.sent(); // should come right after setup tests
3863
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
4065
+ return [4 /*yield*/, sub_organization_enduser_tests()];
3864
4066
  case 5:
3865
4067
  _h.sent();
3866
- return [4 /*yield*/, filter_by_date_tests()];
4068
+ return [4 /*yield*/, sub_organization_tests()];
3867
4069
  case 6:
3868
4070
  _h.sent();
3869
- return [4 /*yield*/, generate_user_auth_tests()];
4071
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
3870
4072
  case 7:
3871
4073
  _h.sent();
3872
- return [4 /*yield*/, role_based_access_tests()];
4074
+ return [4 /*yield*/, filter_by_date_tests()];
3873
4075
  case 8:
3874
4076
  _h.sent();
3875
- return [4 /*yield*/, generateEnduserAuthTests()];
4077
+ return [4 /*yield*/, generate_user_auth_tests()];
3876
4078
  case 9:
3877
4079
  _h.sent();
3878
- return [4 /*yield*/, public_form_tests()];
4080
+ return [4 /*yield*/, role_based_access_tests()];
3879
4081
  case 10:
3880
4082
  _h.sent();
3881
- return [4 /*yield*/, search_tests()];
4083
+ return [4 /*yield*/, generateEnduserAuthTests()];
3882
4084
  case 11:
3883
4085
  _h.sent();
3884
- return [4 /*yield*/, badInputTests()];
4086
+ return [4 /*yield*/, public_form_tests()];
3885
4087
  case 12:
3886
4088
  _h.sent();
3887
- return [4 /*yield*/, filterTests()];
4089
+ return [4 /*yield*/, search_tests()];
3888
4090
  case 13:
3889
4091
  _h.sent();
3890
- return [4 /*yield*/, updatesTests()];
4092
+ return [4 /*yield*/, badInputTests()];
3891
4093
  case 14:
3892
4094
  _h.sent();
3893
- return [4 /*yield*/, threadKeyTests()];
4095
+ return [4 /*yield*/, filterTests()];
3894
4096
  case 15:
3895
4097
  _h.sent();
3896
- return [4 /*yield*/, enduserAccessTests()];
4098
+ return [4 /*yield*/, updatesTests()];
3897
4099
  case 16:
3898
4100
  _h.sent();
3899
- return [4 /*yield*/, enduser_session_tests()];
4101
+ return [4 /*yield*/, threadKeyTests()];
3900
4102
  case 17:
3901
4103
  _h.sent();
3902
- return [4 /*yield*/, enduser_redaction_tests()];
4104
+ return [4 /*yield*/, enduserAccessTests()];
3903
4105
  case 18:
3904
4106
  _h.sent();
3905
- return [3 /*break*/, 20];
4107
+ return [4 /*yield*/, enduser_session_tests()];
3906
4108
  case 19:
4109
+ _h.sent();
4110
+ return [4 /*yield*/, enduser_redaction_tests()];
4111
+ case 20:
4112
+ _h.sent();
4113
+ return [3 /*break*/, 22];
4114
+ case 21:
3907
4115
  err_1 = _h.sent();
3908
4116
  console.error("Failed during custom test");
3909
4117
  if (err_1.message && err_1.info) {
@@ -3913,15 +4121,15 @@ var tests = {
3913
4121
  console.error(err_1);
3914
4122
  }
3915
4123
  process.exit(1);
3916
- return [3 /*break*/, 20];
3917
- case 20:
4124
+ return [3 /*break*/, 22];
4125
+ case 22:
3918
4126
  _a = [];
3919
4127
  for (_b in schema)
3920
4128
  _a.push(_b);
3921
4129
  _i = 0;
3922
- _h.label = 21;
3923
- case 21:
3924
- if (!(_i < _a.length)) return [3 /*break*/, 24];
4130
+ _h.label = 23;
4131
+ case 23:
4132
+ if (!(_i < _a.length)) return [3 /*break*/, 26];
3925
4133
  n = _a[_i];
3926
4134
  returnValidation = (_g = (_f = schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
3927
4135
  return [4 /*yield*/, run_generated_tests({
@@ -3932,38 +4140,38 @@ var tests = {
3932
4140
  create: returnValidation // ModelFields<ClientModel>,
3933
4141
  }
3934
4142
  })];
3935
- case 22:
4143
+ case 24:
3936
4144
  _h.sent();
3937
- _h.label = 23;
3938
- case 23:
4145
+ _h.label = 25;
4146
+ case 25:
3939
4147
  _i++;
3940
- return [3 /*break*/, 21];
3941
- case 24:
4148
+ return [3 /*break*/, 23];
4149
+ case 26:
3942
4150
  _c = [];
3943
4151
  for (_d in tests)
3944
4152
  _c.push(_d);
3945
4153
  _e = 0;
3946
- _h.label = 25;
3947
- case 25:
3948
- if (!(_e < _c.length)) return [3 /*break*/, 30];
4154
+ _h.label = 27;
4155
+ case 27:
4156
+ if (!(_e < _c.length)) return [3 /*break*/, 32];
3949
4157
  t = _c[_e];
3950
- _h.label = 26;
3951
- case 26:
3952
- _h.trys.push([26, 28, , 29]);
4158
+ _h.label = 28;
4159
+ case 28:
4160
+ _h.trys.push([28, 30, , 31]);
3953
4161
  return [4 /*yield*/, tests[t]()];
3954
- case 27:
4162
+ case 29:
3955
4163
  _h.sent();
3956
- return [3 /*break*/, 29];
3957
- case 28:
4164
+ return [3 /*break*/, 31];
4165
+ case 30:
3958
4166
  err_2 = _h.sent();
3959
4167
  console.error("Error running test:");
3960
4168
  console.error(err_2);
3961
4169
  process.exit(1);
3962
- return [3 /*break*/, 29];
3963
- case 29:
4170
+ return [3 /*break*/, 31];
4171
+ case 31:
3964
4172
  _e++;
3965
- return [3 /*break*/, 25];
3966
- case 30:
4173
+ return [3 /*break*/, 27];
4174
+ case 32:
3967
4175
  process.exit();
3968
4176
  return [2 /*return*/];
3969
4177
  }