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