@tellescope/sdk 1.66.3 → 1.66.5

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.
@@ -185,19 +185,53 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
185
185
  _a.sent();
186
186
  (0, testing_1.assert)(uInfo.id === sdk.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
187
187
  (0, testing_1.assert)(!!originalAuthToken && !!sdk.authToken && sdk.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
188
+ // ensure that going to "Non-Admin" triggers a role change
189
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Test'] }, { replaceObjectFields: true })];
190
+ case 9:
191
+ // ensure that going to "Non-Admin" triggers a role change
192
+ _a.sent();
193
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
194
+ case 10:
195
+ // ensure that going to "Non-Admin" triggers a role change
196
+ _a.sent();
197
+ return [4 /*yield*/, (0, testing_1.async_test)('non admin authenticated', sdkNonAdmin.test_authenticated, { expectedResult: 'Authenticated!' })
198
+ // reset nonAdmin role to a default non-admin
199
+ ];
200
+ case 11:
201
+ _a.sent();
188
202
  // reset nonAdmin role to a default non-admin
189
203
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true })];
190
- case 9:
204
+ case 12:
191
205
  // reset nonAdmin role to a default non-admin
206
+ _a.sent();
207
+ // should be unauthenticated due to role change
208
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 100)];
209
+ case 13:
210
+ // reset nonAdmin role to a default non-admin
211
+ // should be unauthenticated due to role change
212
+ _a.sent();
213
+ return [4 /*yield*/, (0, testing_1.async_test)('role change causes deauthentication', sdkNonAdmin.test_authenticated, handleAnyError)
214
+ // reauthenticate
215
+ ];
216
+ case 14:
217
+ _a.sent();
218
+ // reauthenticate
219
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 1000)];
220
+ case 15:
221
+ // reauthenticate
222
+ _a.sent();
223
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)
224
+ // may do some stuff in background after returning
225
+ ];
226
+ case 16:
192
227
  _a.sent();
193
228
  // may do some stuff in background after returning
