@tellescope/sdk 1.253.0 → 1.253.1

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/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts +6 -0
  2. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -0
  3. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js +256 -0
  4. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js.map +1 -0
  5. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts +43 -0
  6. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js +168 -0
  8. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts +23 -0
  10. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -0
  11. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +325 -0
  12. package/lib/cjs/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -0
  13. package/lib/cjs/tests/api_tests/user_portal_settings.test.d.ts.map +1 -1
  14. package/lib/cjs/tests/api_tests/user_portal_settings.test.js +104 -28
  15. package/lib/cjs/tests/api_tests/user_portal_settings.test.js.map +1 -1
  16. package/lib/cjs/tests/tests.d.ts.map +1 -1
  17. package/lib/cjs/tests/tests.js +444 -174
  18. package/lib/cjs/tests/tests.js.map +1 -1
  19. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts +6 -0
  20. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -0
  21. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js +252 -0
  22. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js.map +1 -0
  23. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts +43 -0
  24. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -0
  25. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js +164 -0
  26. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js.map +1 -0
  27. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts +23 -0
  28. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.d.ts.map +1 -0
  29. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js +321 -0
  30. package/lib/esm/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.js.map +1 -0
  31. package/lib/esm/tests/api_tests/user_portal_settings.test.d.ts.map +1 -1
  32. package/lib/esm/tests/api_tests/user_portal_settings.test.js +104 -28
  33. package/lib/esm/tests/api_tests/user_portal_settings.test.js.map +1 -1
  34. package/lib/esm/tests/tests.d.ts.map +1 -1
  35. package/lib/esm/tests/tests.js +444 -174
  36. package/lib/esm/tests/tests.js.map +1 -1
  37. package/lib/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +10 -10
  39. package/src/tests/api_tests/beluga_manual_sync.test.ts +159 -0
  40. package/src/tests/api_tests/gcal_sync_retry.test.ts +104 -0
  41. package/src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts +214 -0
  42. package/src/tests/api_tests/user_portal_settings.test.ts +71 -1
  43. package/src/tests/tests.ts +222 -6
  44. package/test_generated.pdf +0 -0
