@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.
@@ -156,19 +156,53 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
156
156
  _a.sent();
157
157
  assert(uInfo.id === sdk.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
158
158
  assert(!!originalAuthToken && !!sdk.authToken && sdk.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
159
+ // ensure that going to "Non-Admin" triggers a role change
160
+ return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Test'] }, { replaceObjectFields: true })];
161
+ case 9:
162
+ // ensure that going to "Non-Admin" triggers a role change
163
+ _a.sent();
164
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)];
165
+ case 10:
166
+ // ensure that going to "Non-Admin" triggers a role change
167
+ _a.sent();
168
+ return [4 /*yield*/, async_test('non admin authenticated', sdkNonAdmin.test_authenticated, { expectedResult: 'Authenticated!' })
169
+ // reset nonAdmin role to a default non-admin
170
+ ];
171
+ case 11:
172
+ _a.sent();
159
173
  // reset nonAdmin role to a default non-admin
160
174
  return [4 /*yield*/, sdk.api.users.updateOne(sdkNonAdmin.userInfo.id, { roles: ['Non-Admin'] }, { replaceObjectFields: true })];
161
- case 9:
175
+ case 12:
162
176
  // reset nonAdmin role to a default non-admin
177
+ _a.sent();
178
+ // should be unauthenticated due to role change
179
+ return [4 /*yield*/, wait(undefined, 100)];
180
+ case 13:
181
+ // reset nonAdmin role to a default non-admin
182
+ // should be unauthenticated due to role change
183
+ _a.sent();
184
+ return [4 /*yield*/, async_test('role change causes deauthentication', sdkNonAdmin.test_authenticated, handleAnyError)
185
+ // reauthenticate
186
+ ];
187
+ case 14:
188
+ _a.sent();
189
+ // reauthenticate
190
+ return [4 /*yield*/, wait(undefined, 1000)];
191
+ case 15:
192
+ // reauthenticate
193
+ _a.sent();
194
+ return [4 /*yield*/, sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword)
195
+ // may do some stuff in background after returning
196
+ ];
197
+ case 16:
163
198
  _a.sent();
164
199
  // may do some stuff in background after returning
165
200
  return [4 /*yield*/, async_test('reset_db', function () { return sdk.reset_db(); }, passOnVoid)];
166
- case 10:
167
- // reset nonAdmin role to a default non-admin
201
+ case 17:
168
202
  // may do some stuff in background after returning
169
203
  _a.sent();
170
204
  return [4 /*yield*/, wait(undefined, 250)];
171
- case 11:
205
+ case 18:
172
206
  _a.sent();
173
207
  return [2 /*return*/];
174
208
  }