194
229
  return [4 /*yield*/, (0, testing_1.async_test)('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
195
- case 10:
196
- // reset nonAdmin role to a default non-admin
230
+ case 17:
197
231
  // may do some stuff in background after returning
198
232
  _a.sent();
199
233
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
200
- case 11:
234
+ case 18:
201
235
  _a.sent();
202
236
  return [2 /*return*/];
203
237
  }
@@ -4149,7 +4183,9 @@ var role_based_access_tests = function () { return __awaiter(void 0, void 0, voi
4149
4183
  return [4 /*yield*/, (0, testing_1.async_test)("non-admin for chat message bad", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, handleAnyError)];
4150
4184
  case 27:
4151
4185
  _a.sent();
4152
- return [4 /*yield*/, (0, testing_1.async_test)("[bulk] non-admin for chat message bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }); }, handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
4186
+ return [4 /*yield*/, (0, testing_1.async_test)("[bulk] non-admin for chat message bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }); },
4187
+ // { onResult: result => result.results.flatMap(r => r?.records || []).length === 0 }
4188
+ handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
4153
4189
  )];
4154
4190
  case 28:
4155
4191
  _a.sent();
@@ -6076,6 +6112,29 @@ var tests = {
6076
6112
  ticket_thread_comments: NO_TEST,
6077
6113
  };
6078
6114
  var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=", 'base64');
6115
+ var validate_schema = function () {
6116
+ var _a;
6117
+ var endpoints = new Set([]);
6118
+ var modelName = undefined;
6119
+ for (modelName in schema_1.schema) {
6120
+ for (var endpointName in schema_1.schema[modelName].customActions) {
6121
+ var path = schema_1.schema[modelName].customActions[endpointName].path || '';
6122
+ if (path === '' && endpointName === 'create')
6123
+ continue; // uses default
6124
+ if (endpoints.has(path)) {
6125
+ throw new Error("Duplicate path: ".concat(path, ", ").concat(endpointName));
6126
+ }
6127
+ endpoints.add(path);
6128
+ }
6129
+ for (var endpointName in (_a = schema_1.schema[modelName].publicActions) !== null && _a !== void 0 ? _a : {}) {
6130
+ var path = schema_1.schema[modelName].publicActions[endpointName].path || '';
6131
+ if (endpoints.has(path)) {
6132
+ throw new Error("Duplicate path: ".concat(path, ", ").concat(endpointName));
6133
+ }
6134
+ endpoints.add(path);
6135
+ }
6136
+ }
6137
+ };
6079
6138
  (function () { return __awaiter(void 0, void 0, void 0, function () {
6080
6139
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
6081
6140
  var _h, _j;
@@ -6088,7 +6147,10 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6088
6147
  _k.sent();
6089
6148
  _k.label = 2;
6090
6149
  case 2:
6091
- _k.trys.push([2, 33, , 34]);
6150
+ _k.trys.push([2, 34, , 35]);
6151
+ return [4 /*yield*/, validate_schema()];
6152
+ case 3:
6153
+ _k.sent();
6092
6154
  return [4 /*yield*/, Promise.all([
6093
6155
  sdk.authenticate(email, password),
6094
6156
  sdkSub.authenticate(subUserEmail, password),
@@ -6098,101 +6160,101 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6098
6160
  ])
6099
6161
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6100
6162
  ];
6101
- case 3:
6163
+ case 4:
6102
6164
  _k.sent();
6103
6165
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6104
6166
  return [4 /*yield*/, (0, testing_1.async_test)("count exists",
6105
6167
  // @ts-ignore
6106
6168
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
6107
- case 4:
6169
+ case 5:
6108
6170
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6109
6171
  _k.sent();
6110
6172
  return [4 /*yield*/, (0, testing_1.async_test)("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: constants_1.PLACEHOLDER_ID }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === 'Could not find a record for the given id'; } })];
6111
- case 5:
6112
- _k.sent();
6113
- return [4 /*yield*/, mfa_tests()];
6114
6173
  case 6:
6115
6174
  _k.sent();
6116
- return [4 /*yield*/, setup_tests()];
6175
+ return [4 /*yield*/, mfa_tests()];
6117
6176
  case 7:
6118
6177
  _k.sent();
6119
- return [4 /*yield*/, automation_trigger_tests()];
6178
+ return [4 /*yield*/, setup_tests()];
6120
6179
  case 8:
6121
6180
  _k.sent();
6122
- return [4 /*yield*/, enduser_session_tests()];
6181
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
6123
6182
  case 9:
6124
- _k.sent();
6125
- return [4 /*yield*/, nextReminderInMS_tests()];
6183
+ _k.sent(); // should come right after setup tests
6184
+ return [4 /*yield*/, automation_trigger_tests()];
6126
6185
  case 10:
6127
6186
  _k.sent();
6128
- return [4 /*yield*/, search_tests()];
6187
+ return [4 /*yield*/, enduser_session_tests()];
6129
6188
  case 11:
6130
6189
  _k.sent();
6131
- return [4 /*yield*/, wait_for_trigger_tests()];
6190
+ return [4 /*yield*/, nextReminderInMS_tests()];
6132
6191
  case 12:
6133
6192
  _k.sent();
6134
- return [4 /*yield*/, role_based_access_tests()];
6193
+ return [4 /*yield*/, search_tests()];
6135
6194
  case 13:
6136
6195
  _k.sent();
6137
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
6196
+ return [4 /*yield*/, wait_for_trigger_tests()];
6138
6197
  case 14:
6139
- _k.sent(); // should come right after setup tests
6140
- return [4 /*yield*/, pdf_generation()];
6198
+ _k.sent();
6199
+ return [4 /*yield*/, role_based_access_tests()];
6141
6200
  case 15:
6142
6201
  _k.sent();
6143
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6202
+ return [4 /*yield*/, pdf_generation()];
6144
6203
  case 16:
6145
6204
  _k.sent();
6146
- return [4 /*yield*/, rate_limit_tests()];
6205
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6147
6206
  case 17:
6148
6207
  _k.sent();
6149
- return [4 /*yield*/, merge_enduser_tests()];
6208
+ return [4 /*yield*/, rate_limit_tests()];
6150
6209
  case 18:
6151
6210
  _k.sent();
6152
- return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
6211
+ return [4 /*yield*/, merge_enduser_tests()];
6153
6212
  case 19:
6154
6213
  _k.sent();
6155
- return [4 /*yield*/, auto_reply_tests()];
6214
+ return [4 /*yield*/, (0, exports.self_serve_appointment_booking_tests)()];
6156
6215
  case 20:
6157
6216
  _k.sent();
6158
- return [4 /*yield*/, sub_organization_enduser_tests()];
6217
+ return [4 /*yield*/, auto_reply_tests()];
6159
6218
  case 21:
6160
6219
  _k.sent();
6161
- return [4 /*yield*/, sub_organization_tests()];
6220
+ return [4 /*yield*/, sub_organization_enduser_tests()];
6162
6221
  case 22:
6163
6222
  _k.sent();
6164
- return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
6223
+ return [4 /*yield*/, sub_organization_tests()];
6165
6224
  case 23:
6166
6225
  _k.sent();
6167
- return [4 /*yield*/, generate_user_auth_tests()];
6226
+ return [4 /*yield*/, (0, exports.filter_by_date_tests)()];
6168
6227
  case 24:
6169
6228
  _k.sent();
6170
- return [4 /*yield*/, generateEnduserAuthTests()];
6229
+ return [4 /*yield*/, generate_user_auth_tests()];
6171
6230
  case 25:
6172
6231
  _k.sent();
6173
- return [4 /*yield*/, public_form_tests()];
6232
+ return [4 /*yield*/, generateEnduserAuthTests()];
6174
6233
  case 26:
6175
6234
  _k.sent();
6176
- return [4 /*yield*/, badInputTests()];
6235
+ return [4 /*yield*/, public_form_tests()];
6177
6236
  case 27:
6178
6237
  _k.sent();
6179
- return [4 /*yield*/, filterTests()];
6238
+ return [4 /*yield*/, badInputTests()];
6180
6239
  case 28:
6181
6240
  _k.sent();
6182
- return [4 /*yield*/, updatesTests()];
6241
+ return [4 /*yield*/, filterTests()];
6183
6242
  case 29:
6184
6243
  _k.sent();
6185
- return [4 /*yield*/, threadKeyTests()];
6244
+ return [4 /*yield*/, updatesTests()];
6186
6245
  case 30:
6187
6246
  _k.sent();
6188
- return [4 /*yield*/, enduserAccessTests()];
6247
+ return [4 /*yield*/, threadKeyTests()];
6189
6248
  case 31:
6190
6249
  _k.sent();
6191
- return [4 /*yield*/, enduser_redaction_tests()];
6250
+ return [4 /*yield*/, enduserAccessTests()];
6192
6251
  case 32:
6193
6252
  _k.sent();
6194
- return [3 /*break*/, 34];
6253
+ return [4 /*yield*/, enduser_redaction_tests()];
6195
6254
  case 33:
6255
+ _k.sent();
6256
+ return [3 /*break*/, 35];
6257
+ case 34:
6196
6258
  err_1 = _k.sent();
6197
6259
  console.error("Failed during custom test");
6198
6260
  if (err_1.message && err_1.info) {
@@ -6202,18 +6264,18 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6202
6264
  console.error(err_1);
6203
6265
  }
6204
6266
  process.exit(1);
6205
- return [3 /*break*/, 34];
6206
- case 34:
6267
+ return [3 /*break*/, 35];
6268
+ case 35:
6207
6269
  _a = schema_1.schema;
6208
6270
  _b = [];
6209
6271
  for (_c in _a)
6210
6272
  _b.push(_c);
6211
6273
  _i = 0;
6212
- _k.label = 35;
6213
- case 35:
6214
- if (!(_i < _b.length)) return [3 /*break*/, 38];
6274
+ _k.label = 36;
6275
+ case 36:
6276
+ if (!(_i < _b.length)) return [3 /*break*/, 39];
6215
6277
  _c = _b[_i];
6216
- if (!(_c in _a)) return [3 /*break*/, 37];
6278
+ if (!(_c in _a)) return [3 /*break*/, 38];
6217
6279
  n = _c;
6218
6280
  returnValidation = (_j = (_h = schema_1.schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
6219
6281
  return [4 /*yield*/, run_generated_tests({
@@ -6224,41 +6286,41 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6224
6286
  create: returnValidation // ModelFields<ClientModel>,
6225
6287
  }
6226
6288
  })];
6227
- case 36:
6228
- _k.sent();
6229
- _k.label = 37;
6230
6289
  case 37:
6231
- _i++;
6232
- return [3 /*break*/, 35];
6290
+ _k.sent();
6291
+ _k.label = 38;
6233
6292
  case 38:
6293
+ _i++;
6294
+ return [3 /*break*/, 36];
6295
+ case 39:
6234
6296
  _d = tests;
6235
6297
  _e = [];
6236
6298
  for (_f in _d)
6237
6299
  _e.push(_f);
6238
6300
  _g = 0;
6239
- _k.label = 39;
6240
- case 39:
6241
- if (!(_g < _e.length)) return [3 /*break*/, 44];
6242
- _f = _e[_g];
6243
- if (!(_f in _d)) return [3 /*break*/, 43];
6244
- t = _f;
6245
6301
  _k.label = 40;
6246
6302
  case 40:
6247
- _k.trys.push([40, 42, , 43]);
6248
- return [4 /*yield*/, tests[t]()];
6303
+ if (!(_g < _e.length)) return [3 /*break*/, 45];
6304
+ _f = _e[_g];
6305
+ if (!(_f in _d)) return [3 /*break*/, 44];
6306
+ t = _f;
6307
+ _k.label = 41;
6249
6308
  case 41:
6250
- _k.sent();
6251
- return [3 /*break*/, 43];
6309
+ _k.trys.push([41, 43, , 44]);
6310
+ return [4 /*yield*/, tests[t]()];
6252
6311
  case 42:
6312
+ _k.sent();
6313
+ return [3 /*break*/, 44];
6314
+ case 43:
6253
6315
  err_2 = _k.sent();
6254
6316
  console.error("Error running test:");
6255
6317
  console.error(err_2);
6256
6318
  process.exit(1);
6257
- return [3 /*break*/, 43];
6258
- case 43:
6259
- _g++;
6260
- return [3 /*break*/, 39];
6319
+ return [3 /*break*/, 44];
6261
6320
  case 44:
6321
+ _g++;
6322
+ return [3 /*break*/, 40];
6323
+ case 45:
6262
6324
  process.exit();
6263
6325
  return [2 /*return*/];
6264
6326
  }