@@ -0,0 +1,321 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ require('source-map-support').install();
38
+ import { Session, EnduserSession } from "../../../sdk";
39
+ import { async_test, log_header, } from "@tellescope/testing";
40
+ import { setup_tests } from "../../setup";
41
+ var host = process.env.API_URL || 'http://localhost:8080';
42
+ var businessId = '60398b1131a295e64f084ff6';
43
+ var ENDUSER_PASSWORD = 'F0106TestPassword!123';
44
+ // Every endusers field marked enduserUpdatesDisabled in schema.ts, with a
45
+ // validator-passing sample value so the only rejection in play is the
46
+ // write-restriction (not input validation).
47
+ var restrictedEnduserUpdates = function (staffId, mongoId) {
48
+ var _a;
49
+ return ({
50
+ externalId: 'f0106-attacker-external-id',
51
+ tags: ['f0106-attacker-tag'],
52
+ accessTags: ['f0106-attacker-access-tag'],
53
+ assignedTo: [staffId],
54
+ customTypeId: mongoId,
55
+ references: [{ type: 'Vital', id: 'f0106-attacker-reference' }],
56
+ sharedWithOrganizations: [],
57
+ journeys: (_a = {}, _a[mongoId] = 'Added', _a),
58
+ primaryAssignee: staffId,
59
+ fields: { f0106AttackerField: 'true' },
60
+ unread: true,
61
+ source: 'f0106-attacker-source',
62
+ note: 'f0106 attacker note',
63
+ insurance: { memberId: 'f0106-attacker-member' },
64
+ insuranceSecondary: { memberId: 'f0106-attacker-member-2' },
65
+ diagnoses: [{ code: 'I10' }],
66
+ lockedFromPortal: false,
67
+ eligibleForAutoMerge: true,
68
+ athenaDepartmentId: 'f0106-dept',
69
+ athenaPracticeId: 'f0106-practice',
70
+ salesforceId: 'f0106-salesforce',
71
+ healthie_dietitian_id: 'f0106-healthie',
72
+ stripeCustomerId: 'f0106-stripe-customer',
73
+ stripeKey: 'f0106-stripe-key',
74
+ });
75
+ };
76
+ // Every form_responses field marked enduserUpdatesDisabled in schema.ts.
77
+ var restrictedFormResponseUpdates = function (staffId) { return ({
78
+ markedAsSubmitted: true,
79
+ submittedBy: staffId,
80
+ submittedAt: new Date("2024-01-01T00:00:00Z"),
81
+ submittedByIsPlaceholder: true,
82
+ procedureCodes: [{ code: '99214', units: 1 }],
83
+ diagnosisCodes: [{ code: 'I10', description: 'Essential (primary) hypertension' }],
84
+ enduserAISummary: 'Patient is in excellent health, no follow-up needed.',
85
+ addenda: [{ text: 'forged staff addendum', timestamp: new Date(), userId: staffId }],
86
+ isInternalNote: true,
87
+ pinnedAt: new Date(),
88
+ hiddenFromTimeline: true,
89
+ lockedAt: new Date(),
90
+ tags: ['f0110-attacker-tag'],
91
+ formTitle: 'Spoofed Form Title',
92
+ userEmail: 'spoofed-staff@example.com',
93
+ logoURL: 'https://attacker.example.com/logo.png',
94
+ logoHeight: 100,
95
+ }); };
96
+ /**
97
+ * Regression test for F-0106 and F-0110
98
+ * (security-audit/findings/F-0106-enduser-self-update-admin-only-fields.md,
99
+ * security-audit/findings/F-0110-form-responses-enduser-update-admin-only-fields.md).
100
+ *
101
+ * Endusers could PATCH admin-only / access-bearing / attribution-bearing fields on
102
+ * their own endusers record (assignedTo, tags, references, ...) and their own
103
+ * form_responses (procedureCodes, submittedBy, markedAsSubmitted, ...). The fix adds
104
+ * the `enduserUpdatesDisabled` field option (schema.ts ModelFieldInfo), enforced for
105
+ * enduser sessions in the generic update handler (routing.ts createDefaultEndpoints).
106
+ *
107
+ * This test asserts, for every flagged field on both models:
108
+ * - an enduser session updating its OWN record gets a 400 "<field> cannot be updated by endusers"
109
+ * - nothing persists (spot-checked on assignedTo, the highest-impact field)
110
+ * - enduser self-updates of allowed fields still work (fname, hideFromEnduserPortal)
111
+ * - staff sessions can still update the restricted fields
112
+ */
113
+ export var enduser_write_restrictions_tests = function (_a) {
114
+ var sdk = _a.sdk;
115
+ return __awaiter(void 0, void 0, void 0, function () {
116
+ var enduserId, formId, formResponseId, enduserEmail, enduser_1, enduserSDK_1, form, formResponse_1, _loop_1, _i, _b, _c, field, value, _loop_2, _d, _e, _f, field, value, _g, _h, _j;
117
+ return __generator(this, function (_k) {
118
+ switch (_k.label) {
119
+ case 0:
120
+ log_header("F-0106/F-0110: enduser write restrictions (enduserUpdatesDisabled)");
121
+ _k.label = 1;
122
+ case 1:
123
+ _k.trys.push([1, , 21, 34]);
124
+ enduserEmail = "f0106-enduser-".concat(Date.now(), "@example.com");
125
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: enduserEmail, fname: 'F0106', lname: 'Restricted' })];
126
+ case 2:
127
+ enduser_1 = _k.sent();
128
+ enduserId = enduser_1.id;
129
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser_1.id, password: ENDUSER_PASSWORD })];
130
+ case 3:
131
+ _k.sent();
132
+ enduserSDK_1 = new EnduserSession({ host: host, businessId: businessId });
133
+ return [4 /*yield*/, enduserSDK_1.authenticate(enduserEmail, ENDUSER_PASSWORD)];
134
+ case 4:
135
+ _k.sent();
136
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'F-0106/F-0110 Write Restriction Test Form' })];
137
+ case 5:
138
+ form = _k.sent();
139
+ formId = form.id;
140
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
141
+ formId: form.id,
142
+ enduserId: enduser_1.id,
143
+ })];
144
+ case 6:
145
+ formResponse_1 = (_k.sent()).response;
146
+ formResponseId = formResponse_1.id;
147
+ _loop_1 = function (field, value) {
148
+ return __generator(this, function (_l) {
149
+ switch (_l.label) {
150
+ case 0: return [4 /*yield*/, async_test("F-0106: enduser cannot self-update endusers.".concat(field), function () {
151
+ var _a;
152
+ return enduserSDK_1.api.endusers.updateOne(enduser_1.id, (_a = {}, _a[field] = value, _a));
153
+ }, { shouldError: true, onError: function (e) { return e.message === "".concat(field, " cannot be updated by endusers"); } })];
154
+ case 1:
155
+ _l.sent();
156
+ return [2 /*return*/];
157
+ }
158
+ });
159
+ };
160
+ _i = 0, _b = Object.entries(restrictedEnduserUpdates(sdk.userInfo.id, enduser_1.id));
161
+ _k.label = 7;
162
+ case 7:
163
+ if (!(_i < _b.length)) return [3 /*break*/, 10];
164
+ _c = _b[_i], field = _c[0], value = _c[1];
165
+ return [5 /*yield**/, _loop_1(field, value)];
166
+ case 8:
167
+ _k.sent();
168
+ _k.label = 9;
169
+ case 9:
170
+ _i++;
171
+ return [3 /*break*/, 7];
172
+ case 10:
173
+ // F-0106 Variant A persistence check: the rejected assignedTo write must not
174
+ // have granted the staff read-filter match.
175
+ return [4 /*yield*/, async_test('F-0106: rejected assignedTo write did not persist', function () { return sdk.api.endusers.getOne(enduser_1.id); }, { onResult: function (e) { var _a, _b; return !((_a = e.assignedTo) === null || _a === void 0 ? void 0 : _a.length) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.length) && e.externalId === undefined; } })
176
+ // ---- F-0110: enduser self-update of restricted form_responses fields must 400 ----
177
+ ];
178
+ case 11:
179
+ // F-0106 Variant A persistence check: the rejected assignedTo write must not
180
+ // have granted the staff read-filter match.
181
+ _k.sent();
182
+ _loop_2 = function (field, value) {
183
+ return __generator(this, function (_m) {
184
+ switch (_m.label) {
185
+ case 0: return [4 /*yield*/, async_test("F-0110: enduser cannot self-update form_responses.".concat(field), function () {
186
+ var _a;
187
+ return enduserSDK_1.api.form_responses.updateOne(formResponse_1.id, (_a = {}, _a[field] = value, _a));
188
+ }, { shouldError: true, onError: function (e) { return e.message === "".concat(field, " cannot be updated by endusers"); } })];
189
+ case 1:
190
+ _m.sent();
191
+ return [2 /*return*/];
192
+ }
193
+ });
194
+ };
195
+ _d = 0, _e = Object.entries(restrictedFormResponseUpdates(sdk.userInfo.id));
196
+ _k.label = 12;
197
+ case 12:
198
+ if (!(_d < _e.length)) return [3 /*break*/, 15];
199
+ _f = _e[_d], field = _f[0], value = _f[1];
200
+ return [5 /*yield**/, _loop_2(field, value)];
201
+ case 13:
202
+ _k.sent();
203
+ _k.label = 14;
204
+ case 14:
205
+ _d++;
206
+ return [3 /*break*/, 12];
207
+ case 15: return [4 /*yield*/, async_test('F-0110: rejected writes did not persist (markedAsSubmitted, procedureCodes, submittedBy)', function () { return sdk.api.form_responses.getOne(formResponse_1.id); }, { onResult: function (fr) { var _a; return !fr.markedAsSubmitted && !((_a = fr.procedureCodes) === null || _a === void 0 ? void 0 : _a.length) && fr.submittedBy === undefined; } })
208
+ // ---- Positive controls: intended enduser self-updates still work ----
209
+ ];
210
+ case 16:
211
+ _k.sent();
212
+ // ---- Positive controls: intended enduser self-updates still work ----
213
+ return [4 /*yield*/, async_test('enduser can still update own profile fields (fname/lname)', function () { return enduserSDK_1.api.endusers.updateOne(enduser_1.id, { fname: 'StillAllowed', lname: 'Patient' }); }, { onResult: function (e) { return e.fname === 'StillAllowed' && e.lname === 'Patient'; } })];
214
+ case 17:
215
+ // ---- Positive controls: intended enduser self-updates still work ----
216
+ _k.sent();
217
+ return [4 /*yield*/, async_test('enduser can still update own form_response (hideFromEnduserPortal — intended per schema)', function () { return enduserSDK_1.api.form_responses.updateOne(formResponse_1.id, { hideFromEnduserPortal: true }); }, { onResult: function (fr) { return fr.hideFromEnduserPortal === true; } })
218
+ // ---- Positive controls: staff sessions are unaffected by enduserUpdatesDisabled ----
219
+ ];
220
+ case 18:
221
+ _k.sent();
222
+ // ---- Positive controls: staff sessions are unaffected by enduserUpdatesDisabled ----
223
+ return [4 /*yield*/, async_test('staff can still update restricted endusers fields (tags, assignedTo, externalId, note, source)', function () { return sdk.api.endusers.updateOne(enduser_1.id, {
224
+ tags: ['staff-set-tag'],
225
+ assignedTo: [sdk.userInfo.id],
226
+ externalId: 'staff-set-external-id',
227
+ note: 'staff-set note',
228
+ source: 'staff-set-source',
229
+ }); }, { onResult: function (e) {
230
+ var _a, _b;
231
+ return (!!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('staff-set-tag'))
232
+ && !!((_b = e.assignedTo) === null || _b === void 0 ? void 0 : _b.includes(sdk.userInfo.id))
233
+ && e.externalId === 'staff-set-external-id');
234
+ } })];
235
+ case 19:
236
+ // ---- Positive controls: staff sessions are unaffected by enduserUpdatesDisabled ----
237
+ _k.sent();
238
+ return [4 /*yield*/, async_test('staff can still update restricted form_responses fields (procedureCodes, diagnosisCodes, tags)', function () { return sdk.api.form_responses.updateOne(formResponse_1.id, {
239
+ procedureCodes: [{ code: 'G0019', units: 1 }],
240
+ diagnosisCodes: [{ code: 'Z71.3', description: 'Dietary counseling and surveillance' }],
241
+ tags: ['staff-set-tag'],
242
+ }); }, { onResult: function (fr) {
243
+ var _a, _b, _c, _d, _e;
244
+ return (((_b = (_a = fr.procedureCodes) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.code) === 'G0019'
245
+ && ((_d = (_c = fr.diagnosisCodes) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.code) === 'Z71.3'
246
+ && !!((_e = fr.tags) === null || _e === void 0 ? void 0 : _e.includes('staff-set-tag')));
247
+ } })];
248
+ case 20:
249
+ _k.sent();
250
+ return [3 /*break*/, 34];
251
+ case 21:
252
+ if (!formResponseId) return [3 /*break*/, 25];
253
+ _k.label = 22;
254
+ case 22:
255
+ _k.trys.push([22, 24, , 25]);
256
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(formResponseId)];
257
+ case 23:
258
+ _k.sent();
259
+ return [3 /*break*/, 25];
260
+ case 24:
261
+ _g = _k.sent();
262
+ return [3 /*break*/, 25];
263
+ case 25:
264
+ if (!formId) return [3 /*break*/, 29];
265
+ _k.label = 26;
266
+ case 26:
267
+ _k.trys.push([26, 28, , 29]);
268
+ return [4 /*yield*/, sdk.api.forms.deleteOne(formId)];
269
+ case 27:
270
+ _k.sent();
271
+ return [3 /*break*/, 29];
272
+ case 28:
273
+ _h = _k.sent();
274
+ return [3 /*break*/, 29];
275
+ case 29:
276
+ if (!enduserId) return [3 /*break*/, 33];
277
+ _k.label = 30;
278
+ case 30:
279
+ _k.trys.push([30, 32, , 33]);
280
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserId)];
281
+ case 31:
282
+ _k.sent();
283
+ return [3 /*break*/, 33];
284
+ case 32:
285
+ _j = _k.sent();
286
+ return [3 /*break*/, 33];
287
+ case 33: return [7 /*endfinally*/];
288
+ case 34: return [2 /*return*/];
289
+ }
290
+ });
291
+ });
292
+ };
293
+ // Allow running this test file independently
294
+ if (require.main === module) {
295
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
296
+ var sdk_1 = new Session({ host: host });
297
+ var sdkNonAdmin_1 = new Session({ host: host });
298
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
299
+ return __generator(this, function (_a) {
300
+ switch (_a.label) {
301
+ case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
302
+ case 1:
303
+ _a.sent();
304
+ return [4 /*yield*/, enduser_write_restrictions_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
305
+ case 2:
306
+ _a.sent();
307
+ return [2 /*return*/];
308
+ }
309
+ });
310
+ }); };
311
+ runTests()
312
+ .then(function () {
313
+ console.log("✅ F-0106/F-0110 enduser write-restriction test suite completed successfully");
314
+ process.exit(0);
315
+ })
316
+ .catch(function (error) {
317
+ console.error("❌ F-0106/F-0110 enduser write-restriction test suite failed:", error);
318
+ process.exit(1);
319
+ });
320
+ }
321
+ //# sourceMappingURL=F-0106-F-0110-enduser-write-restrictions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"F-0106-F-0110-enduser-write-restrictions.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/F-0106-F-0110-enduser-write-restrictions.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user_portal_settings.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/user_portal_settings.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAanD,eAAO,MAAM,0BAA0B;SAAuC,OAAO;iBAAe,OAAO;mBAmL1G,CAAA"}
1
+ {"version":3,"file":"user_portal_settings.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/user_portal_settings.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAanD,eAAO,MAAM,0BAA0B;SAAuC,OAAO;iBAAe,OAAO;mBAyP1G,CAAA"}
@@ -44,7 +44,7 @@ var businessId = '60398b1131a295e64f084ff6';
44
44
  export var user_portal_settings_tests = function (_a) {
45
45
  var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
46
46
  return __awaiter(void 0, void 0, void 0, function () {
47
- var testUser, testEnduserId, enduserSDK;
47
+ var testUser, testEnduserId, enduserSDK, orgId, originalOnboardingStatus;
48
48
  return __generator(this, function (_b) {
49
49
  switch (_b.label) {
50
50
  case 0:
@@ -56,9 +56,13 @@ export var user_portal_settings_tests = function (_a) {
56
56
  ];
57
57
  case 1:
58
58
  testUser = _b.sent();
59
- _b.label = 2;
59
+ orgId = sdk.userInfo.businessId;
60
+ return [4 /*yield*/, sdk.api.organizations.getOne(orgId)];
60
61
  case 2:
61
- _b.trys.push([2, , 13, 21]);
62
+ originalOnboardingStatus = (_b.sent()).onboardingStatus;
63
+ _b.label = 3;
64
+ case 3:
65
+ _b.trys.push([3, , 18, 29]);
62
66
  // ===== Valid: string values =====
63
67
  return [4 /*yield*/, async_test('portalSettings - string values accepted', function () { return __awaiter(void 0, void 0, void 0, function () {
64
68
  var updated;
@@ -77,7 +81,7 @@ export var user_portal_settings_tests = function (_a) {
77
81
  }); }, { onResult: function (r) { return r === 'dark'; } })
78
82
  // ===== Valid: boolean values + round-trip as real booleans =====
79
83
  ];
80
- case 3:
84
+ case 4:
81
85
  // ===== Valid: string values =====
82
86
  _b.sent();
83
87
  // ===== Valid: boolean values + round-trip as real booleans =====
@@ -105,7 +109,7 @@ export var user_portal_settings_tests = function (_a) {
105
109
  })
106
110
  // ===== Valid: mixed string + boolean values, strings stay strings =====
107
111
  ];
108
- case 4:
112
+ case 5:
109
113
  // ===== Valid: boolean values + round-trip as real booleans =====
110
114
  _b.sent();
111
115
  // ===== Valid: mixed string + boolean values, strings stay strings =====
@@ -132,7 +136,7 @@ export var user_portal_settings_tests = function (_a) {
132
136
  })
133
137
  // ===== Valid: empty object (zero-iteration loop passes) =====
134
138
  ];
135
- case 5:
139
+ case 6:
136
140
  // ===== Valid: mixed string + boolean values, strings stay strings =====
137
141
  _b.sent();
138
142
  // ===== Valid: empty object (zero-iteration loop passes) =====
@@ -152,14 +156,14 @@ export var user_portal_settings_tests = function (_a) {
152
156
  }); }, { onResult: function (r) { return !!r && typeof r === 'object' && Object.keys(r).length === 0; } })
