@tellescope/sdk 1.256.8 → 1.256.9
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/appointment_link_expiration.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js +12 -9
- package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/create_note_action.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/create_note_action.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/create_note_action.test.js +237 -0
- package/lib/cjs/tests/api_tests/create_note_action.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js +262 -0
- package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js.map +1 -0
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +236 -201
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/enduser.d.ts +0 -1
- package/lib/esm/enduser.d.ts.map +1 -1
- package/lib/esm/sdk.d.ts +2 -3
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/session.d.ts +0 -1
- package/lib/esm/session.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/appointment_link_expiration.test.js +12 -9
- package/lib/esm/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
- package/lib/esm/tests/api_tests/create_note_action.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/create_note_action.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/create_note_action.test.js +233 -0
- package/lib/esm/tests/api_tests/create_note_action.test.js.map +1 -0
- package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js +258 -0
- package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js.map +1 -0
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +237 -202
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/tests/api_tests/appointment_link_expiration.test.ts +7 -2
- package/src/tests/api_tests/create_note_action.test.ts +168 -0
- package/src/tests/api_tests/webhook_raw_json_number.test.ts +152 -0
- package/src/tests/tests.ts +52 -1
- package/test_generated.pdf +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appointment_link_expiration.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/appointment_link_expiration.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"appointment_link_expiration.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/appointment_link_expiration.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwCnC,eAAO,MAAM,iCAAiC;SAA2B,OAAO;iBAAe,OAAO;mBA+BrG,CAAA"}
|
|
@@ -59,18 +59,21 @@ var decode_jwt_payload = function (token) {
|
|
|
59
59
|
// The API returns a /r/<token> shortlink, not the destination — follow one hop and pull the
|
|
60
60
|
// `token` query param out of the URL the patient actually lands on.
|
|
61
61
|
var resolve_redirect_token = function (link) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
|
-
var _a, status, headers, location, token;
|
|
63
|
-
return __generator(this, function (
|
|
64
|
-
switch (
|
|
65
|
-
case 0:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
var _a, pathname, search, followURL, _b, status, headers, location, token;
|
|
63
|
+
return __generator(this, function (_c) {
|
|
64
|
+
switch (_c.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
_a = new URL(link), pathname = _a.pathname, search = _a.search;
|
|
67
|
+
followURL = "".concat(host).concat(pathname).concat(search);
|
|
68
|
+
return [4 /*yield*/, axios_1.default.get(followURL, {
|
|
69
|
+
maxRedirects: 0,
|
|
70
|
+
validateStatus: function () { return true; },
|
|
71
|
+
})];
|
|
69
72
|
case 1:
|
|
70
|
-
|
|
73
|
+
_b = _c.sent(), status = _b.status, headers = _b.headers;
|
|
71
74
|
location = headers['location'];
|
|
72
75
|
if (!location)
|
|
73
|
-
throw new Error("Expected a redirect from ".concat(
|
|
76
|
+
throw new Error("Expected a redirect from ".concat(followURL, ", got status ").concat(status));
|
|
74
77
|
token = new URL(location).searchParams.get('token');
|
|
75
78
|
if (!token)
|
|
76
79
|
throw new Error("No token query param in redirect destination: ".concat(location));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appointment_link_expiration.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/appointment_link_expiration.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,gDAAyB;AAEzB,iCAAmC;AACnC,+CAA4D;AAC5D,kCAAsC;AAEtC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAA;AAE3D,IAAM,kBAAkB,GAAG,KAAK,CAAA;AAChC,IAAM,cAAc,GAAG,GAAG,CAAA,CAAC,8EAA8E;AAEzG,gGAAgG;AAChG,oEAAoE;AACpE,IAAM,kBAAkB,GAAG,UAAC,KAAa;IACjC,IAAA,KAAc,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAA3B,OAAO,QAAoB,CAAA;IACpC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtD,CAAA;AACnC,CAAC,CAAA;AAED,4FAA4F;AAC5F,oEAAoE;AACpE,IAAM,sBAAsB,GAAG,UAAO,IAAY
|
|
1
|
+
{"version":3,"file":"appointment_link_expiration.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/appointment_link_expiration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_note_action.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/create_note_action.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWnC,eAAO,MAAM,wBAAwB;SAA2B,OAAO;iBAAe,OAAO;mBAqI5F,CAAA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.create_note_action_tests = void 0;
|
|
51
|
+
require('source-map-support').install();
|
|
52
|
+
var sdk_1 = require("../../sdk");
|
|
53
|
+
var testing_1 = require("@tellescope/testing");
|
|
54
|
+
var setup_1 = require("../setup");
|
|
55
|
+
var host = process.env.API_URL || "http://localhost:8080";
|
|
56
|
+
// createNote journey action: creates a note on the enduser timeline with deterministic
|
|
57
|
+
// (merge-field) text, or AI-generated text when aiSummaryConfiguration.enabled is set.
|
|
58
|
+
// The deterministic path is fully covered here; the AI path asserts config round-trip and,
|
|
59
|
+
// when the org lacks Bedrock enablement/credits (typical dev org), the error path instead.
|
|
60
|
+
var create_note_action_tests = function (_a) {
|
|
61
|
+
var sdk = _a.sdk;
|
|
62
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
63
|
+
var journey, createdEnduserIds, validInfo_1, step_1, processFor, enduser, result, notes, hiddenResult, allNotes, hiddenNote, aiInfo, aiStep, aiEnduser, aiResult, aiNotes, conversations, _i, createdEnduserIds_1, id;
|
|
64
|
+
var _b, _c;
|
|
65
|
+
return __generator(this, function (_d) {
|
|
66
|
+
switch (_d.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
(0, testing_1.log_header)("Create Note Action Tests");
|
|
69
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Create Note Test Journey' })];
|
|
70
|
+
case 1:
|
|
71
|
+
journey = _d.sent();
|
|
72
|
+
createdEnduserIds = [];
|
|
73
|
+
_d.label = 2;
|
|
74
|
+
case 2:
|
|
75
|
+
_d.trys.push([2, , 18, 24]);
|
|
76
|
+
validInfo_1 = {
|
|
77
|
+
title: 'Note for {{enduser.fname}}',
|
|
78
|
+
text: 'Hi {{enduser.fname}}, this is a journey note.',
|
|
79
|
+
tags: ['auto-note'],
|
|
80
|
+
};
|
|
81
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
82
|
+
journeyId: journey.id,
|
|
83
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
84
|
+
action: { type: 'createNote', info: validInfo_1 },
|
|
85
|
+
})];
|
|
86
|
+
case 3:
|
|
87
|
+
step_1 = _d.sent();
|
|
88
|
+
(0, testing_1.assert)(step_1.action.type === 'createNote' && step_1.action.info.title === validInfo_1.title && step_1.action.info.text === validInfo_1.text, 'createNote step round-trip failed', 'createNote step round-trips');
|
|
89
|
+
return [4 /*yield*/, (0, testing_1.async_test)('createNote without title is rejected', function () { return sdk.api.automation_steps.createOne({
|
|
90
|
+
journeyId: journey.id,
|
|
91
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
92
|
+
action: { type: 'createNote', info: __assign(__assign({}, validInfo_1), { title: undefined }) },
|
|
93
|
+
}); }, { shouldError: true, onError: function () { return true; } })];
|
|
94
|
+
case 4:
|
|
95
|
+
_d.sent();
|
|
96
|
+
return [4 /*yield*/, (0, testing_1.async_test)('createNote with over-length title is rejected', function () { return sdk.api.automation_steps.createOne({
|
|
97
|
+
journeyId: journey.id,
|
|
98
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
99
|
+
action: { type: 'createNote', info: __assign(__assign({}, validInfo_1), { title: 'x'.repeat(251) }) },
|
|
100
|
+
}); }, { shouldError: true, onError: function () { return true; } })
|
|
101
|
+
/*************** Runtime: the process endpoint ***************/
|
|
102
|
+
];
|
|
103
|
+
case 5:
|
|
104
|
+
_d.sent();
|
|
105
|
+
processFor = function (enduserId, info) { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
+
var automatedAction;
|
|
107
|
+
return __generator(this, function (_a) {
|
|
108
|
+
switch (_a.label) {
|
|
109
|
+
case 0: return [4 /*yield*/, sdk.api.automated_actions.createOne({
|
|
110
|
+
enduserId: enduserId,
|
|
111
|
+
journeyId: journey.id,
|
|
112
|
+
automationStepId: step_1.id,
|
|
113
|
+
event: { type: 'onJourneyStart', info: {} },
|
|
114
|
+
action: { type: 'createNote', info: info },
|
|
115
|
+
status: 'active',
|
|
116
|
+
processAfter: Date.now(),
|
|
117
|
+
})];
|
|
118
|
+
case 1:
|
|
119
|
+
automatedAction = _a.sent();
|
|
120
|
+
return [2 /*return*/, sdk.api.automated_actions.process({ automatedActionId: automatedAction.id })];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}); };
|
|
124
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'NoteTest' })];
|
|
125
|
+
case 6:
|
|
126
|
+
enduser = _d.sent();
|
|
127
|
+
createdEnduserIds.push(enduser.id);
|
|
128
|
+
return [4 /*yield*/, processFor(enduser.id, validInfo_1)];
|
|
129
|
+
case 7:
|
|
130
|
+
result = _d.sent();
|
|
131
|
+
(0, testing_1.assert)(result.success === true, "deterministic createNote failed: ".concat(result.error), 'deterministic createNote succeeds');
|
|
132
|
+
return [4 /*yield*/, sdk.api.notes.getSome({ filter: { enduserId: enduser.id } })];
|
|
133
|
+
case 8:
|
|
134
|
+
notes = _d.sent();
|
|
135
|
+
(0, testing_1.assert)(notes.length === 1, "expected 1 note, got ".concat(notes.length), 'exactly one note created');
|
|
136
|
+
(0, testing_1.assert)(notes[0].title === 'Note for NoteTest', "title not templated: ".concat(notes[0].title), 'title merge fields resolve');
|
|
137
|
+
(0, testing_1.assert)(notes[0].text === 'Hi NoteTest, this is a journey note.', "text not templated: ".concat(notes[0].text), 'text merge fields resolve');
|
|
138
|
+
(0, testing_1.assert)(!!((_b = notes[0].tags) === null || _b === void 0 ? void 0 : _b.includes('auto-note')), 'tags missing on note', 'tags set on note');
|
|
139
|
+
(0, testing_1.assert)(notes[0].source === 'Journey', "wrong source: ".concat(notes[0].source), 'note source is Journey');
|
|
140
|
+
(0, testing_1.assert)(!notes[0].hiddenFromTimeline, 'note unexpectedly hidden', 'note visible on timeline by default');
|
|
141
|
+
(0, testing_1.assert)(!notes[0].aiGenerated, 'deterministic note incorrectly flagged aiGenerated', 'deterministic note not flagged as AI-generated');
|
|
142
|
+
return [4 /*yield*/, processFor(enduser.id, { title: 'Hidden note', hiddenFromTimeline: true })];
|
|
143
|
+
case 9:
|
|
144
|
+
hiddenResult = _d.sent();
|
|
145
|
+
(0, testing_1.assert)(hiddenResult.success === true, "hidden createNote failed: ".concat(hiddenResult.error), 'hidden createNote succeeds');
|
|
146
|
+
return [4 /*yield*/, sdk.api.notes.getSome({ filter: { enduserId: enduser.id } })];
|
|
147
|
+
case 10:
|
|
148
|
+
allNotes = _d.sent();
|
|
149
|
+
hiddenNote = allNotes.find(function (n) { return n.title === 'Hidden note'; });
|
|
150
|
+
(0, testing_1.assert)(!!hiddenNote && hiddenNote.hiddenFromTimeline === true && !hiddenNote.text, 'hidden/textless note not created correctly', 'hiddenFromTimeline note created without text');
|
|
151
|
+
aiInfo = {
|
|
152
|
+
title: 'AI note for {{enduser.fname}}',
|
|
153
|
+
aiSummaryConfiguration: {
|
|
154
|
+
enabled: true,
|
|
155
|
+
prompt: 'Write a one-sentence note stating this is a test patient.',
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
159
|
+
journeyId: journey.id,
|
|
160
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
161
|
+
action: { type: 'createNote', info: aiInfo },
|
|
162
|
+
})];
|
|
163
|
+
case 11:
|
|
164
|
+
aiStep = _d.sent();
|
|
165
|
+
(0, testing_1.assert)(aiStep.action.type === 'createNote' && ((_c = aiStep.action.info.aiSummaryConfiguration) === null || _c === void 0 ? void 0 : _c.enabled) === true, 'AI createNote config round-trip failed', 'AI createNote config round-trips');
|
|
166
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'AINoteTest' })];
|
|
167
|
+
case 12:
|
|
168
|
+
aiEnduser = _d.sent();
|
|
169
|
+
createdEnduserIds.push(aiEnduser.id);
|
|
170
|
+
return [4 /*yield*/, processFor(aiEnduser.id, aiInfo)];
|
|
171
|
+
case 13:
|
|
172
|
+
aiResult = _d.sent();
|
|
173
|
+
if (!!aiResult.success) return [3 /*break*/, 14];
|
|
174
|
+
// bedrockAIAllowed/credits are org-level and unreadable here — accept the configuration error path
|
|
175
|
+
(0, testing_1.assert)(/bedrock|credit|enabled|ai/i.test(aiResult.error || ''), "unexpected AI createNote error: ".concat(aiResult.error), 'AI createNote reports a configuration error (Bedrock unavailable — runtime generation skipped)');
|
|
176
|
+
return [3 /*break*/, 17];
|
|
177
|
+
case 14: return [4 /*yield*/, sdk.api.notes.getSome({ filter: { enduserId: aiEnduser.id } })];
|
|
178
|
+
case 15:
|
|
179
|
+
aiNotes = _d.sent();
|
|
180
|
+
(0, testing_1.assert)(aiNotes.length === 1 && !!aiNotes[0].text && aiNotes[0].title === 'AI note for AINoteTest', 'AI-generated note missing or malformed', 'AI-generated note created with non-empty text');
|
|
181
|
+
(0, testing_1.assert)(aiNotes[0].aiGenerated === true, 'AI note missing aiGenerated flag', 'AI note flagged as AI-generated');
|
|
182
|
+
return [4 /*yield*/, sdk.api.ai_conversations.getSome({ filter: { enduserId: aiEnduser.id } })];
|
|
183
|
+
case 16:
|
|
184
|
+
conversations = _d.sent();
|
|
185
|
+
(0, testing_1.assert)(conversations.some(function (c) { return c.type === 'AI Note'; }), 'no AI Note ai_conversations record', 'AI generation logged to ai_conversations with type AI Note');
|
|
186
|
+
_d.label = 17;
|
|
187
|
+
case 17: return [3 /*break*/, 24];
|
|
188
|
+
case 18: return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id).catch(function () { })];
|
|
189
|
+
case 19:
|
|
190
|
+
_d.sent();
|
|
191
|
+
_i = 0, createdEnduserIds_1 = createdEnduserIds;
|
|
192
|
+
_d.label = 20;
|
|
193
|
+
case 20:
|
|
194
|
+
if (!(_i < createdEnduserIds_1.length)) return [3 /*break*/, 23];
|
|
195
|
+
id = createdEnduserIds_1[_i];
|
|
196
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(function () { })];
|
|
197
|
+
case 21:
|
|
198
|
+
_d.sent();
|
|
199
|
+
_d.label = 22;
|
|
200
|
+
case 22:
|
|
201
|
+
_i++;
|
|
202
|
+
return [3 /*break*/, 20];
|
|
203
|
+
case 23: return [7 /*endfinally*/];
|
|
204
|
+
case 24: return [2 /*return*/];
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
exports.create_note_action_tests = create_note_action_tests;
|
|
210
|
+
// Allow running this test file independently
|
|
211
|
+
if (require.main === module) {
|
|
212
|
+
var sdk_2 = new sdk_1.Session({ host: host });
|
|
213
|
+
var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
|
|
214
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
215
|
+
return __generator(this, function (_a) {
|
|
216
|
+
switch (_a.label) {
|
|
217
|
+
case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
|
|
218
|
+
case 1:
|
|
219
|
+
_a.sent();
|
|
220
|
+
return [4 /*yield*/, (0, exports.create_note_action_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
221
|
+
case 2:
|
|
222
|
+
_a.sent();
|
|
223
|
+
return [2 /*return*/];
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}); };
|
|
227
|
+
runTests()
|
|
228
|
+
.then(function () {
|
|
229
|
+
console.log("✅ Create Note Action test suite completed successfully");
|
|
230
|
+
process.exit(0);
|
|
231
|
+
})
|
|
232
|
+
.catch(function (error) {
|
|
233
|
+
console.error("❌ Create Note Action test suite failed:", error);
|
|
234
|
+
process.exit(1);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=create_note_action.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_note_action.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/create_note_action.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook_raw_json_number.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/webhook_raw_json_number.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0BnC,eAAO,MAAM,6BAA6B;SACV,OAAO;iBAAe,OAAO;mBAoG5D,CAAA"}
|
|
@@ -0,0 +1,262 @@
|
|
|
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.webhook_raw_json_number_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 host = process.env.API_URL || 'http://localhost:8080';
|
|
45
|
+
// Unreachable webhook target — the request will fail quickly but the API still writes
|
|
46
|
+
// the resolved payload to webhook_logs, which is what we're verifying.
|
|
47
|
+
var WEBHOOK_TARGET_URL = 'http://127.0.0.1:9';
|
|
48
|
+
var find_log_for_url = function (sdk, url) { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
+
var start, logs, match;
|
|
50
|
+
return __generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
start = Date.now();
|
|
54
|
+
_a.label = 1;
|
|
55
|
+
case 1:
|
|
56
|
+
if (!(Date.now() - start < 10000)) return [3 /*break*/, 4];
|
|
57
|
+
return [4 /*yield*/, sdk.api.webhook_logs.getSome({ limit: 50, sort: 'newFirst' })];
|
|
58
|
+
case 2:
|
|
59
|
+
logs = _a.sent();
|
|
60
|
+
match = logs.find(function (l) { return l.url === url; });
|
|
61
|
+
if (match)
|
|
62
|
+
return [2 /*return*/, match];
|
|
63
|
+
return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
|
|
64
|
+
case 3:
|
|
65
|
+
_a.sent();
|
|
66
|
+
return [3 /*break*/, 1];
|
|
67
|
+
case 4: return [2 /*return*/, null];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}); };
|
|
71
|
+
// Main test function that can be called independently
|
|
72
|
+
var webhook_raw_json_number_tests = function (_a) {
|
|
73
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
74
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
75
|
+
var enduser, purchase, journey, step, _b, _c, _d, _e;
|
|
76
|
+
return __generator(this, function (_f) {
|
|
77
|
+
switch (_f.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
(0, testing_1.log_header)("Webhook Raw JSON Body Numeric Placeholder Tests");
|
|
80
|
+
return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'RawJSON', lname: 'Number' })];
|
|
81
|
+
case 1:
|
|
82
|
+
enduser = _f.sent();
|
|
83
|
+
return [4 /*yield*/, sdk.api.purchases.createOne({
|
|
84
|
+
enduserId: enduser.id,
|
|
85
|
+
title: 'Raw JSON Number Test Purchase',
|
|
86
|
+
cost: { amount: 129.99, currency: 'USD' },
|
|
87
|
+
processor: 'Stripe',
|
|
88
|
+
})
|
|
89
|
+
// create an automation step to satisfy schema validation (automationStepId is required)
|
|
90
|
+
];
|
|
91
|
+
case 2:
|
|
92
|
+
purchase = _f.sent();
|
|
93
|
+
return [4 /*yield*/, sdk.api.journeys.createOne({
|
|
94
|
+
title: 'Webhook Raw JSON Number Tests',
|
|
95
|
+
defaultState: 'State 1',
|
|
96
|
+
})];
|
|
97
|
+
case 3:
|
|
98
|
+
journey = _f.sent();
|
|
99
|
+
return [4 /*yield*/, sdk.api.automation_steps.createOne({
|
|
100
|
+
journeyId: journey.id,
|
|
101
|
+
events: [{ type: 'onJourneyStart', info: {} }],
|
|
102
|
+
action: {
|
|
103
|
+
type: 'sendWebhook',
|
|
104
|
+
info: {
|
|
105
|
+
message: 'placeholder',
|
|
106
|
+
url: WEBHOOK_TARGET_URL,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
})];
|
|
110
|
+
case 4:
|
|
111
|
+
step = _f.sent();
|
|
112
|
+
_f.label = 5;
|
|
113
|
+
case 5:
|
|
114
|
+
_f.trys.push([5, , 8, 21]);
|
|
115
|
+
return [4 /*yield*/, (0, testing_1.async_test)('Send Webhook rawJSONBody sends unquoted {{purchase.cost.amount}} as a number and quoted as a string', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
116
|
+
var url, log, payload;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
switch (_a.label) {
|
|
119
|
+
case 0:
|
|
120
|
+
url = "".concat(WEBHOOK_TARGET_URL, "/raw-json-number/").concat(purchase.id);
|
|
121
|
+
return [4 /*yield*/, sdk.api.webhooks.send_automation_webhook({
|
|
122
|
+
message: 'placeholder',
|
|
123
|
+
enduserId: enduser.id,
|
|
124
|
+
automationStepId: step.id,
|
|
125
|
+
action: {
|
|
126
|
+
type: 'sendWebhook',
|
|
127
|
+
info: {
|
|
128
|
+
message: 'placeholder',
|
|
129
|
+
url: url,
|
|
130
|
+
rawJSONBody: '{"amount": {{purchase.cost.amount}}, "asString": "{{purchase.cost.amount}}"}',
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
context: { purchaseId: purchase.id },
|
|
134
|
+
}).catch(function () { })]; // the unreachable URL is expected to error after logging
|
|
135
|
+
case 1:
|
|
136
|
+
_a.sent(); // the unreachable URL is expected to error after logging
|
|
137
|
+
return [4 /*yield*/, find_log_for_url(sdk, url)];
|
|
138
|
+
case 2:
|
|
139
|
+
log = _a.sent();
|
|
140
|
+
if (!log)
|
|
141
|
+
return [2 /*return*/, false];
|
|
142
|
+
payload = log.payload;
|
|
143
|
+
return [2 /*return*/, (typeof (payload === null || payload === void 0 ? void 0 : payload.amount) === 'number' && payload.amount === 129.99
|
|
144
|
+
&& typeof (payload === null || payload === void 0 ? void 0 : payload.asString) === 'string' && payload.asString === '129.99')];
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
148
|
+
case 6:
|
|
149
|
+
_f.sent();
|
|
150
|
+
return [4 /*yield*/, (0, testing_1.async_test)('Send Webhook rawJSONBody with a MISSING unquoted placeholder degrades to null instead of dropping the whole body', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
151
|
+
var url, log, payload;
|
|
152
|
+
return __generator(this, function (_a) {
|
|
153
|
+
switch (_a.label) {
|
|
154
|
+
case 0:
|
|
155
|
+
url = "".concat(WEBHOOK_TARGET_URL, "/raw-json-missing/").concat(purchase.id);
|
|
156
|
+
return [4 /*yield*/, sdk.api.webhooks.send_automation_webhook({
|
|
157
|
+
message: 'placeholder',
|
|
158
|
+
enduserId: enduser.id,
|
|
159
|
+
automationStepId: step.id,
|
|
160
|
+
action: {
|
|
161
|
+
type: 'sendWebhook',
|
|
162
|
+
info: {
|
|
163
|
+
message: 'placeholder',
|
|
164
|
+
url: url,
|
|
165
|
+
// enduser has no 'NoSuchNumber' field: the unquoted placeholder would otherwise leave a
|
|
166
|
+
// literal {{...}} in a value slot, invalidating the JSON and dropping the entire payload.
|
|
167
|
+
rawJSONBody: '{"missing": {{enduser.NoSuchNumber}}, "patient": "{{enduser.fname}}"}',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
context: { purchaseId: purchase.id },
|
|
171
|
+
}).catch(function () { })];
|
|
172
|
+
case 1:
|
|
173
|
+
_a.sent();
|
|
174
|
+
return [4 /*yield*/, find_log_for_url(sdk, url)];
|
|
175
|
+
case 2:
|
|
176
|
+
log = _a.sent();
|
|
177
|
+
if (!log)
|
|
178
|
+
return [2 /*return*/, false];
|
|
179
|
+
payload = log.payload;
|
|
180
|
+
// body must still be sent (not null/empty), the missing value coerced to JSON null,
|
|
181
|
+
// and the resolvable placeholder still substituted
|
|
182
|
+
return [2 /*return*/, (payload && typeof payload === 'object'
|
|
183
|
+
&& payload.missing === null
|
|
184
|
+
&& payload.patient === 'RawJSON')];
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
188
|
+
case 7:
|
|
189
|
+
_f.sent();
|
|
190
|
+
return [3 /*break*/, 21];
|
|
191
|
+
case 8:
|
|
192
|
+
_f.trys.push([8, 10, , 11]);
|
|
193
|
+
return [4 /*yield*/, sdk.api.purchases.deleteOne(purchase.id)];
|
|
194
|
+
case 9:
|
|
195
|
+
_f.sent();
|
|
196
|
+
return [3 /*break*/, 11];
|
|
197
|
+
case 10:
|
|
198
|
+
_b = _f.sent();
|
|
199
|
+
return [3 /*break*/, 11];
|
|
200
|
+
case 11:
|
|
201
|
+
_f.trys.push([11, 13, , 14]);
|
|
202
|
+
return [4 /*yield*/, sdk.api.automation_steps.deleteOne(step.id)];
|
|
203
|
+
case 12:
|
|
204
|
+
_f.sent();
|
|
205
|
+
return [3 /*break*/, 14];
|
|
206
|
+
case 13:
|
|
207
|
+
_c = _f.sent();
|
|
208
|
+
return [3 /*break*/, 14];
|
|
209
|
+
case 14:
|
|
210
|
+
_f.trys.push([14, 16, , 17]);
|
|
211
|
+
return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id)];
|
|
212
|
+
case 15:
|
|
213
|
+
_f.sent();
|
|
214
|
+
return [3 /*break*/, 17];
|
|
215
|
+
case 16:
|
|
216
|
+
_d = _f.sent();
|
|
217
|
+
return [3 /*break*/, 17];
|
|
218
|
+
case 17:
|
|
219
|
+
_f.trys.push([17, 19, , 20]);
|
|
220
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
221
|
+
case 18:
|
|
222
|
+
_f.sent();
|
|
223
|
+
return [3 /*break*/, 20];
|
|
224
|
+
case 19:
|
|
225
|
+
_e = _f.sent();
|
|
226
|
+
return [3 /*break*/, 20];
|
|
227
|
+
case 20: return [7 /*endfinally*/];
|
|
228
|
+
case 21: return [2 /*return*/];
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
exports.webhook_raw_json_number_tests = webhook_raw_json_number_tests;
|
|
234
|
+
// Allow running this test file independently
|
|
235
|
+
if (require.main === module) {
|
|
236
|
+
console.log("\uD83C\uDF10 Using API URL: ".concat(host));
|
|
237
|
+
var sdk_2 = new sdk_1.Session({ host: host });
|
|
238
|
+
var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
|
|
239
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
240
|
+
return __generator(this, function (_a) {
|
|
241
|
+
switch (_a.label) {
|
|
242
|
+
case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
|
|
243
|
+
case 1:
|
|
244
|
+
_a.sent();
|
|
245
|
+
return [4 /*yield*/, (0, exports.webhook_raw_json_number_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
246
|
+
case 2:
|
|
247
|
+
_a.sent();
|
|
248
|
+
return [2 /*return*/];
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}); };
|
|
252
|
+
runTests()
|
|
253
|
+
.then(function () {
|
|
254
|
+
console.log("✅ Webhook raw JSON number test suite completed successfully");
|
|
255
|
+
process.exit(0);
|
|
256
|
+
})
|
|
257
|
+
.catch(function (error) {
|
|
258
|
+
console.error("❌ Webhook raw JSON number test suite failed:", error);
|
|
259
|
+
process.exit(1);
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=webhook_raw_json_number.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook_raw_json_number.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/webhook_raw_json_number.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":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAy2EA,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;AAy1FD,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,qBAiqBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAqlDD,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,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA+b1B,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"}
|