@tellescope/sdk 1.247.0 → 1.248.0
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/sdk.d.ts +6 -1
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js +2 -0
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/api_tests/date_string_validation.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/date_string_validation.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/date_string_validation.test.js +142 -0
- package/lib/cjs/tests/api_tests/date_string_validation.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js +243 -0
- package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/field_redaction.test.d.ts +13 -0
- package/lib/cjs/tests/api_tests/field_redaction.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/field_redaction.test.js +818 -0
- package/lib/cjs/tests/api_tests/field_redaction.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js +429 -0
- package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/integrations_redacted.test.js +273 -0
- package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/openloop_webhooks.test.js +108 -24
- package/lib/cjs/tests/api_tests/openloop_webhooks.test.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +294 -183
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/sdk.d.ts +6 -1
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js +2 -0
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/tests/api_tests/date_string_validation.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/date_string_validation.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/date_string_validation.test.js +138 -0
- package/lib/esm/tests/api_tests/date_string_validation.test.js.map +1 -0
- package/lib/esm/tests/api_tests/enduser_session_invalidation.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/enduser_session_invalidation.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js +239 -0
- package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js.map +1 -0
- package/lib/esm/tests/api_tests/field_redaction.test.d.ts +13 -0
- package/lib/esm/tests/api_tests/field_redaction.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/field_redaction.test.js +814 -0
- package/lib/esm/tests/api_tests/field_redaction.test.js.map +1 -0
- package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/form_submitted_trigger.test.js +425 -0
- package/lib/esm/tests/api_tests/form_submitted_trigger.test.js.map +1 -0
- package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/integrations_redacted.test.js +269 -0
- package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -0
- package/lib/esm/tests/api_tests/openloop_webhooks.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/openloop_webhooks.test.js +108 -24
- package/lib/esm/tests/api_tests/openloop_webhooks.test.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +294 -183
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/sdk.ts +10 -0
- package/src/tests/api_tests/date_string_validation.test.ts +107 -0
- package/src/tests/api_tests/enduser_session_invalidation.test.ts +138 -0
- package/src/tests/api_tests/field_redaction.test.ts +669 -0
- package/src/tests/api_tests/form_started_trigger.test.ts +1 -1
- package/src/tests/api_tests/form_submitted_trigger.test.ts +281 -0
- package/src/tests/api_tests/integrations_redacted.test.ts +245 -0
- package/src/tests/api_tests/openloop_webhooks.test.ts +64 -0
- package/src/tests/tests.ts +86 -6
- package/test_generated.pdf +0 -0
|
@@ -0,0 +1,269 @@
|
|
|
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 { INTEGRATION_SENSITIVE_FIELDS } from "@tellescope/constants";
|
|
42
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
43
|
+
var hasNoSensitiveFields = function (integration) {
|
|
44
|
+
for (var _i = 0, INTEGRATION_SENSITIVE_FIELDS_1 = INTEGRATION_SENSITIVE_FIELDS; _i < INTEGRATION_SENSITIVE_FIELDS_1.length; _i++) {
|
|
45
|
+
var field = INTEGRATION_SENSITIVE_FIELDS_1[_i];
|
|
46
|
+
if (field in integration)
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
51
|
+
export var integrations_redacted_tests = function (_a) {
|
|
52
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
53
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
54
|
+
var integrationId, sensitiveIntegrationId, created, sensitiveIntegration, error_1, error_2;
|
|
55
|
+
return __generator(this, function (_b) {
|
|
56
|
+
switch (_b.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
log_header("Integrations Redacted Endpoints Tests");
|
|
59
|
+
integrationId = '';
|
|
60
|
+
sensitiveIntegrationId = '';
|
|
61
|
+
_b.label = 1;
|
|
62
|
+
case 1:
|
|
63
|
+
_b.trys.push([1, , 26, 35]);
|
|
64
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
65
|
+
title: 'Test Redacted Integration',
|
|
66
|
+
authentication: { type: 'oauth2', info: { access_token: 'test-access-token', refresh_token: 'test-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() } },
|
|
67
|
+
webhooksSecret: 'super-secret-webhook',
|
|
68
|
+
emailDisabled: false,
|
|
69
|
+
})];
|
|
70
|
+
case 2:
|
|
71
|
+
created = _b.sent();
|
|
72
|
+
integrationId = created.id;
|
|
73
|
+
// load_redacted as creator — verify integration is returned, no sensitive fields present
|
|
74
|
+
return [4 /*yield*/, async_test("load_redacted as creator returns redacted integrations", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
75
|
+
var found = r.integrations.find(function (i) { return i.id === integrationId; });
|
|
76
|
+
return !!found && hasNoSensitiveFields(found) && found.title === 'Test Redacted Integration';
|
|
77
|
+
} })
|
|
78
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
79
|
+
];
|
|
80
|
+
case 3:
|
|
81
|
+
// load_redacted as creator — verify integration is returned, no sensitive fields present
|
|
82
|
+
_b.sent();
|
|
83
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
84
|
+
return [4 /*yield*/, async_test("load_redacted as non-creator returns redacted integrations (bypasses CREATOR_ONLY)", function () { return sdkNonAdmin.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
85
|
+
var found = r.integrations.find(function (i) { return i.id === integrationId; });
|
|
86
|
+
return !!found && hasNoSensitiveFields(found) && found.title === 'Test Redacted Integration';
|
|
87
|
+
} })
|
|
88
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
89
|
+
];
|
|
90
|
+
case 4:
|
|
91
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
92
|
+
_b.sent();
|
|
93
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
94
|
+
return [4 /*yield*/, async_test("getOne as creator returns full integration including sensitive fields", function () { return sdk.api.integrations.getOne(integrationId); }, { onResult: function (i) { return !!i && 'authentication' in i && 'webhooksSecret' in i; } })];
|
|
95
|
+
case 5:
|
|
96
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
97
|
+
_b.sent();
|
|
98
|
+
return [4 /*yield*/, async_test("getOne as non-creator returns 404 (CREATOR_ONLY access control)", function () { return sdkNonAdmin.api.integrations.getOne(integrationId); }, { shouldError: true, onError: function () { return true; } })];
|
|
99
|
+
case 6:
|
|
100
|
+
_b.sent();
|
|
101
|
+
return [4 /*yield*/, async_test("getSome as non-creator returns empty list (CREATOR_ONLY access control)", function () { return sdkNonAdmin.api.integrations.getSome(); }, { onResult: function (r) { return Array.isArray(r) && r.find(function (i) { return i.id === integrationId; }) === undefined; } })
|
|
102
|
+
// update_settings as creator — update a non-sensitive field
|
|
103
|
+
];
|
|
104
|
+
case 7:
|
|
105
|
+
_b.sent();
|
|
106
|
+
// update_settings as creator — update a non-sensitive field
|
|
107
|
+
return [4 /*yield*/, async_test("update_settings as creator updates non-sensitive field", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { emailDisabled: true } }); }, { onResult: function (r) {
|
|
108
|
+
return !!r.integration && r.integration.emailDisabled === true && hasNoSensitiveFields(r.integration);
|
|
109
|
+
} })
|
|
110
|
+
// update_settings as non-creator — update another field
|
|
111
|
+
];
|
|
112
|
+
case 8:
|
|
113
|
+
// update_settings as creator — update a non-sensitive field
|
|
114
|
+
_b.sent();
|
|
115
|
+
// update_settings as non-creator — update another field
|
|
116
|
+
return [4 /*yield*/, async_test("update_settings as non-creator updates non-sensitive field", function () { return sdkNonAdmin.api.integrations.update_settings({ id: integrationId, updates: { disableEnduserAutoSync: true } }); }, { onResult: function (r) {
|
|
117
|
+
return !!r.integration && r.integration.disableEnduserAutoSync === true && hasNoSensitiveFields(r.integration);
|
|
118
|
+
} })
|
|
119
|
+
// update_settings rejects sensitive fields
|
|
120
|
+
];
|
|
121
|
+
case 9:
|
|
122
|
+
// update_settings as non-creator — update another field
|
|
123
|
+
_b.sent();
|
|
124
|
+
// update_settings rejects sensitive fields
|
|
125
|
+
return [4 /*yield*/, async_test("update_settings rejects authentication update", function () { return sdkNonAdmin.api.integrations.update_settings({ id: integrationId, updates: { authentication: { type: 'apiKey', info: { api_key: 'hacked' } } } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
126
|
+
case 10:
|
|
127
|
+
// update_settings rejects sensitive fields
|
|
128
|
+
_b.sent();
|
|
129
|
+
return [4 /*yield*/, async_test("update_settings rejects webhooksSecret update", function () { return sdkNonAdmin.api.integrations.update_settings({ id: integrationId, updates: { webhooksSecret: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
130
|
+
case 11:
|
|
131
|
+
_b.sent();
|
|
132
|
+
return [4 /*yield*/, async_test("update_settings rejects fhirClientSecret update", function () { return sdkNonAdmin.api.integrations.update_settings({ id: integrationId, updates: { fhirClientSecret: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })
|
|
133
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
134
|
+
];
|
|
135
|
+
case 12:
|
|
136
|
+
_b.sent();
|
|
137
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
138
|
+
return [4 /*yield*/, async_test("update_settings rejects dot-notation authentication.info.api_key update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { "authentication.info.api_key": "hacked" } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
139
|
+
case 13:
|
|
140
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
141
|
+
_b.sent();
|
|
142
|
+
return [4 /*yield*/, async_test("update_settings rejects dot-notation authentication.type update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { "authentication.type": "hacked" } }); }, { shouldError: true, onError: function () { return true; } })
|
|
143
|
+
// Group 2: Remaining sensitive field rejections
|
|
144
|
+
];
|
|
145
|
+
case 14:
|
|
146
|
+
_b.sent();
|
|
147
|
+
// Group 2: Remaining sensitive field rejections
|
|
148
|
+
return [4 /*yield*/, async_test("update_settings rejects fhirClientId update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { fhirClientId: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
149
|
+
case 15:
|
|
150
|
+
// Group 2: Remaining sensitive field rejections
|
|
151
|
+
_b.sent();
|
|
152
|
+
return [4 /*yield*/, async_test("update_settings rejects fhirAccessToken update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { fhirAccessToken: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })
|
|
153
|
+
// Group 3: Non-allowlisted field rejections
|
|
154
|
+
];
|
|
155
|
+
case 16:
|
|
156
|
+
_b.sent();
|
|
157
|
+
// Group 3: Non-allowlisted field rejections
|
|
158
|
+
return [4 /*yield*/, async_test("update_settings rejects title update (not in allowlist)", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { title: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
159
|
+
case 17:
|
|
160
|
+
// Group 3: Non-allowlisted field rejections
|
|
161
|
+
_b.sent();
|
|
162
|
+
return [4 /*yield*/, async_test("update_settings rejects environment update (not in allowlist)", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { environment: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })];
|
|
163
|
+
case 18:
|
|
164
|
+
_b.sent();
|
|
165
|
+
return [4 /*yield*/, async_test("update_settings rejects unknown field update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { unknownField: 'hacked' } }); }, { shouldError: true, onError: function () { return true; } })
|
|
166
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
167
|
+
];
|
|
168
|
+
case 19:
|
|
169
|
+
_b.sent();
|
|
170
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
171
|
+
return [4 /*yield*/, async_test("update_settings allows syncUnrecognizedSenders update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { syncUnrecognizedSenders: true } }); }, { onResult: function (r) { return !!r.integration && r.integration.syncUnrecognizedSenders === true && hasNoSensitiveFields(r.integration); } })];
|
|
172
|
+
case 20:
|
|
173
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
174
|
+
_b.sent();
|
|
175
|
+
return [4 /*yield*/, async_test("update_settings allows pushCalendarDetails update", function () { return sdk.api.integrations.update_settings({ id: integrationId, updates: { pushCalendarDetails: true } }); }, { onResult: function (r) { return !!r.integration && r.integration.pushCalendarDetails === true && hasNoSensitiveFields(r.integration); } })
|
|
176
|
+
// Group 5: Explicit per-field redaction verification
|
|
177
|
+
// Note: fhirClientId/fhirClientSecret/fhirAccessToken are set server-side via OAuth flows only,
|
|
178
|
+
// so we test redaction of the fields that can be set via createOne (authentication, webhooksSecret)
|
|
179
|
+
];
|
|
180
|
+
case 21:
|
|
181
|
+
_b.sent();
|
|
182
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
183
|
+
title: 'Test All Sensitive Fields',
|
|
184
|
+
authentication: { type: 'oauth2', info: { access_token: 'secret-access-token', refresh_token: 'secret-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() } },
|
|
185
|
+
webhooksSecret: 'super-secret-webhook-456',
|
|
186
|
+
emailDisabled: true,
|
|
187
|
+
})];
|
|
188
|
+
case 22:
|
|
189
|
+
sensitiveIntegration = _b.sent();
|
|
190
|
+
sensitiveIntegrationId = sensitiveIntegration.id;
|
|
191
|
+
return [4 /*yield*/, async_test("load_redacted omits authentication field individually", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
192
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
193
|
+
return !!found && !('authentication' in found);
|
|
194
|
+
} })];
|
|
195
|
+
case 23:
|
|
196
|
+
_b.sent();
|
|
197
|
+
return [4 /*yield*/, async_test("load_redacted omits webhooksSecret field individually", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
198
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
199
|
+
return !!found && !('webhooksSecret' in found);
|
|
200
|
+
} })];
|
|
201
|
+
case 24:
|
|
202
|
+
_b.sent();
|
|
203
|
+
return [4 /*yield*/, async_test("load_redacted still returns non-sensitive fields", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
204
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
205
|
+
return !!found && found.emailDisabled === true && found.title === 'Test All Sensitive Fields';
|
|
206
|
+
} })];
|
|
207
|
+
case 25:
|
|
208
|
+
_b.sent();
|
|
209
|
+
return [3 /*break*/, 35];
|
|
210
|
+
case 26:
|
|
211
|
+
if (!integrationId) return [3 /*break*/, 30];
|
|
212
|
+
_b.label = 27;
|
|
213
|
+
case 27:
|
|
214
|
+
_b.trys.push([27, 29, , 30]);
|
|
215
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(integrationId)];
|
|
216
|
+
case 28:
|
|
217
|
+
_b.sent();
|
|
218
|
+
return [3 /*break*/, 30];
|
|
219
|
+
case 29:
|
|
220
|
+
error_1 = _b.sent();
|
|
221
|
+
console.error('Cleanup error:', error_1);
|
|
222
|
+
return [3 /*break*/, 30];
|
|
223
|
+
case 30:
|
|
224
|
+
if (!sensitiveIntegrationId) return [3 /*break*/, 34];
|
|
225
|
+
_b.label = 31;
|
|
226
|
+
case 31:
|
|
227
|
+
_b.trys.push([31, 33, , 34]);
|
|
228
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(sensitiveIntegrationId)];
|
|
229
|
+
case 32:
|
|
230
|
+
_b.sent();
|
|
231
|
+
return [3 /*break*/, 34];
|
|
232
|
+
case 33:
|
|
233
|
+
error_2 = _b.sent();
|
|
234
|
+
console.error('Cleanup error (sensitive integration):', error_2);
|
|
235
|
+
return [3 /*break*/, 34];
|
|
236
|
+
case 34: return [7 /*endfinally*/];
|
|
237
|
+
case 35: return [2 /*return*/];
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
if (require.main === module) {
|
|
243
|
+
console.log("Using API URL: ".concat(host));
|
|
244
|
+
var sdk_1 = new Session({ host: host });
|
|
245
|
+
var sdkNonAdmin_1 = new Session({ host: host });
|
|
246
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
247
|
+
return __generator(this, function (_a) {
|
|
248
|
+
switch (_a.label) {
|
|
249
|
+
case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
|
|
250
|
+
case 1:
|
|
251
|
+
_a.sent();
|
|
252
|
+
return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
253
|
+
case 2:
|
|
254
|
+
_a.sent();
|
|
255
|
+
return [2 /*return*/];
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}); };
|
|
259
|
+
runTests()
|
|
260
|
+
.then(function () {
|
|
261
|
+
console.log("Integrations redacted test suite completed successfully");
|
|
262
|
+
process.exit(0);
|
|
263
|
+
})
|
|
264
|
+
.catch(function (error) {
|
|
265
|
+
console.error("Integrations redacted test suite failed:", error);
|
|
266
|
+
process.exit(1);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=integrations_redacted.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations_redacted.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/integrations_redacted.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openloop_webhooks.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/openloop_webhooks.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2EnC,eAAO,MAAM,uBAAuB;SAAuC,OAAO;iBAAe,OAAO;
|
|
1
|
+
{"version":3,"file":"openloop_webhooks.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/openloop_webhooks.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2EnC,eAAO,MAAM,uBAAuB;SAAuC,OAAO;iBAAe,OAAO;mBAknBvG,CAAA"}
|
|
@@ -113,7 +113,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
113
113
|
enduser2 = _b.sent();
|
|
114
114
|
_b.label = 3;
|
|
115
115
|
case 3:
|
|
116
|
-
_b.trys.push([3, ,
|
|
116
|
+
_b.trys.push([3, , 28, 31]);
|
|
117
117
|
// ===== SECTION A: V1 Validation =====
|
|
118
118
|
log_header("V1 Validation");
|
|
119
119
|
return [4 /*yield*/, async_test('V1: missing patientID returns 400', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -185,6 +185,33 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
185
185
|
});
|
|
186
186
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
187
187
|
case 6:
|
|
188
|
+
_b.sent();
|
|
189
|
+
return [4 /*yield*/, async_test('V1: order_confirmation maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
190
|
+
var orderNum, res, orders;
|
|
191
|
+
return __generator(this, function (_a) {
|
|
192
|
+
switch (_a.label) {
|
|
193
|
+
case 0:
|
|
194
|
+
orderNum = "ol-conf-protocol-".concat(uid());
|
|
195
|
+
return [4 /*yield*/, postV1(makeV1Confirmation({
|
|
196
|
+
patientID: healthieId1,
|
|
197
|
+
orderNumber: orderNum,
|
|
198
|
+
program_code: 'Weight-Loss',
|
|
199
|
+
}))];
|
|
200
|
+
case 1:
|
|
201
|
+
res = _a.sent();
|
|
202
|
+
assert(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
203
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
204
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
205
|
+
})];
|
|
206
|
+
case 2:
|
|
207
|
+
orders = _a.sent();
|
|
208
|
+
assert(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
209
|
+
assert(orders[0].protocol === 'Weight-Loss', "protocol mismatch: ".concat(orders[0].protocol));
|
|
210
|
+
return [2 /*return*/, true];
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
214
|
+
case 7:
|
|
188
215
|
_b.sent();
|
|
189
216
|
return [4 /*yield*/, async_test('V1: order_confirmation idempotency - same order not duplicated', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
190
217
|
var res, orders;
|
|
@@ -212,7 +239,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
212
239
|
}
|
|
213
240
|
});
|
|
214
241
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
215
|
-
case
|
|
242
|
+
case 8:
|
|
216
243
|
_b.sent();
|
|
217
244
|
return [4 /*yield*/, async_test('V1: order_confirmation without sku_med falls back to pharmacy name', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
218
245
|
var orderNum, res, orders;
|
|
@@ -242,7 +269,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
242
269
|
}); }, { onResult: function (r) { return r === true; } })
|
|
243
270
|
// ===== SECTION C: V1 order_shipped =====
|
|
244
271
|
];
|
|
245
|
-
case
|
|
272
|
+
case 9:
|
|
246
273
|
_b.sent();
|
|
247
274
|
// ===== SECTION C: V1 order_shipped =====
|
|
248
275
|
log_header("V1 order_shipped");
|
|
@@ -285,7 +312,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
285
312
|
}
|
|
286
313
|
});
|
|
287
314
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
288
|
-
case
|
|
315
|
+
case 10:
|
|
289
316
|
_b.sent();
|
|
290
317
|
return [4 /*yield*/, async_test('V1: order_shipped updates title and sku when provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
291
318
|
var res, orders, order;
|
|
@@ -315,7 +342,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
315
342
|
}
|
|
316
343
|
});
|
|
317
344
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
318
|
-
case
|
|
345
|
+
case 11:
|
|
319
346
|
_b.sent();
|
|
320
347
|
return [4 /*yield*/, async_test('V1: order_shipped creates new order if none exists', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
321
348
|
var newOrderNum, res, orders, order;
|
|
@@ -351,7 +378,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
351
378
|
}
|
|
352
379
|
});
|
|
353
380
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
354
|
-
case
|
|
381
|
+
case 12:
|
|
355
382
|
_b.sent();
|
|
356
383
|
return [4 /*yield*/, async_test('V1: order_shipped can re-ship with updated tracking', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
357
384
|
var reshipOrderNum, res, orders;
|
|
@@ -394,10 +421,40 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
394
421
|
return [2 /*return*/, true];
|
|
395
422
|
}
|
|
396
423
|
});
|
|
424
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
425
|
+
case 13:
|
|
426
|
+
_b.sent();
|
|
427
|
+
return [4 /*yield*/, async_test('V1: order_shipped maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
428
|
+
var orderNum, res, orders;
|
|
429
|
+
return __generator(this, function (_a) {
|
|
430
|
+
switch (_a.label) {
|
|
431
|
+
case 0:
|
|
432
|
+
orderNum = "ol-ship-protocol-".concat(uid());
|
|
433
|
+
return [4 /*yield*/, postV1(makeV1Confirmation({ patientID: healthieId1, orderNumber: orderNum }))];
|
|
434
|
+
case 1:
|
|
435
|
+
_a.sent();
|
|
436
|
+
return [4 /*yield*/, postV1(makeV1Shipped({
|
|
437
|
+
patientID: healthieId1,
|
|
438
|
+
orderNumber: orderNum,
|
|
439
|
+
program_code: 'Diabetes',
|
|
440
|
+
}))];
|
|
441
|
+
case 2:
|
|
442
|
+
res = _a.sent();
|
|
443
|
+
assert(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
444
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
445
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
446
|
+
})];
|
|
447
|
+
case 3:
|
|
448
|
+
orders = _a.sent();
|
|
449
|
+
assert(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
450
|
+
assert(orders[0].protocol === 'Diabetes', "protocol mismatch: ".concat(orders[0].protocol));
|
|
451
|
+
return [2 /*return*/, true];
|
|
452
|
+
}
|
|
453
|
+
});
|
|
397
454
|
}); }, { onResult: function (r) { return r === true; } })
|
|
398
455
|
// ===== SECTION D: V1 enduserId Isolation =====
|
|
399
456
|
];
|
|
400
|
-
case
|
|
457
|
+
case 14:
|
|
401
458
|
_b.sent();
|
|
402
459
|
// ===== SECTION D: V1 enduserId Isolation =====
|
|
403
460
|
log_header("V1 enduserId Isolation");
|
|
@@ -436,7 +493,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
436
493
|
}); }, { onResult: function (r) { return r === true; } })
|
|
437
494
|
// ===== SECTION E: V2 Validation =====
|
|
438
495
|
];
|
|
439
|
-
case
|
|
496
|
+
case 15:
|
|
440
497
|
_b.sent();
|
|
441
498
|
// ===== SECTION E: V2 Validation =====
|
|
442
499
|
log_header("V2 Validation");
|
|
@@ -454,7 +511,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
454
511
|
}
|
|
455
512
|
});
|
|
456
513
|
}); }, { onResult: function (s) { return s === 400; } })];
|
|
457
|
-
case
|
|
514
|
+
case 16:
|
|
458
515
|
_b.sent();
|
|
459
516
|
return [4 /*yield*/, async_test('V2: invalid eventType returns 400', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
460
517
|
var res;
|
|
@@ -467,7 +524,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
467
524
|
}
|
|
468
525
|
});
|
|
469
526
|
}); }, { onResult: function (s) { return s === 400; } })];
|
|
470
|
-
case
|
|
527
|
+
case 17:
|
|
471
528
|
_b.sent();
|
|
472
529
|
return [4 /*yield*/, async_test('V2: unknown patient returns 404', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
473
530
|
var res;
|
|
@@ -482,7 +539,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
482
539
|
}); }, { onResult: function (s) { return s === 404; } })
|
|
483
540
|
// ===== SECTION F: V2 Order Lifecycle =====
|
|
484
541
|
];
|
|
485
|
-
case
|
|
542
|
+
case 18:
|
|
486
543
|
_b.sent();
|
|
487
544
|
// ===== SECTION F: V2 Order Lifecycle =====
|
|
488
545
|
log_header("V2 Order Lifecycle");
|
|
@@ -517,7 +574,34 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
517
574
|
}
|
|
518
575
|
});
|
|
519
576
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
520
|
-
case
|
|
577
|
+
case 19:
|
|
578
|
+
_b.sent();
|
|
579
|
+
return [4 /*yield*/, async_test('V2: prescription-created maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
580
|
+
var orderNum, res, orders;
|
|
581
|
+
return __generator(this, function (_a) {
|
|
582
|
+
switch (_a.label) {
|
|
583
|
+
case 0:
|
|
584
|
+
orderNum = "v2-protocol-".concat(uid());
|
|
585
|
+
return [4 /*yield*/, postV2(makeV2Payload('prescription-created', {
|
|
586
|
+
id: orderNum,
|
|
587
|
+
patientId: healthieId1,
|
|
588
|
+
program_code: 'GLP-1',
|
|
589
|
+
}))];
|
|
590
|
+
case 1:
|
|
591
|
+
res = _a.sent();
|
|
592
|
+
assert(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
593
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
594
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
595
|
+
})];
|
|
596
|
+
case 2:
|
|
597
|
+
orders = _a.sent();
|
|
598
|
+
assert(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
599
|
+
assert(orders[0].protocol === 'GLP-1', "protocol mismatch: ".concat(orders[0].protocol));
|
|
600
|
+
return [2 /*return*/, true];
|
|
601
|
+
}
|
|
602
|
+
});
|
|
603
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
604
|
+
case 20:
|
|
521
605
|
_b.sent();
|
|
522
606
|
return [4 /*yield*/, async_test('V2: prescription-shipped updates with carrier and tracking', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
523
607
|
var res, orders, order;
|
|
@@ -550,7 +634,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
550
634
|
}
|
|
551
635
|
});
|
|
552
636
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
553
|
-
case
|
|
637
|
+
case 21:
|
|
554
638
|
_b.sent();
|
|
555
639
|
v2CancelId_1 = "v2-cancel-".concat(uid());
|
|
556
640
|
return [4 /*yield*/, async_test('V2: prescription-cancelled sets cancelledDate and reason', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -591,7 +675,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
591
675
|
}
|
|
592
676
|
});
|
|
593
677
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
594
|
-
case
|
|
678
|
+
case 22:
|
|
595
679
|
_b.sent();
|
|
596
680
|
v2RefundId_1 = "v2-refund-".concat(uid());
|
|
597
681
|
return [4 /*yield*/, async_test('V2: prescription-refunded sets status', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -625,7 +709,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
625
709
|
}); }, { onResult: function (r) { return r === true; } })
|
|
626
710
|
// ===== SECTION G: V2 Idempotency & Isolation =====
|
|
627
711
|
];
|
|
628
|
-
case
|
|
712
|
+
case 23:
|
|
629
713
|
_b.sent();
|
|
630
714
|
// ===== SECTION G: V2 Idempotency & Isolation =====
|
|
631
715
|
log_header("V2 Idempotency & Isolation");
|
|
@@ -657,7 +741,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
657
741
|
}
|
|
658
742
|
});
|
|
659
743
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
660
|
-
case
|
|
744
|
+
case 24:
|
|
661
745
|
_b.sent();
|
|
662
746
|
return [4 /*yield*/, async_test('V2: same id for different patients creates separate orders', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
663
747
|
var sharedV2Id, res1, res2, orders, enduserIds, expected;
|
|
@@ -694,7 +778,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
694
778
|
}); }, { onResult: function (r) { return r === true; } })
|
|
695
779
|
// ===== SECTION H: V2 Full Lifecycle =====
|
|
696
780
|
];
|
|
697
|
-
case
|
|
781
|
+
case 25:
|
|
698
782
|
_b.sent();
|
|
699
783
|
// ===== SECTION H: V2 Full Lifecycle =====
|
|
700
784
|
log_header("V2 Full Lifecycle");
|
|
@@ -738,7 +822,7 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
738
822
|
}); }, { onResult: function (r) { return r === true; } })
|
|
739
823
|
// ===== SECTION I: V2 Undefined Field Handling =====
|
|
740
824
|
];
|
|
741
|
-
case
|
|
825
|
+
case 26:
|
|
742
826
|
_b.sent();
|
|
743
827
|
// ===== SECTION I: V2 Undefined Field Handling =====
|
|
744
828
|
log_header("V2 Undefined Field Handling");
|
|
@@ -782,18 +866,18 @@ export var openloop_webhooks_tests = function (_a) {
|
|
|
782
866
|
}
|
|
783
867
|
});
|
|
784
868
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
785
|
-
case
|
|
869
|
+
case 27:
|
|
786
870
|
_b.sent();
|
|
787
871
|
console.log("All OpenLoop webhook tests passed!");
|
|
788
|
-
return [3 /*break*/,
|
|
789
|
-
case
|
|
790
|
-
case
|
|
872
|
+
return [3 /*break*/, 31];
|
|
873
|
+
case 28: return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser1.id).catch(console.error)];
|
|
874
|
+
case 29:
|
|
791
875
|
_b.sent();
|
|
792
876
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id).catch(console.error)];
|
|
793
|
-
case
|
|
877
|
+
case 30:
|
|
794
878
|
_b.sent();
|
|
795
879
|
return [7 /*endfinally*/];
|
|
796
|
-
case
|
|
880
|
+
case 31: return [2 /*return*/];
|
|
797
881
|
}
|
|
798
882
|
});
|
|
799
883
|
});
|