153
157
  // ===== Invalid: value string > 250 chars =====
154
158
  ];
155
- case 6:
159
+ case 7:
156
160
  // ===== Valid: empty object (zero-iteration loop passes) =====
157
161
  _b.sent();
158
162
  // ===== Invalid: value string > 250 chars =====
159
163
  return [4 /*yield*/, async_test('portalSettings - value string > 250 chars rejected', function () { return sdk.api.users.updateOne(testUser.id, { portalSettings: { tooLong: 'a'.repeat(251) } }, { replaceObjectFields: true }); }, handleAnyError)
160
164
  // ===== Invalid: key > 250 chars =====
161
165
  ];
162
- case 7:
166
+ case 8:
163
167
  // ===== Invalid: value string > 250 chars =====
164
168
  _b.sent();
165
169
  // ===== Invalid: key > 250 chars =====
@@ -169,14 +173,14 @@ export var user_portal_settings_tests = function (_a) {
169
173
  }, handleAnyError)
170
174
  // ===== Invalid: nested object value (disallowed type) =====
171
175
  ];
172
- case 8:
176
+ case 9:
173
177
  // ===== Invalid: key > 250 chars =====
174
178
  _b.sent();
175
179
  // ===== Invalid: nested object value (disallowed type) =====
176
180
  return [4 /*yield*/, async_test('portalSettings - nested object value rejected', function () { return sdk.api.users.updateOne(testUser.id, { portalSettings: { k: { nested: 1 } } }, { replaceObjectFields: true }); }, handleAnyError)
177
181
  // ===== Invalid: array value (disallowed type) =====
178
182
  ];
