@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
@@ -97,6 +97,9 @@ var host = process.env.TEST_URL || 'http://localhost:8080';
97
97
  var _a = [process.env.TEST_EMAIL, process.env.TEST_PASSWORD], email = _a[0], password = _a[1];
98
98
  var _b = [process.env.TEST_EMAIL_2, process.env.TEST_PASSWORD_2], email2 = _b[0], password2 = _b[1];
99
99
  var _c = [process.env.NON_ADMIN_EMAIL, process.env.NON_ADMIN_PASSWORD], nonAdminEmail = _c[0], nonAdminPassword = _c[1];
100
+ var subUserEmail = process.env.SUB_EMAIL;
101
+ var otherSubUserEmail = process.env.OTHER_SUB_EMAIL;
102
+ var subSubUserEmail = process.env.SUB_SUB_EMAIL;
100
103
  var userId = '60398b0231a295e64f084fd9';
101
104
  var businessId = '60398b1131a295e64f084ff6';
102
105
  // const example_SDK_usage = async () => {
@@ -114,12 +117,16 @@ var businessId = '60398b1131a295e64f084ff6';
114
117
  // await sdk.api.endusers.deleteOne(enduser.id)
115
118
  // }
116
119
  var sdk = new sdk_1.Session({ host: host });
120
+ var sdkSub = new sdk_1.Session({ host: host });
121
+ var sdkOtherSub = new sdk_1.Session({ host: host });
122
+ var sdkSubSub = new sdk_1.Session({ host: host });
117
123
  var sdkOther = new sdk_1.Session({ host: host, apiKey: "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7" });
118
124
  var sdkNonAdmin = new sdk_1.Session({ host: host });
119
125
  var enduserSDK = new sdk_1.EnduserSession({ host: host, businessId: businessId });
126
+ var subEnduserSDK = new sdk_1.EnduserSession({ host: host, businessId: businessId, "organizationIds": ["636d3c230067fc6b4c92c59c"] });
120
127
  var enduserSDKDifferentBusinessId = new sdk_1.EnduserSession({ host: host, businessId: '80398b1131a295e64f084ff6' });
121
128
  // const sdkOtherEmail = "sebass@tellescope.com"
122
- if (!(email && password && email2 && password2 && nonAdminEmail && nonAdminPassword)) {
129
+ if (!(email && subUserEmail && otherSubUserEmail && subSubUserEmail && password && email2 && password2 && nonAdminEmail && nonAdminPassword)) {
123
130
  console.error("Set TEST_EMAIL and TEST_PASSWORD");
124
131
  process.exit();
125
132
  }
@@ -161,8 +168,14 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
161
168
  _a.sent();
162
169
  (0, testing_1.assert)(uInfo.id === sdk.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
163
170
  (0, testing_1.assert)(!!originalAuthToken && !!sdk.authToken && sdk.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
164
- return [4 /*yield*/, (0, testing_1.async_test)('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
171
+ // reset nonAdmin role to a default non-admin
172
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true })];
165
173
  case 9:
174
+ // reset nonAdmin role to a default non-admin
175
+ _a.sent();
176
+ return [4 /*yield*/, (0, testing_1.async_test)('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
177
+ case 10:
178
+ // reset nonAdmin role to a default non-admin
166
179
  _a.sent();
167
180
  return [2 /*return*/];
168
181
  }
@@ -231,6 +244,167 @@ var multi_tenant_tests = function () { return __awaiter(void 0, void 0, void 0,
231
244
  }
232
245
  });
233
246
  }); };
