@tellescope/sdk 1.245.1 → 1.246.2

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 (67) hide show
  1. package/lib/cjs/tests/api_tests/account_switcher.test.d.ts +6 -0
  2. package/lib/cjs/tests/api_tests/account_switcher.test.d.ts.map +1 -0
  3. package/lib/cjs/tests/api_tests/account_switcher.test.js +445 -0
  4. package/lib/cjs/tests/api_tests/account_switcher.test.js.map +1 -0
  5. package/lib/cjs/tests/api_tests/beluga_pharmacy_mappings.test.d.ts +6 -0
  6. package/lib/cjs/tests/api_tests/beluga_pharmacy_mappings.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/beluga_pharmacy_mappings.test.js +357 -0
  8. package/lib/cjs/tests/api_tests/beluga_pharmacy_mappings.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/calendar_event_limits.test.d.ts.map +1 -1
  10. package/lib/cjs/tests/api_tests/calendar_event_limits.test.js +163 -0
  11. package/lib/cjs/tests/api_tests/calendar_event_limits.test.js.map +1 -1
  12. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.d.ts +5 -0
  13. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.d.ts.map +1 -0
  14. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.js +483 -0
  15. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.js.map +1 -0
  16. package/lib/cjs/tests/api_tests/email_utils.test.d.ts +2 -0
  17. package/lib/cjs/tests/api_tests/email_utils.test.d.ts.map +1 -0
  18. package/lib/cjs/tests/api_tests/email_utils.test.js +141 -0
  19. package/lib/cjs/tests/api_tests/email_utils.test.js.map +1 -0
  20. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts +6 -0
  21. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -0
  22. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js +268 -0
  23. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js.map +1 -0
  24. package/lib/cjs/tests/api_tests/time_tracks.test.d.ts +20 -0
  25. package/lib/cjs/tests/api_tests/time_tracks.test.d.ts.map +1 -1
  26. package/lib/cjs/tests/api_tests/time_tracks.test.js +692 -20
  27. package/lib/cjs/tests/api_tests/time_tracks.test.js.map +1 -1
  28. package/lib/cjs/tests/tests.d.ts.map +1 -1
  29. package/lib/cjs/tests/tests.js +157 -122
  30. package/lib/cjs/tests/tests.js.map +1 -1
  31. package/lib/esm/tests/api_tests/account_switcher.test.d.ts +6 -0
  32. package/lib/esm/tests/api_tests/account_switcher.test.d.ts.map +1 -0
  33. package/lib/esm/tests/api_tests/account_switcher.test.js +438 -0
  34. package/lib/esm/tests/api_tests/account_switcher.test.js.map +1 -0
  35. package/lib/esm/tests/api_tests/beluga_pharmacy_mappings.test.d.ts +6 -0
  36. package/lib/esm/tests/api_tests/beluga_pharmacy_mappings.test.d.ts.map +1 -0
  37. package/lib/esm/tests/api_tests/beluga_pharmacy_mappings.test.js +353 -0
  38. package/lib/esm/tests/api_tests/beluga_pharmacy_mappings.test.js.map +1 -0
  39. package/lib/esm/tests/api_tests/calendar_event_limits.test.d.ts.map +1 -1
  40. package/lib/esm/tests/api_tests/calendar_event_limits.test.js +163 -0
  41. package/lib/esm/tests/api_tests/calendar_event_limits.test.js.map +1 -1
  42. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.d.ts +5 -0
  43. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.d.ts.map +1 -0
  44. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.js +479 -0
  45. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.js.map +1 -0
  46. package/lib/esm/tests/api_tests/email_utils.test.d.ts +2 -0
  47. package/lib/esm/tests/api_tests/email_utils.test.d.ts.map +1 -0
  48. package/lib/esm/tests/api_tests/email_utils.test.js +137 -0
  49. package/lib/esm/tests/api_tests/email_utils.test.js.map +1 -0
  50. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts +6 -0
  51. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -0
  52. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js +264 -0
  53. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js.map +1 -0
  54. package/lib/esm/tests/api_tests/time_tracks.test.d.ts +20 -0
  55. package/lib/esm/tests/api_tests/time_tracks.test.d.ts.map +1 -1
  56. package/lib/esm/tests/api_tests/time_tracks.test.js +687 -20
  57. package/lib/esm/tests/api_tests/time_tracks.test.js.map +1 -1
  58. package/lib/esm/tests/tests.d.ts.map +1 -1
  59. package/lib/esm/tests/tests.js +158 -123
  60. package/lib/esm/tests/tests.js.map +1 -1
  61. package/lib/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +10 -10
  63. package/src/tests/api_tests/beluga_pharmacy_mappings.test.ts +351 -0
  64. package/src/tests/api_tests/calendar_event_limits.test.ts +195 -0
  65. package/src/tests/api_tests/time_tracks.test.ts +542 -16
  66. package/src/tests/tests.ts +34 -5
  67. package/test_generated.pdf +0 -0