179
- case 9:
183
+ case 10:
180
184
  // ===== Invalid: nested object value (disallowed type) =====
181
185
  _b.sent();
182
186
  // ===== Invalid: array value (disallowed type) =====
@@ -185,7 +189,7 @@ export var user_portal_settings_tests = function (_a) {
185
189
  // stringValidator250's escapeString throws on non-strings, so a number is
186
190
  // rejected by both branches => API validation error. =====
187
191
  ];
188
- case 10:
192
+ case 11:
189
193
  // ===== Invalid: array value (disallowed type) =====
190
194
  _b.sent();
191
195
  // ===== Number value (secondary): orValidator tries boolean then string;
@@ -194,7 +198,7 @@ export var user_portal_settings_tests = function (_a) {
194
198
  return [4 /*yield*/, async_test('portalSettings - number value rejected', function () { return sdk.api.users.updateOne(testUser.id, { portalSettings: { k: 1 } }, { replaceObjectFields: true }); }, handleAnyError)
195
199
  // ===== Enduser visibility: portalSettings readable by endusers, un-redacted =====
196
200
  ];
197
- case 11:
201
+ case 12:
198
202
  // ===== Number value (secondary): orValidator tries boolean then string;
199
203
  // stringValidator250's escapeString throws on non-strings, so a number is
200
204
  // rejected by both branches => API validation error. =====
@@ -236,32 +240,104 @@ export var user_portal_settings_tests = function (_a) {
236
240
  // field is present and un-redacted for endusers
237
241
  return (r === null || r === void 0 ? void 0 : r.showNameInSecureMessaging) === true && (r === null || r === void 0 ? void 0 : r.theme) === 'dark';
238
242
  },
239
- })];
240
- case 12:
243
+ })
244
+ // ===== Organization.onboardingStatus: same key-value shape as portalSettings =====
245
+ ];
246
+ case 13:
241
247
  // ===== Enduser visibility: portalSettings readable by endusers, un-redacted =====