@@ -4114,7 +4148,9 @@ var role_based_access_tests = function () { return __awaiter(void 0, void 0, voi
4114
4148
  return [4 /*yield*/, async_test("non-admin for chat message bad", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, handleAnyError)];
4115
4149
  case 27:
4116
4150
  _a.sent();
4117
- return [4 /*yield*/, 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
4151
+ return [4 /*yield*/, async_test("[bulk] non-admin for chat message bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }); },
4152
+ // { onResult: result => result.results.flatMap(r => r?.records || []).length === 0 }
4153
+ handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
4118
4154
  )];
4119
4155
  case 28:
4120
4156
  _a.sent();
@@ -6035,6 +6071,29 @@ var tests = {
6035
6071
  ticket_thread_comments: NO_TEST,
6036
6072
  };
6037
6073
  var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=", 'base64');
6074
+ var validate_schema = function () {
6075
+ var _a;
6076
+ var endpoints = new Set([]);
6077
+ var modelName = undefined;
6078
+ for (modelName in schema) {
6079
+ for (var endpointName in schema[modelName].customActions) {
6080
+ var path = schema[modelName].customActions[endpointName].path || '';
6081
+ if (path === '' && endpointName === 'create')
6082
+ continue; // uses default
6083
+ if (endpoints.has(path)) {
6084
+ throw new Error("Duplicate path: ".concat(path, ", ").concat(endpointName));
6085
+ }
6086
+ endpoints.add(path);
6087
+ }
6088
+ for (var endpointName in (_a = schema[modelName].publicActions) !== null && _a !== void 0 ? _a : {}) {
6089
+ var path = schema[modelName].publicActions[endpointName].path || '';
6090
+ if (endpoints.has(path)) {
6091
+ throw new Error("Duplicate path: ".concat(path, ", ").concat(endpointName));
6092
+ }
6093
+ endpoints.add(path);
6094
+ }
6095
+ }
6096
+ };
6038
6097
  (function () { return __awaiter(void 0, void 0, void 0, function () {
6039
6098
  var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
6040
6099
  var _h, _j;
@@ -6047,7 +6106,10 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6047
6106
  _k.sent();
6048
6107
  _k.label = 2;
6049
6108
  case 2:
6050
- _k.trys.push([2, 33, , 34]);
6109
+ _k.trys.push([2, 34, , 35]);
6110
+ return [4 /*yield*/, validate_schema()];
6111
+ case 3:
6112
+ _k.sent();
6051
6113
  return [4 /*yield*/, Promise.all([
6052
6114
  sdk.authenticate(email, password),
6053
6115
  sdkSub.authenticate(subUserEmail, password),
@@ -6057,101 +6119,101 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6057
6119
  ])
6058
6120
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6059
6121
  ];
6060
- case 3:
6122
+ case 4:
6061
6123
  _k.sent();
6062
6124
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6063
6125
  return [4 /*yield*/, async_test("count exists",
6064
6126
  // @ts-ignore
6065
6127
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
6066
- case 4:
6128
+ case 5:
6067
6129
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
6068
6130
  _k.sent();
6069
6131
  return [4 /*yield*/, async_test("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: 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'; } })];
6070
- case 5:
6071
- _k.sent();
6072
- return [4 /*yield*/, mfa_tests()];
6073
6132
  case 6:
6074
6133
  _k.sent();
6075
- return [4 /*yield*/, setup_tests()];
6134
+ return [4 /*yield*/, mfa_tests()];
6076
6135
  case 7:
6077
6136
  _k.sent();
6078
- return [4 /*yield*/, automation_trigger_tests()];
6137
+ return [4 /*yield*/, setup_tests()];
6079
6138
  case 8:
6080
6139
  _k.sent();
6081
- return [4 /*yield*/, enduser_session_tests()];
6140
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
6082
6141
  case 9:
6083
- _k.sent();
6084
- return [4 /*yield*/, nextReminderInMS_tests()];
6142
+ _k.sent(); // should come right after setup tests
6143
+ return [4 /*yield*/, automation_trigger_tests()];
6085
6144
  case 10:
6086
6145
  _k.sent();
6087
- return [4 /*yield*/, search_tests()];
6146
+ return [4 /*yield*/, enduser_session_tests()];
6088
6147
  case 11:
6089
6148
  _k.sent();
6090
- return [4 /*yield*/, wait_for_trigger_tests()];
6149
+ return [4 /*yield*/, nextReminderInMS_tests()];
6091
6150
  case 12:
6092
6151
  _k.sent();
6093
- return [4 /*yield*/, role_based_access_tests()];
6152
+ return [4 /*yield*/, search_tests()];
6094
6153
  case 13:
6095
6154
  _k.sent();
6096
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
6155
+ return [4 /*yield*/, wait_for_trigger_tests()];
6097
6156
  case 14:
6098
- _k.sent(); // should come right after setup tests
6099
- return [4 /*yield*/, pdf_generation()];
6157
+ _k.sent();
6158
+ return [4 /*yield*/, role_based_access_tests()];
6100
6159
  case 15:
6101
6160
  _k.sent();
6102
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6161
+ return [4 /*yield*/, pdf_generation()];
6103
6162
  case 16:
6104
6163
  _k.sent();
6105
- return [4 /*yield*/, rate_limit_tests()];
6164
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
6106
6165
  case 17:
6107
6166
  _k.sent();
6108
- return [4 /*yield*/, merge_enduser_tests()];
6167
+ return [4 /*yield*/, rate_limit_tests()];
6109
6168
  case 18:
6110
6169
  _k.sent();
6111
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
6170
+ return [4 /*yield*/, merge_enduser_tests()];
6112
6171
  case 19:
6113
6172
  _k.sent();
6114
- return [4 /*yield*/, auto_reply_tests()];
6173
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
6115
6174
  case 20:
6116
6175
  _k.sent();
6117
- return [4 /*yield*/, sub_organization_enduser_tests()];
6176
+ return [4 /*yield*/, auto_reply_tests()];
6118
6177
  case 21:
6119
6178
  _k.sent();
6120
- return [4 /*yield*/, sub_organization_tests()];
6179
+ return [4 /*yield*/, sub_organization_enduser_tests()];
6121
6180
  case 22:
6122
6181
  _k.sent();
6123
- return [4 /*yield*/, filter_by_date_tests()];
6182
+ return [4 /*yield*/, sub_organization_tests()];
6124
6183
  case 23:
6125
6184
  _k.sent();
6126
- return [4 /*yield*/, generate_user_auth_tests()];
6185
+ return [4 /*yield*/, filter_by_date_tests()];
6127
6186
  case 24:
6128
6187
  _k.sent();
6129
- return [4 /*yield*/, generateEnduserAuthTests()];
6188
+ return [4 /*yield*/, generate_user_auth_tests()];
6130
6189
  case 25:
6131
6190
  _k.sent();
6132
- return [4 /*yield*/, public_form_tests()];
6191
+ return [4 /*yield*/, generateEnduserAuthTests()];
6133
6192
  case 26:
6134
6193
  _k.sent();
6135
- return [4 /*yield*/, badInputTests()];
6194
+ return [4 /*yield*/, public_form_tests()];
6136
6195
  case 27:
6137
6196
  _k.sent();
6138
- return [4 /*yield*/, filterTests()];
6197
+ return [4 /*yield*/, badInputTests()];
6139
6198
  case 28:
6140
6199
  _k.sent();
6141
- return [4 /*yield*/, updatesTests()];
6200
+ return [4 /*yield*/, filterTests()];
6142
6201
  case 29:
6143
6202
  _k.sent();
6144
- return [4 /*yield*/, threadKeyTests()];
6203
+ return [4 /*yield*/, updatesTests()];
6145
6204
  case 30:
6146
6205
  _k.sent();
6147
- return [4 /*yield*/, enduserAccessTests()];
6206
+ return [4 /*yield*/, threadKeyTests()];
6148
6207
  case 31:
6149
6208
  _k.sent();
6150
- return [4 /*yield*/, enduser_redaction_tests()];
6209
+ return [4 /*yield*/, enduserAccessTests()];
6151
6210
  case 32:
6152
6211
  _k.sent();
6153
- return [3 /*break*/, 34];
6212
+ return [4 /*yield*/, enduser_redaction_tests()];
6154
6213
  case 33:
6214
+ _k.sent();
6215
+ return [3 /*break*/, 35];
6216
+ case 34:
6155
6217
  err_1 = _k.sent();
6156
6218
  console.error("Failed during custom test");
6157
6219
  if (err_1.message && err_1.info) {
@@ -6161,18 +6223,18 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6161
6223
  console.error(err_1);
6162
6224
  }
6163
6225
  process.exit(1);
6164
- return [3 /*break*/, 34];
6165
- case 34:
6226
+ return [3 /*break*/, 35];
6227
+ case 35:
6166
6228
  _a = schema;
6167
6229
  _b = [];
6168
6230
  for (_c in _a)
6169
6231
  _b.push(_c);
6170
6232
  _i = 0;
6171
- _k.label = 35;
6172
- case 35:
6173
- if (!(_i < _b.length)) return [3 /*break*/, 38];
6233
+ _k.label = 36;
6234
+ case 36:
6235
+ if (!(_i < _b.length)) return [3 /*break*/, 39];
6174
6236
  _c = _b[_i];
6175
- if (!(_c in _a)) return [3 /*break*/, 37];
6237
+ if (!(_c in _a)) return [3 /*break*/, 38];
6176
6238
  n = _c;
6177
6239
  returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
6178
6240
  return [4 /*yield*/, run_generated_tests({
@@ -6183,41 +6245,41 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
6183
6245
  create: returnValidation // ModelFields<ClientModel>,
6184
6246
  }
6185
6247
  })];
6186
- case 36:
6187
- _k.sent();
6188
- _k.label = 37;
6189
6248
  case 37:
6190
- _i++;
6191
- return [3 /*break*/, 35];
6249
+ _k.sent();
6250
+ _k.label = 38;
6192
6251
  case 38:
6252
+ _i++;
6253
+ return [3 /*break*/, 36];
6254
+ case 39:
6193
6255
  _d = tests;
6194
6256
  _e = [];
6195
6257
  for (_f in _d)
6196
6258
  _e.push(_f);
6197
6259
  _g = 0;
6198
- _k.label = 39;
6199
- case 39:
6200
- if (!(_g < _e.length)) return [3 /*break*/, 44];
6201
- _f = _e[_g];
6202
- if (!(_f in _d)) return [3 /*break*/, 43];
6203
- t = _f;
6204
6260
  _k.label = 40;
6205
6261
  case 40:
6206
- _k.trys.push([40, 42, , 43]);
6207
- return [4 /*yield*/, tests[t]()];
6262
+ if (!(_g < _e.length)) return [3 /*break*/, 45];
6263
+ _f = _e[_g];
6264
+ if (!(_f in _d)) return [3 /*break*/, 44];
6265
+ t = _f;
6266
+ _k.label = 41;
6208
6267
  case 41:
6209
- _k.sent();
6210
- return [3 /*break*/, 43];
6268
+ _k.trys.push([41, 43, , 44]);
6269
+ return [4 /*yield*/, tests[t]()];
6211
6270
  case 42:
6271
+ _k.sent();
6272
+ return [3 /*break*/, 44];
6273
+ case 43:
6212
6274
  err_2 = _k.sent();
6213
6275
  console.error("Error running test:");
6214
6276
  console.error(err_2);
6215
6277
  process.exit(1);
6216
- return [3 /*break*/, 43];
6217
- case 43:
6218
- _g++;
6219
- return [3 /*break*/, 39];
6278
+ return [3 /*break*/, 44];
6220
6279
  case 44:
6280
+ _g++;
6281
+ return [3 /*break*/, 40];
6282
+ case 45:
6221
6283
  process.exit();
6222
6284
  return [2 /*return*/];
6223
6285
  }