@tellescope/sdk 1.256.3 → 1.256.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.
- package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js +145 -33
- package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
- package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js +145 -33
- package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/beluga_trigger_refill.test.ts +81 -0
- package/test_generated.pdf +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beluga_trigger_refill.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"beluga_trigger_refill.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,eAAO,MAAM,2BAA2B;SAAuC,OAAO;iBAAe,OAAO;mBA+L3G,CAAA"}
|
|
@@ -40,6 +40,7 @@ exports.beluga_trigger_refill_tests = void 0;
|
|
|
40
40
|
require('source-map-support').install();
|
|
41
41
|
var sdk_1 = require("../../sdk");
|
|
42
42
|
var testing_1 = require("@tellescope/testing");
|
|
43
|
+
var constants_1 = require("@tellescope/constants");
|
|
43
44
|
var setup_1 = require("../setup");
|
|
44
45
|
var host = process.env.API_URL || 'http://localhost:8080';
|
|
45
46
|
// Beluga Trigger Refill journey action tests (CU-86e2gbv7y).
|
|
@@ -52,22 +53,22 @@ var host = process.env.API_URL || 'http://localhost:8080';
|
|
|
52
53
|
var beluga_trigger_refill_tests = function (_a) {
|
|
53
54
|
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
54
55
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
-
var journeyId, formId, stepIds, journey_1, form_1, _i, stepIds_1, id;
|
|
56
|
-
return __generator(this, function (
|
|
57
|
-
switch (
|
|
56
|
+
var journeyId, formId, stepIds, enduserAId, enduserBId, otherPatientFormResponseId, automatedActionId, createdBelugaIntegrationId, journey_1, form_1, enduserA, enduserB, otherResponse, belugaIntegrationAvailable, existing, _b, created, e_1, automatedAction_1, _i, stepIds_1, id;
|
|
57
|
+
return __generator(this, function (_c) {
|
|
58
|
+
switch (_c.label) {
|
|
58
59
|
case 0:
|
|
59
60
|
(0, testing_1.log_header)("Beluga Trigger Refill Journey Action Tests");
|
|
60
61
|
stepIds = [];
|
|
61
|
-
|
|
62
|
+
_c.label = 1;
|
|
62
63
|
case 1:
|
|
63
|
-
|
|
64
|
+
_c.trys.push([1, , 24, 43]);
|
|
64
65
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Beluga Trigger Refill Test Journey' })];
|
|
65
66
|
case 2:
|
|
66
|
-
journey_1 =
|
|
67
|
+
journey_1 = _c.sent();
|
|
67
68
|
journeyId = journey_1.id;
|
|
68
69
|
return [4 /*yield*/, sdk.api.forms.createOne({ title: 'Beluga Trigger Refill Test Form' })];
|
|
69
70
|
case 3:
|
|
70
|
-
form_1 =
|
|
71
|
+
form_1 = _c.sent();
|
|
71
72
|
formId = form_1.id;
|
|
72
73
|
// Inline med IDs variant
|
|
73
74
|
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill step accepted (inline medIds)", function () { return sdk.api.automation_steps.createOne({
|
|
@@ -86,7 +87,7 @@ var beluga_trigger_refill_tests = function (_a) {
|
|
|
86
87
|
];
|
|
87
88
|
case 4:
|
|
88
89
|
// Inline med IDs variant
|
|
89
|
-
|
|
90
|
+
_c.sent();
|
|
90
91
|
// Organization mapping variant
|
|
91
92
|
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill step accepted (organization mapping)", function () { return sdk.api.automation_steps.createOne({
|
|
92
93
|
journeyId: journey_1.id,
|
|
@@ -103,7 +104,7 @@ var beluga_trigger_refill_tests = function (_a) {
|
|
|
103
104
|
];
|
|
104
105
|
case 5:
|
|
105
106
|
// Organization mapping variant
|
|
106
|
-
|
|
107
|
+
_c.sent();
|
|
107
108
|
// Invalid formId (not a mongo id) rejected
|
|
108
109
|
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill step rejected (invalid formId)", function () { return sdk.api.automation_steps.createOne({
|
|
109
110
|
journeyId: journey_1.id,
|
|
@@ -120,7 +121,7 @@ var beluga_trigger_refill_tests = function (_a) {
|
|
|
120
121
|
];
|
|
121
122
|
case 6:
|
|
122
123
|
// Invalid formId (not a mongo id) rejected
|
|
123
|
-
|
|
124
|
+
_c.sent();
|
|
124
125
|
// Missing formId rejected
|
|
125
126
|
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill step rejected (missing formId)", function () { return sdk.api.automation_steps.createOne({
|
|
126
127
|
journeyId: journey_1.id,
|
|
@@ -137,7 +138,7 @@ var beluga_trigger_refill_tests = function (_a) {
|
|
|
137
138
|
];
|
|
138
139
|
case 7:
|
|
139
140
|
// Missing formId rejected
|
|
140
|
-
|
|
141
|
+
_c.sent();
|
|
141
142
|
// Unexpected fields in a patient preference are stripped by objectValidator, not rejected —
|
|
142
143
|
// assert they never reach the stored config (the step itself is accepted)
|
|
143
144
|
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill step strips unexpected patientPreferences field", function () { return sdk.api.automation_steps.createOne({
|
|
@@ -156,39 +157,150 @@ var beluga_trigger_refill_tests = function (_a) {
|
|
|
156
157
|
var preference = (_a = s.action.info.patientPreferences) === null || _a === void 0 ? void 0 : _a[0];
|
|
157
158
|
return (preference === null || preference === void 0 ? void 0 : preference.medId) === 'med-123' && (preference === null || preference === void 0 ? void 0 : preference.pharmacyId) === undefined;
|
|
158
159
|
},
|
|
159
|
-
})
|
|
160
|
+
})
|
|
161
|
+
// ── Cross-patient guard (pre-deploy review H3) ──────────────────────────────
|
|
162
|
+
// The process endpoint reads journeyContext.formResponseId; without an ownership check a
|
|
163
|
+
// switchToRelatedContact step could point it at a DIFFERENT patient's form response and issue a
|
|
164
|
+
// refill against their visit. This exercises the guard end-to-end: it returns BEFORE any live
|
|
165
|
+
// Beluga call (no sandbox creds needed), but integration resolution precedes it in the handler,
|
|
166
|
+
// so a Beluga integration must exist — the test self-skips when one can't be created.
|
|
167
|
+
];
|
|
160
168
|
case 8:
|
|
161
169
|
// Unexpected fields in a patient preference are stripped by objectValidator, not rejected —
|
|
162
170
|
// assert they never reach the stored config (the step itself is accepted)
|
|
163
|
-
|
|
164
|
-
return [
|
|
171
|
+
_c.sent();
|
|
172
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Beluga', lname: 'PatientA' })];
|
|
165
173
|
case 9:
|
|
166
|
-
|
|
167
|
-
|
|
174
|
+
enduserA = _c.sent();
|
|
175
|
+
enduserAId = enduserA.id;
|
|
176
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Beluga', lname: 'PatientB' })];
|
|
168
177
|
case 10:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return [4 /*yield*/, sdk.api.
|
|
178
|
+
enduserB = _c.sent();
|
|
179
|
+
enduserBId = enduserB.id;
|
|
180
|
+
return [4 /*yield*/, sdk.api.form_responses.createOne({
|
|
181
|
+
formId: form_1.id,
|
|
182
|
+
formTitle: form_1.title,
|
|
183
|
+
enduserId: enduserA.id,
|
|
184
|
+
})];
|
|
172
185
|
case 11:
|
|
173
|
-
|
|
174
|
-
|
|
186
|
+
otherResponse = _c.sent();
|
|
187
|
+
otherPatientFormResponseId = otherResponse.id;
|
|
188
|
+
belugaIntegrationAvailable = false;
|
|
189
|
+
_c.label = 12;
|
|
175
190
|
case 12:
|
|
176
|
-
|
|
177
|
-
return [
|
|
191
|
+
_c.trys.push([12, 14, , 15]);
|
|
192
|
+
return [4 /*yield*/, sdk.api.integrations.load_redacted({})];
|
|
178
193
|
case 13:
|
|
179
|
-
|
|
180
|
-
|
|
194
|
+
existing = _c.sent();
|
|
195
|
+
belugaIntegrationAvailable = !!existing.integrations.find(function (i) { return i.title === constants_1.BELUGA_TITLE; });
|
|
196
|
+
return [3 /*break*/, 15];
|
|
181
197
|
case 14:
|
|
182
|
-
_b.sent();
|
|
183
|
-
|
|
198
|
+
_b = _c.sent();
|
|
199
|
+
return [3 /*break*/, 15];
|
|
184
200
|
case 15:
|
|
185
|
-
if (
|
|
186
|
-
|
|
201
|
+
if (!!belugaIntegrationAvailable) return [3 /*break*/, 19];
|
|
202
|
+
_c.label = 16;
|
|
187
203
|
case 16:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
204
|
+
_c.trys.push([16, 18, , 19]);
|
|
205
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
206
|
+
title: constants_1.BELUGA_TITLE,
|
|
207
|
+
authentication: {
|
|
208
|
+
type: 'oauth2',
|
|
209
|
+
info: { access_token: 'test-access-token', refresh_token: 'test-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() },
|
|
210
|
+
},
|
|
211
|
+
})];
|
|
212
|
+
case 17:
|
|
213
|
+
created = _c.sent();
|
|
214
|
+
createdBelugaIntegrationId = created.id;
|
|
215
|
+
belugaIntegrationAvailable = true;
|
|
216
|
+
return [3 /*break*/, 19];
|
|
217
|
+
case 18:
|
|
218
|
+
e_1 = _c.sent();
|
|
219
|
+
console.log("Could not create a Beluga integration; skipping cross-patient guard test:", e_1);
|
|
220
|
+
return [3 /*break*/, 19];
|
|
221
|
+
case 19:
|
|
222
|
+
if (!belugaIntegrationAvailable) return [3 /*break*/, 22];
|
|
223
|
+
return [4 /*yield*/, sdk.api.automated_actions.createOne({
|
|
224
|
+
journeyId: journey_1.id,
|
|
225
|
+
automationStepId: stepIds[0],
|
|
226
|
+
enduserId: enduserB.id,
|
|
227
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
228
|
+
action: {
|
|
229
|
+
type: 'belugaTriggerRefill',
|
|
230
|
+
info: { formId: form_1.id, patientPreferences: [{ medId: 'med-123' }] },
|
|
231
|
+
},
|
|
232
|
+
status: 'active',
|
|
233
|
+
processAfter: new Date().getTime() + 60 * 60 * 1000,
|
|
234
|
+
journeyContext: { formResponseId: otherResponse.id },
|
|
235
|
+
})];
|
|
236
|
+
case 20:
|
|
237
|
+
automatedAction_1 = _c.sent();
|
|
238
|
+
automatedActionId = automatedAction_1.id;
|
|
239
|
+
return [4 /*yield*/, (0, testing_1.async_test)("belugaTriggerRefill rejects a form response owned by a different patient", function () { return sdk.api.automated_actions.process({ automatedActionId: automatedAction_1.id }); }, { onResult: function (r) { return (r === null || r === void 0 ? void 0 : r.success) === false && /does not belong to this patient/i.test((r === null || r === void 0 ? void 0 : r.error) || ''); } })];
|
|
240
|
+
case 21:
|
|
241
|
+
_c.sent();
|
|
242
|
+
return [3 /*break*/, 23];
|
|
243
|
+
case 22:
|
|
244
|
+
console.log("⏭️ Skipping belugaTriggerRefill cross-patient guard test (no Beluga integration available)");
|
|
245
|
+
_c.label = 23;
|
|
246
|
+
case 23: return [3 /*break*/, 43];
|
|
247
|
+
case 24:
|
|
248
|
+
if (!automatedActionId) return [3 /*break*/, 26];
|
|
249
|
+
return [4 /*yield*/, sdk.api.automated_actions.deleteOne(automatedActionId).catch(console.error)];
|
|
250
|
+
case 25:
|
|
251
|
+
_c.sent();
|
|
252
|
+
_c.label = 26;
|
|
253
|
+
case 26:
|
|
254
|
+
if (!otherPatientFormResponseId) return [3 /*break*/, 28];
|
|
255
|
+
return [4 /*yield*/, sdk.api.form_responses.deleteOne(otherPatientFormResponseId).catch(console.error)];
|
|
256
|
+
case 27:
|
|
257
|
+
_c.sent();
|
|
258
|
+
_c.label = 28;
|
|
259
|
+
case 28:
|
|
260
|
+
if (!enduserAId) return [3 /*break*/, 30];
|
|
261
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserAId).catch(console.error)];
|
|
262
|
+
case 29:
|
|
263
|
+
_c.sent();
|
|
264
|
+
_c.label = 30;
|
|
265
|
+
case 30:
|
|
266
|
+
if (!enduserBId) return [3 /*break*/, 32];
|
|
267
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserBId).catch(console.error)];
|
|
268
|
+
case 31:
|
|
269
|
+
_c.sent();
|
|
270
|
+
_c.label = 32;
|
|
271
|
+
case 32:
|
|
272
|
+
if (!createdBelugaIntegrationId) return [3 /*break*/, 34];
|
|
273
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(createdBelugaIntegrationId).catch(console.error)];
|
|
274
|
+
case 33:
|
|
275
|
+
_c.sent();
|
|
276
|
+
_c.label = 34;
|
|
277
|
+
case 34:
|
|
278
|
+
_i = 0, stepIds_1 = stepIds;
|
|
279
|
+
_c.label = 35;
|
|
280
|
+
case 35:
|
|
281
|
+
if (!(_i < stepIds_1.length)) return [3 /*break*/, 38];
|
|
282
|
+
id = stepIds_1[_i];
|
|
283
|
+
return [4 /*yield*/, sdk.api.automation_steps.deleteOne(id).catch(console.error)];
|
|
284
|
+
case 36:
|
|
285
|
+
_c.sent();
|
|
286
|
+
_c.label = 37;
|
|
287
|
+
case 37:
|
|
288
|
+
_i++;
|
|
289
|
+
return [3 /*break*/, 35];
|
|
290
|
+
case 38:
|
|
291
|
+
if (!formId) return [3 /*break*/, 40];
|
|
292
|
+
return [4 /*yield*/, sdk.api.forms.deleteOne(formId).catch(console.error)];
|
|
293
|
+
case 39:
|
|
294
|
+
_c.sent();
|
|
295
|
+
_c.label = 40;
|
|
296
|
+
case 40:
|
|
297
|
+
if (!journeyId) return [3 /*break*/, 42];
|
|
298
|
+
return [4 /*yield*/, sdk.api.journeys.deleteOne(journeyId).catch(console.error)];
|
|
299
|
+
case 41:
|
|
300
|
+
_c.sent();
|
|
301
|
+
_c.label = 42;
|
|
302
|
+
case 42: return [7 /*endfinally*/];
|
|
303
|
+
case 43: return [2 /*return*/];
|
|
192
304
|
}
|
|
193
305
|
});
|
|
194
306
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beluga_trigger_refill.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,iCAAmC;AACnC,+CAI4B;AAC5B,kCAAsC;AAEtC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAgC,CAAA;AAEpE,6DAA6D;AAC7D,EAAE;AACF,oFAAoF;AACpF,gGAAgG;AAChG,6FAA6F;AAC7F,+FAA+F;AAC/F,kFAAkF;AAC3E,IAAM,2BAA2B,GAAG,UAAO,EAA4D;QAA1D,GAAG,SAAA,EAAE,WAAW,iBAAA;;;;;;oBAClE,IAAA,oBAAU,EAAC,4CAA4C,CAAC,CAAA;oBAIlD,OAAO,GAAa,EAAE,CAAA;;;;
|
|
1
|
+
{"version":3,"file":"beluga_trigger_refill.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beluga_trigger_refill.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"beluga_trigger_refill.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,eAAO,MAAM,2BAA2B;SAAuC,OAAO;iBAAe,OAAO;mBA+L3G,CAAA"}
|
|
@@ -37,6 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
require('source-map-support').install();
|
|
38
38
|
import { Session } from "../../sdk";
|
|
39
39
|
import { async_test, log_header, passOnAnyResult, } from "@tellescope/testing";
|
|
40
|
+
import { BELUGA_TITLE } from "@tellescope/constants";
|
|
40
41
|
import { setup_tests } from "../setup";
|
|
41
42
|
var host = process.env.API_URL || 'http://localhost:8080';
|
|
42
43
|
// Beluga Trigger Refill journey action tests (CU-86e2gbv7y).
|
|
@@ -49,22 +50,22 @@ var host = process.env.API_URL || 'http://localhost:8080';
|
|
|
49
50
|
export var beluga_trigger_refill_tests = function (_a) {
|
|
50
51
|
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
51
52
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
-
var journeyId, formId, stepIds, journey_1, form_1, _i, stepIds_1, id;
|
|
53
|
-
return __generator(this, function (
|
|
54
|
-
switch (
|
|
53
|
+
var journeyId, formId, stepIds, enduserAId, enduserBId, otherPatientFormResponseId, automatedActionId, createdBelugaIntegrationId, journey_1, form_1, enduserA, enduserB, otherResponse, belugaIntegrationAvailable, existing, _b, created, e_1, automatedAction_1, _i, stepIds_1, id;
|
|
54
|
+
return __generator(this, function (_c) {
|
|
55
|
+
switch (_c.label) {
|
|
55
56
|
case 0:
|
|
56
57
|
log_header("Beluga Trigger Refill Journey Action Tests");
|
|
57
58
|
stepIds = [];
|
|
58
|
-
|
|
59
|
+
_c.label = 1;
|
|
59
60
|
case 1:
|
|
60
|
-
|
|
61
|
+
_c.trys.push([1, , 24, 43]);
|
|
61
62
|
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Beluga Trigger Refill Test Journey' })];
|
|
62
63
|
case 2:
|
|
63
|
-
journey_1 =
|
|
64
|
+
journey_1 = _c.sent();
|
|
64
65
|
journeyId = journey_1.id;
|
|
65
66
|
return [4 /*yield*/, sdk.api.forms.createOne({ title: 'Beluga Trigger Refill Test Form' })];
|
|
66
67
|
case 3:
|
|
67
|
-
form_1 =
|
|
68
|
+
form_1 = _c.sent();
|
|
68
69
|
formId = form_1.id;
|
|
69
70
|
// Inline med IDs variant
|
|
70
71
|
return [4 /*yield*/, async_test("belugaTriggerRefill step accepted (inline medIds)", function () { return sdk.api.automation_steps.createOne({
|
|
@@ -83,7 +84,7 @@ export var beluga_trigger_refill_tests = function (_a) {
|
|
|
83
84
|
];
|
|
84
85
|
case 4:
|
|
85
86
|
// Inline med IDs variant
|
|
86
|
-
|
|
87
|
+
_c.sent();
|
|
87
88
|
// Organization mapping variant
|
|
88
89
|
return [4 /*yield*/, async_test("belugaTriggerRefill step accepted (organization mapping)", function () { return sdk.api.automation_steps.createOne({
|
|
89
90
|
journeyId: journey_1.id,
|
|
@@ -100,7 +101,7 @@ export var beluga_trigger_refill_tests = function (_a) {
|
|
|
100
101
|
];
|
|
101
102
|
case 5:
|
|
102
103
|
// Organization mapping variant
|
|
103
|
-
|
|
104
|
+
_c.sent();
|
|
104
105
|
// Invalid formId (not a mongo id) rejected
|
|
105
106
|
return [4 /*yield*/, async_test("belugaTriggerRefill step rejected (invalid formId)", function () { return sdk.api.automation_steps.createOne({
|
|
106
107
|
journeyId: journey_1.id,
|
|
@@ -117,7 +118,7 @@ export var beluga_trigger_refill_tests = function (_a) {
|
|
|
117
118
|
];
|
|
118
119
|
case 6:
|
|
119
120
|
// Invalid formId (not a mongo id) rejected
|
|
120
|
-
|
|
121
|
+
_c.sent();
|
|
121
122
|
// Missing formId rejected
|
|
122
123
|
return [4 /*yield*/, async_test("belugaTriggerRefill step rejected (missing formId)", function () { return sdk.api.automation_steps.createOne({
|
|
123
124
|
journeyId: journey_1.id,
|
|
@@ -134,7 +135,7 @@ export var beluga_trigger_refill_tests = function (_a) {
|
|
|
134
135
|
];
|
|
135
136
|
case 7:
|
|
136
137
|
// Missing formId rejected
|
|
137
|
-
|
|
138
|
+
_c.sent();
|
|
138
139
|
// Unexpected fields in a patient preference are stripped by objectValidator, not rejected —
|
|
139
140
|
// assert they never reach the stored config (the step itself is accepted)
|
|
140
141
|
return [4 /*yield*/, async_test("belugaTriggerRefill step strips unexpected patientPreferences field", function () { return sdk.api.automation_steps.createOne({
|
|
@@ -153,39 +154,150 @@ export var beluga_trigger_refill_tests = function (_a) {
|
|
|
153
154
|
var preference = (_a = s.action.info.patientPreferences) === null || _a === void 0 ? void 0 : _a[0];
|
|
154
155
|
return (preference === null || preference === void 0 ? void 0 : preference.medId) === 'med-123' && (preference === null || preference === void 0 ? void 0 : preference.pharmacyId) === undefined;
|
|
155
156
|
},
|
|
156
|
-
})
|
|
157
|
+
})
|
|
158
|
+
// ── Cross-patient guard (pre-deploy review H3) ──────────────────────────────
|
|
159
|
+
// The process endpoint reads journeyContext.formResponseId; without an ownership check a
|
|
160
|
+
// switchToRelatedContact step could point it at a DIFFERENT patient's form response and issue a
|
|
161
|
+
// refill against their visit. This exercises the guard end-to-end: it returns BEFORE any live
|
|
162
|
+
// Beluga call (no sandbox creds needed), but integration resolution precedes it in the handler,
|
|
163
|
+
// so a Beluga integration must exist — the test self-skips when one can't be created.
|
|
164
|
+
];
|
|
157
165
|
case 8:
|
|
158
166
|
// Unexpected fields in a patient preference are stripped by objectValidator, not rejected —
|
|
159
167
|
// assert they never reach the stored config (the step itself is accepted)
|
|
160
|
-
|
|
161
|
-
return [
|
|
168
|
+
_c.sent();
|
|
169
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Beluga', lname: 'PatientA' })];
|
|
162
170
|
case 9:
|
|
163
|
-
|
|
164
|
-
|
|
171
|
+
enduserA = _c.sent();
|
|
172
|
+
enduserAId = enduserA.id;
|
|
173
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'Beluga', lname: 'PatientB' })];
|
|
165
174
|
case 10:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
return [4 /*yield*/, sdk.api.
|
|
175
|
+
enduserB = _c.sent();
|
|
176
|
+
enduserBId = enduserB.id;
|
|
177
|
+
return [4 /*yield*/, sdk.api.form_responses.createOne({
|
|
178
|
+
formId: form_1.id,
|
|
179
|
+
formTitle: form_1.title,
|
|
180
|
+
enduserId: enduserA.id,
|
|
181
|
+
})];
|
|
169
182
|
case 11:
|
|
170
|
-
|
|
171
|
-
|
|
183
|
+
otherResponse = _c.sent();
|
|
184
|
+
otherPatientFormResponseId = otherResponse.id;
|
|
185
|
+
belugaIntegrationAvailable = false;
|
|
186
|
+
_c.label = 12;
|
|
172
187
|
case 12:
|
|
173
|
-
|
|
174
|
-
return [
|
|
188
|
+
_c.trys.push([12, 14, , 15]);
|
|
189
|
+
return [4 /*yield*/, sdk.api.integrations.load_redacted({})];
|
|
175
190
|
case 13:
|
|
176
|
-
|
|
177
|
-
|
|
191
|
+
existing = _c.sent();
|
|
192
|
+
belugaIntegrationAvailable = !!existing.integrations.find(function (i) { return i.title === BELUGA_TITLE; });
|
|
193
|
+
return [3 /*break*/, 15];
|
|
178
194
|
case 14:
|
|
179
|
-
_b.sent();
|
|
180
|
-
|
|
195
|
+
_b = _c.sent();
|
|
196
|
+
return [3 /*break*/, 15];
|
|
181
197
|
case 15:
|
|
182
|
-
if (
|
|
183
|
-
|
|
198
|
+
if (!!belugaIntegrationAvailable) return [3 /*break*/, 19];
|
|
199
|
+
_c.label = 16;
|
|
184
200
|
case 16:
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
201
|
+
_c.trys.push([16, 18, , 19]);
|
|
202
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
203
|
+
title: BELUGA_TITLE,
|
|
204
|
+
authentication: {
|
|
205
|
+
type: 'oauth2',
|
|
206
|
+
info: { access_token: 'test-access-token', refresh_token: 'test-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() },
|
|
207
|
+
},
|
|
208
|
+
})];
|
|
209
|
+
case 17:
|
|
210
|
+
created = _c.sent();
|
|
211
|
+
createdBelugaIntegrationId = created.id;
|
|
212
|
+
belugaIntegrationAvailable = true;
|
|
213
|
+
return [3 /*break*/, 19];
|
|
214
|
+
case 18:
|
|
215
|
+
e_1 = _c.sent();
|
|
216
|
+
console.log("Could not create a Beluga integration; skipping cross-patient guard test:", e_1);
|
|
217
|
+
return [3 /*break*/, 19];
|
|
218
|
+
case 19:
|
|
219
|
+
if (!belugaIntegrationAvailable) return [3 /*break*/, 22];
|
|
220
|
+
return [4 /*yield*/, sdk.api.automated_actions.createOne({
|
|
221
|
+
journeyId: journey_1.id,
|
|
222
|
+
automationStepId: stepIds[0],
|
|
223
|
+
enduserId: enduserB.id,
|
|
224
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
225
|
+
action: {
|
|
226
|
+
type: 'belugaTriggerRefill',
|
|
227
|
+
info: { formId: form_1.id, patientPreferences: [{ medId: 'med-123' }] },
|
|
228
|
+
},
|
|
229
|
+
status: 'active',
|
|
230
|
+
processAfter: new Date().getTime() + 60 * 60 * 1000,
|
|
231
|
+
journeyContext: { formResponseId: otherResponse.id },
|
|
232
|
+
})];
|
|
233
|
+
case 20:
|
|
234
|
+
automatedAction_1 = _c.sent();
|
|
235
|
+
automatedActionId = automatedAction_1.id;
|
|
236
|
+
return [4 /*yield*/, async_test("belugaTriggerRefill rejects a form response owned by a different patient", function () { return sdk.api.automated_actions.process({ automatedActionId: automatedAction_1.id }); }, { onResult: function (r) { return (r === null || r === void 0 ? void 0 : r.success) === false && /does not belong to this patient/i.test((r === null || r === void 0 ? void 0 : r.error) || ''); } })];
|
|
237
|
+
case 21:
|
|
238
|
+
_c.sent();
|
|
239
|
+
return [3 /*break*/, 23];
|
|
240
|
+
case 22:
|
|
241
|
+
console.log("⏭️ Skipping belugaTriggerRefill cross-patient guard test (no Beluga integration available)");
|
|
242
|
+
_c.label = 23;
|
|
243
|
+
case 23: return [3 /*break*/, 43];
|
|
244
|
+
case 24:
|
|
245
|
+
if (!automatedActionId) return [3 /*break*/, 26];
|
|
246
|
+
return [4 /*yield*/, sdk.api.automated_actions.deleteOne(automatedActionId).catch(console.error)];
|
|
247
|
+
case 25:
|
|
248
|
+
_c.sent();
|
|
249
|
+
_c.label = 26;
|
|
250
|
+
case 26:
|
|
251
|
+
if (!otherPatientFormResponseId) return [3 /*break*/, 28];
|
|
252
|
+
return [4 /*yield*/, sdk.api.form_responses.deleteOne(otherPatientFormResponseId).catch(console.error)];
|
|
253
|
+
case 27:
|
|
254
|
+
_c.sent();
|
|
255
|
+
_c.label = 28;
|
|
256
|
+
case 28:
|
|
257
|
+
if (!enduserAId) return [3 /*break*/, 30];
|
|
258
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserAId).catch(console.error)];
|
|
259
|
+
case 29:
|
|
260
|
+
_c.sent();
|
|
261
|
+
_c.label = 30;
|
|
262
|
+
case 30:
|
|
263
|
+
if (!enduserBId) return [3 /*break*/, 32];
|
|
264
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduserBId).catch(console.error)];
|
|
265
|
+
case 31:
|
|
266
|
+
_c.sent();
|
|
267
|
+
_c.label = 32;
|
|
268
|
+
case 32:
|
|
269
|
+
if (!createdBelugaIntegrationId) return [3 /*break*/, 34];
|
|
270
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(createdBelugaIntegrationId).catch(console.error)];
|
|
271
|
+
case 33:
|
|
272
|
+
_c.sent();
|
|
273
|
+
_c.label = 34;
|
|
274
|
+
case 34:
|
|
275
|
+
_i = 0, stepIds_1 = stepIds;
|
|
276
|
+
_c.label = 35;
|
|
277
|
+
case 35:
|
|
278
|
+
if (!(_i < stepIds_1.length)) return [3 /*break*/, 38];
|
|
279
|
+
id = stepIds_1[_i];
|
|
280
|
+
return [4 /*yield*/, sdk.api.automation_steps.deleteOne(id).catch(console.error)];
|
|
281
|
+
case 36:
|
|
282
|
+
_c.sent();
|
|
283
|
+
_c.label = 37;
|
|
284
|
+
case 37:
|
|
285
|
+
_i++;
|
|
286
|
+
return [3 /*break*/, 35];
|
|
287
|
+
case 38:
|
|
288
|
+
if (!formId) return [3 /*break*/, 40];
|
|
289
|
+
return [4 /*yield*/, sdk.api.forms.deleteOne(formId).catch(console.error)];
|
|
290
|
+
case 39:
|
|
291
|
+
_c.sent();
|
|
292
|
+
_c.label = 40;
|
|
293
|
+
case 40:
|
|
294
|
+
if (!journeyId) return [3 /*break*/, 42];
|
|
295
|
+
return [4 /*yield*/, sdk.api.journeys.deleteOne(journeyId).catch(console.error)];
|
|
296
|
+
case 41:
|
|
297
|
+
_c.sent();
|
|
298
|
+
_c.label = 42;
|
|
299
|
+
case 42: return [7 /*endfinally*/];
|
|
300
|
+
case 43: return [2 /*return*/];
|
|
189
301
|
}
|
|
190
302
|
});
|
|
191
303
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beluga_trigger_refill.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAgC,CAAA;AAEpE,6DAA6D;AAC7D,EAAE;AACF,oFAAoF;AACpF,gGAAgG;AAChG,6FAA6F;AAC7F,+FAA+F;AAC/F,kFAAkF;AAClF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAO,EAA4D;QAA1D,GAAG,SAAA,EAAE,WAAW,iBAAA;;;;;;oBAClE,UAAU,CAAC,4CAA4C,CAAC,CAAA;oBAIlD,OAAO,GAAa,EAAE,CAAA;;;;
|
|
1
|
+
{"version":3,"file":"beluga_trigger_refill.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/beluga_trigger_refill.test.ts"],"names":[],"mappings":"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"}
|