242
248
  _b.sent();
243
- console.log("✅ All User portalSettings tests passed!");
244
- return [3 /*break*/, 21];
245
- case 13:
246
- _b.trys.push([13, , 18, 20]);
247
- if (!enduserSDK) return [3 /*break*/, 15];
248
- return [4 /*yield*/, enduserSDK.api.endusers.logout().catch(function () { })];
249
+ // ===== Organization.onboardingStatus: same key-value shape as portalSettings =====
250
+ return [4 /*yield*/, async_test('onboardingStatus - mixed string and boolean values round-trip', function () { return __awaiter(void 0, void 0, void 0, function () {
251
+ var updated;
252
+ return __generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0: return [4 /*yield*/, sdk.api.organizations.updateOne(orgId, { onboardingStatus: { completedIntro: true, currentStep: 'billing', skippedTour: false } }, { replaceObjectFields: true })];
255
+ case 1:
256
+ _a.sent();
257
+ return [4 /*yield*/, sdk.api.organizations.getOne(orgId)];
258
+ case 2:
259
+ updated = _a.sent();
260
+ return [2 /*return*/, updated.onboardingStatus];
261
+ }
262
+ });
263
+ }); }, {
264
+ onResult: function (r) {
265
+ return (r === null || r === void 0 ? void 0 : r.completedIntro) === true &&
266
+ typeof (r === null || r === void 0 ? void 0 : r.completedIntro) === 'boolean' &&
267
+ (r === null || r === void 0 ? void 0 : r.currentStep) === 'billing' &&
268
+ typeof (r === null || r === void 0 ? void 0 : r.currentStep) === 'string' &&
269
+ (r === null || r === void 0 ? void 0 : r.skippedTour) === false &&
270
+ typeof (r === null || r === void 0 ? void 0 : r.skippedTour) === 'boolean';
271
+ },
272
+ })];
249
273
  case 14:
274
+ // ===== Organization.onboardingStatus: same key-value shape as portalSettings =====
250
275
  _b.sent();
251
- _b.label = 15;
276
+ return [4 /*yield*/, async_test('onboardingStatus - empty object accepted', function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ var updated;
278
+ return __generator(this, function (_a) {
279
+ switch (_a.label) {
280
+ case 0: return [4 /*yield*/, sdk.api.organizations.updateOne(orgId, { onboardingStatus: {} }, { replaceObjectFields: true })];
281
+ case 1:
282
+ _a.sent();
283
+ return [4 /*yield*/, sdk.api.organizations.getOne(orgId)];
284
+ case 2:
285
+ updated = _a.sent();
286
+ return [2 /*return*/, updated.onboardingStatus];
287
+ }
288
+ });
289
+ }); }, { onResult: function (r) { return !!r && typeof r === 'object' && Object.keys(r).length === 0; } })
290
+ // breaking change: the previous string shape must no longer be accepted
291
+ ];
252
292
  case 15:
253
- if (!testEnduserId) return [3 /*break*/, 17];
254
- return [4 /*yield*/, sdk.api.endusers.deleteOne(testEnduserId)];
293
+ _b.sent();
294
+ // breaking change: the previous string shape must no longer be accepted
295
+ return [4 /*yield*/, async_test('onboardingStatus - plain string (old shape) rejected', function () { return sdk.api.organizations.updateOne(orgId, { onboardingStatus: 'started' }, { replaceObjectFields: true }); }, handleAnyError)
296
+ // representative validator rejection, confirming the indexable validator is
297
+ // enforced on the organizations route (full coverage lives in the
298
+ // portalSettings cases above, which use the same validator)
299
+ ];
255
300
  case 16:
301
+ // breaking change: the previous string shape must no longer be accepted
256
302
  _b.sent();
257
- _b.label = 17;
258
- case 17: return [3 /*break*/, 20];
259
- case 18: return [4 /*yield*/, sdk.api.users.deleteOne(testUser.id)];
303
+ // representative validator rejection, confirming the indexable validator is
304
+ // enforced on the organizations route (full coverage lives in the
305
+ // portalSettings cases above, which use the same validator)
306
+ return [4 /*yield*/, async_test('onboardingStatus - number value rejected', function () { return sdk.api.organizations.updateOne(orgId, { onboardingStatus: { k: 1 } }, { replaceObjectFields: true }); }, handleAnyError)];
307
+ case 17:
308
+ // representative validator rejection, confirming the indexable validator is
309
+ // enforced on the organizations route (full coverage lives in the
310
+ // portalSettings cases above, which use the same validator)
311
+ _b.sent();
312
+ console.log("✅ All User portalSettings tests passed!");
313
+ return [3 /*break*/, 29];
314
+ case 18:
315
+ _b.trys.push([18, , 23, 28]);
316
+ if (!enduserSDK) return [3 /*break*/, 20];
317
+ return [4 /*yield*/, enduserSDK.api.endusers.logout().catch(function () { })];
260
318
  case 19:
319
+ _b.sent();
320
+ _b.label = 20;
321
+ case 20:
322
+ if (!testEnduserId) return [3 /*break*/, 22];
323
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(testEnduserId)];
324
+ case 21:
325
+ _b.sent();
326
+ _b.label = 22;
327
+ case 22: return [3 /*break*/, 28];
328
+ case 23:
329
+ _b.trys.push([23, , 25, 27]);
330
+ return [4 /*yield*/, sdk.api.organizations.updateOne(orgId, { onboardingStatus: originalOnboardingStatus !== null && originalOnboardingStatus !== void 0 ? originalOnboardingStatus : {} }, { replaceObjectFields: true })];
331
+ case 24:
332
+ _b.sent();
333
+ return [3 /*break*/, 27];
334
+ case 25: return [4 /*yield*/, sdk.api.users.deleteOne(testUser.id)];
335
+ case 26:
261
336
  _b.sent();
262
337
  return [7 /*endfinally*/];
263
- case 20: return [7 /*endfinally*/];
264
- case 21: return [2 /*return*/];
338
+ case 27: return [7 /*endfinally*/];
339
+ case 28: return [7 /*endfinally*/];
340
+ case 29: return [2 /*return*/];
265
341
  }
266
342
  });
267
343
  });
@@ -1 +1 @@
1
- {"version":3,"file":"user_portal_settings.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/user_portal_settings.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user_portal_settings.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/user_portal_settings.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAizEA,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;AA8vED,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAylBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA2C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAmzEA,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;AAk8ED,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBAylBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA2C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}