@@ -0,0 +1,353 @@
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 } from "../../sdk";
39
+ import { async_test, log_header, } from "@tellescope/testing";
40
+ import { setup_tests } from "../setup";
41
+ import { evaluate_conditional_logic } from "@tellescope/utilities";
42
+ var host = process.env.API_URL || 'http://localhost:8080';
43
+ // Helper mimicking resolve_beluga_pharmacy_mapping evaluator
44
+ var evaluate_mapping_conditions = function (conditions, responses) { return evaluate_conditional_logic(conditions, function (key, value) {
45
+ var _a;
46
+ var responseValue = (_a = responses.find(function (r) { return r.externalId === key; })) === null || _a === void 0 ? void 0 : _a.value;
47
+ if (typeof value === 'string') {
48
+ return responseValue === value;
49
+ }
50
+ if (typeof value === 'object' && value !== null) {
51
+ var operator = Object.keys(value)[0];
52
+ var operand = Object.values(value)[0];
53
+ if (operator === '$contains') {
54
+ return typeof responseValue === 'string' && responseValue.includes(String(operand));
55
+ }
56
+ if (operator === '$doesNotContain') {
57
+ return typeof responseValue === 'string' && !responseValue.includes(String(operand));
58
+ }
59
+ if (operator === '$exists') {
60
+ return operand ? responseValue !== undefined : responseValue === undefined;
61
+ }
62
+ if (operator === '$ne') {
63
+ return responseValue !== String(operand);
64
+ }
65
+ }
66
+ return false;
67
+ }); };
68
+ // Helper to resolve first matching mapping
69
+ var resolve_mapping = function (mappings, responses) {
70
+ for (var _i = 0, mappings_1 = mappings; _i < mappings_1.length; _i++) {
71
+ var mapping = mappings_1[_i];
72
+ if (!mapping.conditions)
73
+ continue;
74
+ if (evaluate_mapping_conditions(mapping.conditions, responses)) {
75
+ return mapping;
76
+ }
77
+ }
78
+ return undefined;
79
+ };
80
+ export var beluga_pharmacy_mappings_tests = function (_a) {
81
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
82
+ return __awaiter(void 0, void 0, void 0, function () {
83
+ var testFormId;
84
+ return __generator(this, function (_b) {
85
+ switch (_b.label) {
86
+ case 0:
87
+ log_header("Beluga Pharmacy Mappings Tests");
88
+ _b.label = 1;
89
+ case 1:
90
+ _b.trys.push([1, , 18, 21]);
91
+ return [4 /*yield*/, async_test("Create form with belugaPharmacyMappings", function () { return __awaiter(void 0, void 0, void 0, function () {
92
+ var mappings, form, fetched;
93
+ var _a, _b;
94
+ return __generator(this, function (_c) {
95
+ switch (_c.label) {
96
+ case 0:
97
+ mappings = [
98
+ {
99
+ pharmacyId: "pharmacy-001",
100
+ patientPreference: JSON.stringify([{ name: "Med A", strength: "10mg", quantity: "30", refills: "3", daysSupply: "30", sig: "Take once daily", dispenseUnit: "Tablet", medId: "med-001" }]),
101
+ conditions: { $and: [{ condition: { "state": "CA" } }, { condition: { "med_type": "weightLoss" } }] },
102
+ },
103
+ ];
104
+ return [4 /*yield*/, sdk.api.forms.createOne({
105
+ title: 'Beluga Pharmacy Mappings Test Form',
106
+ belugaPharmacyMappings: mappings,
107
+ })];
108
+ case 1:
109
+ form = _c.sent();
110
+ testFormId = form.id;
111
+ return [4 /*yield*/, sdk.api.forms.getOne(form.id)];
112
+ case 2:
113
+ fetched = _c.sent();
114
+ return [2 /*return*/, (((_a = fetched.belugaPharmacyMappings) === null || _a === void 0 ? void 0 : _a.length) === 1
115
+ && fetched.belugaPharmacyMappings[0].pharmacyId === "pharmacy-001"
116
+ && !!((_b = fetched.belugaPharmacyMappings[0].conditions) === null || _b === void 0 ? void 0 : _b.$and))];
117
+ }
118
+ });
119
+ }); }, { expectedResult: true })];
120
+ case 2:
121
+ _b.sent();
122
+ return [4 /*yield*/, async_test("Update belugaPharmacyMappings on existing form", function () { return __awaiter(void 0, void 0, void 0, function () {
123
+ var updatedMappings, fetched;
124
+ var _a;
125
+ return __generator(this, function (_b) {
126
+ switch (_b.label) {
127
+ case 0:
128
+ if (!testFormId)
129
+ throw new Error("No test form");
130
+ updatedMappings = [
131
+ {
132
+ pharmacyId: "pharmacy-002",
133
+ patientPreference: JSON.stringify([{ name: "Med B", strength: "20mg", quantity: "60", refills: "2", daysSupply: "30", sig: "Take twice daily", dispenseUnit: "Capsule", medId: "med-002" }]),
134
+ conditions: { condition: { "state": "NY" } },
135
+ },
136
+ {
137
+ pharmacyId: "pharmacy-003",
138
+ patientPreference: "[]",
139
+ conditions: { $or: [{ condition: { "state": "TX" } }, { condition: { "state": "FL" } }] },
140
+ },
141
+ ];
142
+ return [4 /*yield*/, sdk.api.forms.updateOne(testFormId, { belugaPharmacyMappings: updatedMappings }, { replaceObjectFields: true })];
143
+ case 1:
144
+ _b.sent();
145
+ return [4 /*yield*/, sdk.api.forms.getOne(testFormId)];
146
+ case 2:
147
+ fetched = _b.sent();
148
+ return [2 /*return*/, (((_a = fetched.belugaPharmacyMappings) === null || _a === void 0 ? void 0 : _a.length) === 2
149
+ && fetched.belugaPharmacyMappings[0].pharmacyId === "pharmacy-002"
150
+ && fetched.belugaPharmacyMappings[1].pharmacyId === "pharmacy-003")];
151
+ }
152
+ });
153
+ }); }, { expectedResult: true })];
154
+ case 3:
155
+ _b.sent();
156
+ return [4 /*yield*/, async_test("Save with nested CompoundFilter structure", function () { return __awaiter(void 0, void 0, void 0, function () {
157
+ var nestedMappings, fetched;
158
+ var _a, _b;
159
+ return __generator(this, function (_c) {
160
+ switch (_c.label) {
161
+ case 0:
162
+ if (!testFormId)
163
+ throw new Error("No test form");
164
+ nestedMappings = [
165
+ {
166
+ pharmacyId: "pharmacy-nested",
167
+ patientPreference: "[]",
168
+ conditions: {
169
+ $and: [
170
+ { $or: [{ condition: { "state": "CA" } }, { condition: { "state": "NY" } }] },
171
+ { condition: { "med_type": "weightLoss" } },
172
+ ]
173
+ },
174
+ },
175
+ ];
176
+ return [4 /*yield*/, sdk.api.forms.updateOne(testFormId, { belugaPharmacyMappings: nestedMappings }, { replaceObjectFields: true })];
177
+ case 1:
178
+ _c.sent();
179
+ return [4 /*yield*/, sdk.api.forms.getOne(testFormId)];
180
+ case 2:
181
+ fetched = _c.sent();
182
+ return [2 /*return*/, (((_a = fetched.belugaPharmacyMappings) === null || _a === void 0 ? void 0 : _a.length) === 1
183
+ && fetched.belugaPharmacyMappings[0].pharmacyId === "pharmacy-nested"
184
+ && !!((_b = fetched.belugaPharmacyMappings[0].conditions) === null || _b === void 0 ? void 0 : _b.$and))];
185
+ }
186
+ });
187
+ }); }, { expectedResult: true })
188
+ // --- 6b. Conditional logic evaluation tests ---
189
+ ];
190
+ case 4:
191
+ _b.sent();
192
+ // --- 6b. Conditional logic evaluation tests ---
193
+ return [4 /*yield*/, async_test("Simple equality: condition matches response", function () { return __awaiter(void 0, void 0, void 0, function () {
194
+ return __generator(this, function (_a) {
195
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "state": "CA" } }, [{ externalId: "state", value: "CA" }])];
196
+ });
197
+ }); }, { expectedResult: true })];
198
+ case 5:
199
+ // --- 6b. Conditional logic evaluation tests ---
200
+ _b.sent();
201
+ return [4 /*yield*/, async_test("Simple equality miss: condition does not match response", function () { return __awaiter(void 0, void 0, void 0, function () {
202
+ return __generator(this, function (_a) {
203
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "state": "CA" } }, [{ externalId: "state", value: "NY" }])];
204
+ });
205
+ }); }, { expectedResult: false })];
206
+ case 6:
207
+ _b.sent();
208
+ return [4 /*yield*/, async_test("$and: two conditions, both match", function () { return __awaiter(void 0, void 0, void 0, function () {
209
+ return __generator(this, function (_a) {
210
+ return [2 /*return*/, evaluate_mapping_conditions({ $and: [{ condition: { "state": "CA" } }, { condition: { "med_type": "weightLoss" } }] }, [{ externalId: "state", value: "CA" }, { externalId: "med_type", value: "weightLoss" }])];
211
+ });
212
+ }); }, { expectedResult: true })];
213
+ case 7:
214
+ _b.sent();
215
+ return [4 /*yield*/, async_test("$and: two conditions, one misses", function () { return __awaiter(void 0, void 0, void 0, function () {
216
+ return __generator(this, function (_a) {
217
+ return [2 /*return*/, evaluate_mapping_conditions({ $and: [{ condition: { "state": "CA" } }, { condition: { "med_type": "weightLoss" } }] }, [{ externalId: "state", value: "CA" }, { externalId: "med_type", value: "skincare" }])];
218
+ });
219
+ }); }, { expectedResult: false })];
220
+ case 8:
221
+ _b.sent();
222
+ return [4 /*yield*/, async_test("$or: two conditions, one matches", function () { return __awaiter(void 0, void 0, void 0, function () {
223
+ return __generator(this, function (_a) {
224
+ return [2 /*return*/, evaluate_mapping_conditions({ $or: [{ condition: { "state": "CA" } }, { condition: { "state": "NY" } }] }, [{ externalId: "state", value: "NY" }])];
225
+ });
226
+ }); }, { expectedResult: true })];
227
+ case 9:
228
+ _b.sent();
229
+ return [4 /*yield*/, async_test("$or: two conditions, neither matches", function () { return __awaiter(void 0, void 0, void 0, function () {
230
+ return __generator(this, function (_a) {
231
+ return [2 /*return*/, evaluate_mapping_conditions({ $or: [{ condition: { "state": "CA" } }, { condition: { "state": "NY" } }] }, [{ externalId: "state", value: "TX" }])];
232
+ });
233
+ }); }, { expectedResult: false })];
234
+ case 10:
235
+ _b.sent();
236
+ return [4 /*yield*/, async_test("$contains: value includes substring", function () { return __awaiter(void 0, void 0, void 0, function () {
237
+ return __generator(this, function (_a) {
238
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "meds": { $contains: "GLP" } } }, [{ externalId: "meds", value: "GLP-1 agonist" }])];
239
+ });
240
+ }); }, { expectedResult: true })];
241
+ case 11:
242
+ _b.sent();
243
+ return [4 /*yield*/, async_test("$ne: value does not equal", function () { return __awaiter(void 0, void 0, void 0, function () {
244
+ return __generator(this, function (_a) {
245
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "state": { $ne: "CA" } } }, [{ externalId: "state", value: "NY" }])];
246
+ });
247
+ }); }, { expectedResult: true })];
248
+ case 12:
249
+ _b.sent();
250
+ return [4 /*yield*/, async_test("$exists: field present", function () { return __awaiter(void 0, void 0, void 0, function () {
251
+ return __generator(this, function (_a) {
252
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "pharmacyOverride": { $exists: true } } }, [{ externalId: "pharmacyOverride", value: "some-value" }])];
253
+ });
254
+ }); }, { expectedResult: true })];
255
+ case 13:
256
+ _b.sent();
257
+ return [4 /*yield*/, async_test("$exists: field absent", function () { return __awaiter(void 0, void 0, void 0, function () {
258
+ return __generator(this, function (_a) {
259
+ return [2 /*return*/, evaluate_mapping_conditions({ condition: { "pharmacyOverride": { $exists: true } } }, [{ externalId: "other_field", value: "some-value" }])];
260
+ });
261
+ }); }, { expectedResult: false })];
262
+ case 14:
263
+ _b.sent();
264
+ return [4 /*yield*/, async_test("Nested compound: $and with $or", function () { return __awaiter(void 0, void 0, void 0, function () {
265
+ return __generator(this, function (_a) {
266
+ return [2 /*return*/, evaluate_mapping_conditions({
267
+ $and: [
268
+ { $or: [{ condition: { "state": "CA" } }, { condition: { "state": "NY" } }] },
269
+ { condition: { "med_type": "weightLoss" } },
270
+ ]
271
+ }, [{ externalId: "state", value: "NY" }, { externalId: "med_type", value: "weightLoss" }])];
272
+ });
273
+ }); }, { expectedResult: true })];
274
+ case 15:
275
+ _b.sent();
276
+ return [4 /*yield*/, async_test("First-match-wins: multiple mappings, first matching returned", function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ var mappings, result;
278
+ return __generator(this, function (_a) {
279
+ mappings = [
280
+ {
281
+ pharmacyId: "pharmacy-first",
282
+ patientPreference: "[]",
283
+ conditions: { condition: { "state": "CA" } },
284
+ },
285
+ {
286
+ pharmacyId: "pharmacy-second",
287
+ patientPreference: "[]",
288
+ conditions: { condition: { "state": "CA" } },
289
+ },
290
+ ];
291
+ result = resolve_mapping(mappings, [{ externalId: "state", value: "CA" }]);
292
+ return [2 /*return*/, (result === null || result === void 0 ? void 0 : result.pharmacyId) === "pharmacy-first"];
293
+ });
294
+ }); }, { expectedResult: true })];
295
+ case 16:
296
+ _b.sent();
297
+ return [4 /*yield*/, async_test("No match: no mappings match, returns undefined", function () { return __awaiter(void 0, void 0, void 0, function () {
298
+ var mappings, result;
299
+ return __generator(this, function (_a) {
300
+ mappings = [
301
+ {
302
+ pharmacyId: "pharmacy-ca",
303
+ patientPreference: "[]",
304
+ conditions: { condition: { "state": "CA" } },
305
+ },
306
+ ];
307
+ result = resolve_mapping(mappings, [{ externalId: "state", value: "TX" }]);
308
+ return [2 /*return*/, result === undefined];
309
+ });
310
+ }); }, { expectedResult: true })];
311
+ case 17:
312
+ _b.sent();
313
+ return [3 /*break*/, 21];
314
+ case 18:
315
+ if (!testFormId) return [3 /*break*/, 20];
316
+ return [4 /*yield*/, sdk.api.forms.deleteOne(testFormId).catch(console.error)];
317
+ case 19:
318
+ _b.sent();
319
+ _b.label = 20;
320
+ case 20: return [7 /*endfinally*/];
321
+ case 21: return [2 /*return*/];
322
+ }
323
+ });
324
+ });
325
+ };
326
+ if (require.main === module) {
327
+ console.log("Using API URL: ".concat(host));
328
+ var sdk_1 = new Session({ host: host });
329
+ var sdkNonAdmin_1 = new Session({ host: host });
330
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
331
+ return __generator(this, function (_a) {
332
+ switch (_a.label) {
333
+ case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
334
+ case 1:
335
+ _a.sent();
336
+ return [4 /*yield*/, beluga_pharmacy_mappings_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
337
+ case 2:
338
+ _a.sent();
339
+ return [2 /*return*/];
340
+ }
341
+ });
342
+ }); };
343
+ runTests()
344
+ .then(function () {
345
+ console.log("Beluga pharmacy mappings test suite completed successfully");
346
+ process.exit(0);
347
+ })
348
+ .catch(function (error) {
349
+ console.error("Beluga pharmacy mappings test suite failed:", error);
350
+ process.exit(1);
351
+ });
352
+ }
353
+ //# sourceMappingURL=beluga_pharmacy_mappings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beluga_pharmacy_mappings.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_pharmacy_mappings.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar_event_limits.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/calendar_event_limits.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAiCnD,eAAO,MAAM,gCAAgC;UAChB,MAAM;QAAM,MAAM,IAAI;GA4oBlD,CAAA;AAKD,eAAO,MAAM,2BAA2B;SAAwC,OAAO;iBAAe,OAAO;mBAwlB5G,CAAA"}
1
+ {"version":3,"file":"calendar_event_limits.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/calendar_event_limits.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAiCnD,eAAO,MAAM,gCAAgC;UAChB,MAAM;QAAM,MAAM,IAAI;GA+0BlD,CAAA;AAKD,eAAO,MAAM,2BAA2B;SAAwC,OAAO;iBAAe,OAAO;mBAwlB5G,CAAA"}
@@ -618,6 +618,169 @@ export var calendar_event_limits_unit_tests = function () {
618
618
  assertEqual(result, false, 'Should allow for 2-day period with event 2 days ago');
619
619
  }