247
+ var sub_organization_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
248
+ var rootEnduser, subEnduser, subSubEnduser;
249
+ return __generator(this, function (_a) {
250
+ switch (_a.label) {
251
+ case 0:
252
+ (0, testing_1.log_header)("Sub Organizations");
253
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'root@tellescope.com' })];
254
+ case 1:
255
+ rootEnduser = _a.sent();
256
+ return [4 /*yield*/, sdkSub.api.endusers.createOne({ email: 'sub@tellescope.com' })];
257
+ case 2:
258
+ subEnduser = _a.sent();
259
+ return [4 /*yield*/, sdkSubSub.api.endusers.createOne({ email: 'subsub@tellescope.com' })];
260
+ case 3:
261
+ subSubEnduser = _a.sent();
262
+ return [4 /*yield*/, (0, testing_1.async_test)("root get root", function () { return sdk.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
263
+ case 4:
264
+ _a.sent();
265
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get root error", function () { return sdkSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
266
+ case 5:
267
+ _a.sent();
268
+ return [4 /*yield*/, (0, testing_1.async_test)("other sub get root error", function () { return sdkOtherSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
269
+ case 6:
270
+ _a.sent();
271
+ return [4 /*yield*/, (0, testing_1.async_test)("subsub get root error", function () { return sdkSubSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
272
+ case 7:
273
+ _a.sent();
274
+ return [4 /*yield*/, (0, testing_1.async_test)("root get sub", function () { return sdk.api.endusers.getOne(subEnduser.id); }, passOnAnyResult)];
275
+ case 8:
276
+ _a.sent();
277
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduser.id); }, passOnAnyResult)];
278
+ case 9:
279
+ _a.sent();
280
+ return [4 /*yield*/, (0, testing_1.async_test)("other sub get sub error", function () { return sdkOtherSub.api.endusers.getOne(subEnduser.id); }, handleAnyError)];
281
+ case 10:
282
+ _a.sent();
283
+ return [4 /*yield*/, (0, testing_1.async_test)("subsub get sub error", function () { return sdkSubSub.api.endusers.getOne(subEnduser.id); }, handleAnyError)];
284
+ case 11:
285
+ _a.sent();
286
+ return [4 /*yield*/, (0, testing_1.async_test)("root get subsub", function () { return sdk.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
287
+ case 12:
288
+ _a.sent();
289
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get subsub", function () { return sdkSub.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
290
+ case 13:
291
+ _a.sent();
292
+ return [4 /*yield*/, (0, testing_1.async_test)("other sub get sub sub error", function () { return sdkOtherSub.api.endusers.getOne(subSubEnduser.id); }, handleAnyError)];
293
+ case 14:
294
+ _a.sent();
295
+ return [4 /*yield*/, (0, testing_1.async_test)("subsub get subsub", function () { return sdkSubSub.api.endusers.getOne(subSubEnduser.id); }, passOnAnyResult)];
296
+ case 15:
297
+ _a.sent();
298
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: rootEnduser.id, password: password })];
299
+ case 16:
300
+ _a.sent();
301
+ return [4 /*yield*/, enduserSDK.authenticate(rootEnduser.email, password)];
302
+ case 17:
303
+ _a.sent();
304
+ return [4 /*yield*/, (0, testing_1.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); } })];
305
+ case 18:
306
+ _a.sent();
307
+ return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot update organizationIds", function () { return enduserSDK.api.endusers.updateOne(enduserSDK.userInfo.id, { organizationIds: [] }); }, handleAnyError)];
308
+ case 19:
309
+ _a.sent();
310
+ return [4 /*yield*/, (0, testing_1.async_test)("users cannot update organizationIds", function () { return sdk.api.users.updateOne(sdk.userInfo.id, { organizationIds: [] }); }, handleAnyError)];
311
+ case 20:
312
+ _a.sent();
313
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: subEnduser.id, password: password })];
314
+ case 21:
315
+ _a.sent();
316
+ return [4 /*yield*/, enduserSDK.authenticate(subEnduser.email, password)];
317
+ case 22:
318
+ _a.sent();
319
+ return [4 /*yield*/, (0, testing_1.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; } })];
320
+ case 23:
321
+ _a.sent();
322
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: subSubEnduser.id, password: password })];
323
+ case 24:
324
+ _a.sent();
325
+ return [4 /*yield*/, enduserSDK.authenticate(subSubEnduser.email, password)];
326
+ case 25:
327
+ _a.sent();
328
+ return [4 /*yield*/, (0, testing_1.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; } })];
329
+ case 26:
330
+ _a.sent();
331
+ return [4 /*yield*/, sdk.api.endusers.updateOne(rootEnduser.id, { organizationIds: subEnduser.organizationIds })];
332
+ case 27:
333
+ _a.sent();
334
+ return [4 /*yield*/, (0, testing_1.async_test)("root get sub adjusted", function () { return sdk.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
335
+ case 28:
336
+ _a.sent();
337
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get sub adjusted", function () { return sdkSub.api.endusers.getOne(rootEnduser.id); }, passOnAnyResult)];
338
+ case 29:
339
+ _a.sent();
340
+ return [4 /*yield*/, (0, testing_1.async_test)("other sub get sub adjusted error", function () { return sdkOtherSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
341
+ case 30:
342
+ _a.sent();
343
+ return [4 /*yield*/, (0, testing_1.async_test)("subsub get sub adjusted error", function () { return sdkSubSub.api.endusers.getOne(rootEnduser.id); }, handleAnyError)];
344
+ case 31:
345
+ _a.sent();
346
+ return [4 /*yield*/, (0, testing_1.async_test)("push behavior for organization ids (push by default)", function () { return sdk.api.endusers.updateOne(rootEnduser.id, { organizationIds: subEnduser.organizationIds }); },
347
+ // { onResult: e => e.organizationIds?.length === 2 * (subEnduser.organizationIds?.length ?? 0) },
348
+ handleAnyError // this is not going to pass, because pushing must result in organizationIds that match an existing organization
349
+ )];
350
+ case 32:
351
+ _a.sent();
352
+ return [4 /*yield*/, (0, testing_1.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); } })];
353
+ case 33:
354
+ _a.sent();
355
+ return [4 /*yield*/, Promise.all([
356
+ sdk.api.endusers.deleteOne(rootEnduser.id),
357
+ sdk.api.endusers.deleteOne(subEnduser.id),
358
+ sdk.api.endusers.deleteOne(subSubEnduser.id),
359
+ ])];
360
+ case 34:
361
+ _a.sent();
362
+ return [2 /*return*/];
363
+ }
364
+ });
365
+ }); };
366
+ var sub_organization_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
367
+ var _a, _b;
368
+ return __generator(this, function (_c) {
369
+ switch (_c.label) {
370
+ case 0:
371
+ (0, testing_1.log_header)("Sub Organizations (Enduser-Facing Tests)");
372
+ return [4 /*yield*/, enduserSDK.register({ email: 'root@tellescope.com', password: password })];
373
+ case 1:
374
+ _c.sent();
375
+ return [4 /*yield*/, subEnduserSDK.register({ email: 'sub@tellescope.com', password: password })];
376
+ case 2:
377
+ _c.sent();
378
+ return [4 /*yield*/, enduserSDK.authenticate('root@tellescope.com', password)];
379
+ case 3:
380
+ _c.sent();
381
+ return [4 /*yield*/, subEnduserSDK.authenticate('sub@tellescope.com', password)];
382
+ case 4:
383
+ _c.sent();
384
+ (0, testing_1.assert)(!((_a = enduserSDK.userInfo.organizationIds) === null || _a === void 0 ? void 0 : _a.length), 'bad root organizationIds', 'root auth org ids');
385
+ (0, testing_1.assert)(((_b = subEnduserSDK.userInfo.organizationIds) === null || _b === void 0 ? void 0 : _b.length) === 1, 'bad sub organizationIds', 'sub auth org ids');
386
+ return [4 /*yield*/, (0, testing_1.async_test)("root get root", function () { return sdk.api.endusers.getOne(enduserSDK.userInfo.id); }, passOnAnyResult)];
387
+ case 5:
388
+ _c.sent();
389
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get root error", function () { return sdkSub.api.endusers.getOne(enduserSDK.userInfo.id); }, handleAnyError)];
390
+ case 6:
391
+ _c.sent();
392
+ return [4 /*yield*/, (0, testing_1.async_test)("root get sub", function () { return sdk.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
393
+ case 7:
394
+ _c.sent();
395
+ return [4 /*yield*/, (0, testing_1.async_test)("sub get sub", function () { return sdkSub.api.endusers.getOne(subEnduserSDK.userInfo.id); }, passOnAnyResult)];
396
+ case 8:
397
+ _c.sent();
398
+ return [4 /*yield*/, Promise.all([
399
+ sdk.api.endusers.deleteOne(enduserSDK.userInfo.id),
400
+ sdk.api.endusers.deleteOne(subEnduserSDK.userInfo.id),
401
+ ])];
402
+ case 9:
403
+ _c.sent();
404
+ return [2 /*return*/];
405
+ }
406
+ });
407
+ }); };
234
408
  var threadKeyTests = function () { return __awaiter(void 0, void 0, void 0, function () {
235
409
  var enduser, _a, e1, e2, e3, _b, e4, e5, e6, es;
236
410
  return __generator(this, function (_c) {
@@ -410,7 +584,7 @@ var generate_user_auth_tests = function () { return __awaiter(void 0, void 0, vo
410
584
  _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
411
585
  if (!enduser)
412
586
  throw new Error("Didn't get enduser when generate_auth_token called");
413
- (0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
587
+ (0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authTokea and get enduser');
414
588
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
415
589
  case 4:
416
590
  isAuthenticated = (_e.sent()).isAuthenticated;
@@ -3808,21 +3982,46 @@ var role_based_access_permissions_tests = function () { return __awaiter(void 0,
3808
3982
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // to use new role, handle logout on role change
3809
3983
  case 3:
3810
3984
  _a.sent(); // to use new role, handle logout on role change
3985
+ return [4 /*yield*/, (0, testing_1.async_test)('non-root admin can read', function () { return sdkSub.api.role_based_access_permissions.getOne(rbap.id); }, passOnAnyResult)];
3986
+ case 4:
3987
+ _a.sent();
3988
+ return [4 /*yield*/, (0, testing_1.async_test)('non-root admin can read many', function () { return sdkSub.api.role_based_access_permissions.getSome(); }, { onResult: function (rs) { return rs.length > 0; } })];
3989
+ case 5:
3990
+ _a.sent();
3991
+ return [4 /*yield*/, (0, testing_1.async_test)('non-root admin blocked create', function () { return sdkSub.api.role_based_access_permissions.createOne({
3992
+ role: noEnduserAccessRole,
3993
+ permissions: {
3994
+ endusers: {
3995
+ create: null,
3996
+ read: null,
3997
+ delete: null,
3998
+ update: null,
3999
+ }
4000
+ }
4001
+ }); }, handleAnyError)];
4002
+ case 6:
4003
+ _a.sent();
4004
+ return [4 /*yield*/, (0, testing_1.async_test)('non-root admin blocked update', function () { return sdkSub.api.role_based_access_permissions.updateOne(rbap.id, { role: 'updated' }); }, handleAnyError)];
4005
+ case 7:
4006
+ _a.sent();
4007
+ return [4 /*yield*/, (0, testing_1.async_test)('non-root admin blocked delete', function () { return sdkSub.api.role_based_access_permissions.deleteOne(rbap.id); }, handleAnyError)];
4008
+ case 8:
4009
+ _a.sent();
3811
4010
  return [4 /*yield*/, (0, testing_1.async_test)('enduser read access restriction working', function () { return sdkNonAdmin.api.endusers.getSome(); }, handleAnyError)
3812
4011
  // cleanup
3813
4012
  ];
3814
- case 4:
4013
+ case 9:
3815
4014
  _a.sent();
3816
4015
  // cleanup
3817
4016
  return [4 /*yield*/, Promise.all([
3818
4017
  sdk.api.role_based_access_permissions.deleteOne(rbap.id),
3819
4018
  sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true }),
3820
4019
  ])];
3821
- case 5:
4020
+ case 10:
3822
4021
  // cleanup
3823
4022
  _a.sent();
3824
4023
  return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)]; // to use new role, handle logout on role change
3825
- case 6:
4024
+ case 11:
3826
4025
  _a.sent(); // to use new role, handle logout on role change
3827
4026
  return [2 /*return*/];
3828
4027
  }
@@ -3884,9 +4083,12 @@ var tests = {
3884
4083
  (0, testing_1.log_header)("API");
3885
4084
  _h.label = 1;
3886
4085
  case 1:
3887
- _h.trys.push([1, 19, , 20]);
4086
+ _h.trys.push([1, 21, , 22]);
3888
4087
  return [4 /*yield*/, Promise.all([
3889
4088
  sdk.authenticate(email, password),
4089
+ sdkSub.authenticate(subUserEmail, password),
4090
+ sdkOtherSub.authenticate(otherSubUserEmail, password),
4091
+ sdkSubSub.authenticate(subSubUserEmail, password),
3890
4092
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
3891
4093
  ])];
3892
4094
  case 2:
@@ -3897,50 +4099,56 @@ var tests = {
3897
4099
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
3898
4100
  case 4:
3899
4101
  _h.sent(); // should come right after setup tests
3900
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
4102
+ return [4 /*yield*/, sub_organization_enduser_tests()];
3901
4103
  case 5:
3902
4104
  _h.sent();
3903
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
4105
+ return [4 /*yield*/, sub_organization_tests()];
3904
4106
  case 6:
3905
4107
  _h.sent();
3906
- return [4 /*yield*/, generate_user_auth_tests()];
4108
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
3907
4109
  case 7:
3908
4110
  _h.sent();
3909
- return [4 /*yield*/, role_based_access_tests()];
4111
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
3910
4112
  case 8:
3911
4113
  _h.sent();
3912
- return [4 /*yield*/, generateEnduserAuthTests()];
4114
+ return [4 /*yield*/, generate_user_auth_tests()];
3913
4115
  case 9:
3914
4116
  _h.sent();
3915
- return [4 /*yield*/, public_form_tests()];
4117
+ return [4 /*yield*/, role_based_access_tests()];
3916
4118
  case 10:
3917
4119
  _h.sent();
3918
- return [4 /*yield*/, search_tests()];
4120
+ return [4 /*yield*/, generateEnduserAuthTests()];
3919
4121
  case 11:
3920
4122
  _h.sent();
3921
- return [4 /*yield*/, badInputTests()];
4123
+ return [4 /*yield*/, public_form_tests()];
3922
4124
  case 12:
3923
4125
  _h.sent();
3924
- return [4 /*yield*/, filterTests()];
4126
+ return [4 /*yield*/, search_tests()];
3925
4127
  case 13:
3926
4128
  _h.sent();
3927
- return [4 /*yield*/, updatesTests()];
4129
+ return [4 /*yield*/, badInputTests()];
3928
4130
  case 14:
3929
4131
  _h.sent();
3930
- return [4 /*yield*/, threadKeyTests()];
4132
+ return [4 /*yield*/, filterTests()];
3931
4133
  case 15:
3932
4134
  _h.sent();
3933
- return [4 /*yield*/, enduserAccessTests()];
4135
+ return [4 /*yield*/, updatesTests()];
3934
4136
  case 16:
3935
4137
  _h.sent();
3936
- return [4 /*yield*/, enduser_session_tests()];
4138
+ return [4 /*yield*/, threadKeyTests()];
3937
4139
  case 17:
3938
4140
  _h.sent();
3939
- return [4 /*yield*/, enduser_redaction_tests()];
4141
+ return [4 /*yield*/, enduserAccessTests()];
3940
4142
  case 18:
3941
4143
  _h.sent();
3942
- return [3 /*break*/, 20];
4144
+ return [4 /*yield*/, enduser_session_tests()];
3943
4145
  case 19:
4146
+ _h.sent();
4147
+ return [4 /*yield*/, enduser_redaction_tests()];
4148
+ case 20:
4149
+ _h.sent();
4150
+ return [3 /*break*/, 22];
4151
+ case 21:
3944
4152
  err_1 = _h.sent();
3945
4153
  console.error("Failed during custom test");
3946
4154
  if (err_1.message && err_1.info) {
@@ -3950,15 +4158,15 @@ var tests = {
3950
4158
  console.error(err_1);
3951
4159
  }
3952
4160
  process.exit(1);
3953
- return [3 /*break*/, 20];
3954
- case 20:
4161
+ return [3 /*break*/, 22];
4162
+ case 22:
3955
4163
  _a = [];
3956
4164
  for (_b in schema_1.schema)
3957
4165
  _a.push(_b);
3958
4166
  _i = 0;
3959
- _h.label = 21;
3960
- case 21:
3961
- if (!(_i < _a.length)) return [3 /*break*/, 24];
4167
+ _h.label = 23;
4168
+ case 23:
4169
+ if (!(_i < _a.length)) return [3 /*break*/, 26];
3962
4170
  n = _a[_i];
3963
4171
  returnValidation = (_g = (_f = schema_1.schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
3964
4172
  return [4 /*yield*/, run_generated_tests({
@@ -3969,38 +4177,38 @@ var tests = {
3969
4177
  create: returnValidation // ModelFields<ClientModel>,
3970
4178
  }
3971
4179
  })];
3972
- case 22:
4180
+ case 24:
3973
4181
  _h.sent();
3974
- _h.label = 23;
3975
- case 23:
4182
+ _h.label = 25;
4183
+ case 25:
3976
4184
  _i++;
3977
- return [3 /*break*/, 21];
3978
- case 24:
4185
+ return [3 /*break*/, 23];
4186
+ case 26:
3979
4187
  _c = [];
3980
4188
  for (_d in tests)
3981
4189
  _c.push(_d);
3982
4190
  _e = 0;
3983
- _h.label = 25;
3984
- case 25:
3985
- if (!(_e < _c.length)) return [3 /*break*/, 30];
4191
+ _h.label = 27;
4192
+ case 27:
4193
+ if (!(_e < _c.length)) return [3 /*break*/, 32];
3986
4194
  t = _c[_e];
3987
- _h.label = 26;
3988
- case 26:
3989
- _h.trys.push([26, 28, , 29]);
4195
+ _h.label = 28;
4196
+ case 28:
4197
+ _h.trys.push([28, 30, , 31]);
3990
4198
  return [4 /*yield*/, tests[t]()];
3991
- case 27:
4199
+ case 29:
3992
4200
  _h.sent();
3993
- return [3 /*break*/, 29];
3994
- case 28:
4201
+ return [3 /*break*/, 31];
4202
+ case 30:
3995
4203
  err_2 = _h.sent();
3996
4204
  console.error("Error running test:");
3997
4205
  console.error(err_2);
3998
4206
  process.exit(1);
3999
- return [3 /*break*/, 29];
4000
- case 29:
4207
+ return [3 /*break*/, 31];
4208
+ case 31:
4001
4209
  _e++;
4002
- return [3 /*break*/, 25];
4003
- case 30:
4210
+ return [3 /*break*/, 27];
4211
+ case 32:
4004
4212
  process.exit();
4005
4213
  return [2 /*return*/];
4006
4214
  }