620
620
  });
621
+ // === otherTemplateIds (OR logic) tests ===
622
+ var TEMPLATE_B = "templateB456";
623
+ var TEMPLATE_C = "templateC789";
624
+ // Test 21: otherTemplateIds - booking a secondary template should count toward the limit
625
+ tests.push({
626
+ name: 'otherTemplateIds - secondary template counts toward limit',
627
+ fn: function () {
628
+ var oct1 = new Date('2025-10-01T18:00:00.000Z').getTime();
629
+ var limits = [{
630
+ templateId: TEMPLATE_ID,
631
+ otherTemplateIds: [TEMPLATE_B],
632
+ period: 1,
633
+ limit: 1,
634
+ }];
635
+ var existingEvents = [
636
+ createEvent(oct1, TEMPLATE_ID), // 1 event of primary template
637
+ ];
638
+ // Booking template B should be blocked because the shared limit is reached
639
+ var result = slot_violates_calendar_event_limits({
640
+ slotStartTimeInMS: oct1,
641
+ templateId: TEMPLATE_B,
642
+ userId: USER_ID,
643
+ calendarEventLimits: limits,
644
+ existingEvents: existingEvents,
645
+ timezone: 'America/New_York',
646
+ });
647
+ assertEqual(result, true, 'Should block secondary template when shared limit reached');
648
+ }
649
+ });
650
+ // Test 22: otherTemplateIds - events of secondary template count toward primary booking
651
+ tests.push({
652
+ name: 'otherTemplateIds - secondary template events count when booking primary',
653
+ fn: function () {
654
+ var oct1 = new Date('2025-10-01T18:00:00.000Z').getTime();
655
+ var limits = [{
656
+ templateId: TEMPLATE_ID,
657
+ otherTemplateIds: [TEMPLATE_B],
658
+ period: 1,
659
+ limit: 1,
660
+ }];
661
+ var existingEvents = [
662
+ createEvent(oct1, TEMPLATE_B), // 1 event of secondary template
663
+ ];
664
+ // Booking primary template should be blocked because a secondary template event used the limit
665
+ var result = slot_violates_calendar_event_limits({
666
+ slotStartTimeInMS: oct1,
667
+ templateId: TEMPLATE_ID,
668
+ userId: USER_ID,
669
+ calendarEventLimits: limits,
670
+ existingEvents: existingEvents,
671
+ timezone: 'America/New_York',
672
+ });
673
+ assertEqual(result, true, 'Should block primary template when secondary events fill limit');
674
+ }
675
+ });
676
+ // Test 23: otherTemplateIds - mixed events from both templates count together
677
+ tests.push({
678
+ name: 'otherTemplateIds - mixed events count toward shared limit',
679
+ fn: function () {
680
+ var oct1_9am = new Date('2025-10-01T13:00:00.000Z').getTime();
681
+ var oct1_2pm = new Date('2025-10-01T18:00:00.000Z').getTime();
682
+ var oct1_5pm = new Date('2025-10-01T21:00:00.000Z').getTime();
683
+ var limits = [{
684
+ templateId: TEMPLATE_ID,
685
+ otherTemplateIds: [TEMPLATE_B],
686
+ period: 1,
687
+ limit: 2,
688
+ }];
689
+ var existingEvents = [
690
+ createEvent(oct1_9am, TEMPLATE_ID),
691
+ createEvent(oct1_2pm, TEMPLATE_B), // 1 secondary
692
+ ];
693
+ // Both count toward limit of 2, so a 3rd should be blocked
694
+ var result = slot_violates_calendar_event_limits({
695
+ slotStartTimeInMS: oct1_5pm,
696
+ templateId: TEMPLATE_ID,
697
+ userId: USER_ID,
698
+ calendarEventLimits: limits,
699
+ existingEvents: existingEvents,
700
+ timezone: 'America/New_York',
701
+ });
702
+ assertEqual(result, true, 'Should block when mixed events reach shared limit');
703
+ }
704
+ });
705
+ // Test 24: otherTemplateIds - unrelated template should NOT be affected
706
+ tests.push({
707
+ name: 'otherTemplateIds - unrelated template not affected by shared limit',
708
+ fn: function () {
709
+ var oct1 = new Date('2025-10-01T18:00:00.000Z').getTime();
710
+ var limits = [{
711
+ templateId: TEMPLATE_ID,
712
+ otherTemplateIds: [TEMPLATE_B],
713
+ period: 1,
714
+ limit: 1,
715
+ }];
716
+ var existingEvents = [
717
+ createEvent(oct1, TEMPLATE_ID), // Limit reached for A+B group
718
+ ];
719
+ // Template C is not part of the group, should be allowed
720
+ var result = slot_violates_calendar_event_limits({
721
+ slotStartTimeInMS: oct1,
722
+ templateId: TEMPLATE_C,
723
+ userId: USER_ID,
724
+ calendarEventLimits: limits,
725
+ existingEvents: existingEvents,
726
+ timezone: 'America/New_York',
727
+ });
728
+ assertEqual(result, false, 'Should allow unrelated template even when shared limit reached');
729
+ }
730
+ });
731
+ // Test 25: otherTemplateIds - under limit should allow
732
+ tests.push({
733
+ name: 'otherTemplateIds - under shared limit should allow',
734
+ fn: function () {
735
+ var oct1_9am = new Date('2025-10-01T13:00:00.000Z').getTime();
736
+ var oct1_2pm = new Date('2025-10-01T18:00:00.000Z').getTime();
737
+ var limits = [{
738
+ templateId: TEMPLATE_ID,
739
+ otherTemplateIds: [TEMPLATE_B],
740
+ period: 1,
741
+ limit: 3,
742
+ }];
743
+ var existingEvents = [
744
+ createEvent(oct1_9am, TEMPLATE_ID),
745
+ createEvent(oct1_9am, TEMPLATE_B), // 1 event, total = 2
746
+ ];
747
+ // Under limit of 3, should allow
748
+ var result = slot_violates_calendar_event_limits({
749
+ slotStartTimeInMS: oct1_2pm,
750
+ templateId: TEMPLATE_B,
751
+ userId: USER_ID,
752
+ calendarEventLimits: limits,
753
+ existingEvents: existingEvents,
754
+ timezone: 'America/New_York',
755
+ });
756
+ assertEqual(result, false, 'Should allow when under shared limit');
757
+ }
758
+ });
759
+ // Test 26: No otherTemplateIds - backward compatibility
760
+ tests.push({
761
+ name: 'No otherTemplateIds - backward compatible single-template behavior',
762
+ fn: function () {
763
+ var oct1 = new Date('2025-10-01T18:00:00.000Z').getTime();
764
+ var limits = [{
765
+ templateId: TEMPLATE_ID,
766
+ period: 1,
767
+ limit: 1,
768
+ }];
769
+ var existingEvents = [
770
+ createEvent(oct1, TEMPLATE_B), // Event of different template
771
+ ];
772
+ // Without otherTemplateIds, template B events should NOT count toward template A's limit
773
+ var result = slot_violates_calendar_event_limits({
774
+ slotStartTimeInMS: oct1,
775
+ templateId: TEMPLATE_ID,
776
+ userId: USER_ID,
777
+ calendarEventLimits: limits,
778
+ existingEvents: existingEvents,
779
+ timezone: 'America/New_York',
780
+ });
781
+ assertEqual(result, false, 'Should not count other template events without otherTemplateIds');
782
+ }
783
+ });
621
784
  return tests;
622
785
  };
623
786
  // === INTEGRATION TESTS ===