@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,273 @@
|
|
|
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.integrations_redacted_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 constants_1 = require("@tellescope/constants");
|
|
45
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
46
|
+
var hasNoSensitiveFields = function (integration) {
|
|
47
|
+
for (var _i = 0, INTEGRATION_SENSITIVE_FIELDS_1 = constants_1.INTEGRATION_SENSITIVE_FIELDS; _i < INTEGRATION_SENSITIVE_FIELDS_1.length; _i++) {
|
|
48
|
+
var field = INTEGRATION_SENSITIVE_FIELDS_1[_i];
|
|
49
|
+
if (field in integration)
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
};
|
|
54
|
+
var integrations_redacted_tests = function (_a) {
|
|
55
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
56
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
57
|
+
var integrationId, sensitiveIntegrationId, created, sensitiveIntegration, error_1, error_2;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
(0, testing_1.log_header)("Integrations Redacted Endpoints Tests");
|
|
62
|
+
integrationId = '';
|
|
63
|
+
sensitiveIntegrationId = '';
|
|
64
|
+
_b.label = 1;
|
|
65
|
+
case 1:
|
|
66
|
+
_b.trys.push([1, , 26, 35]);
|
|
67
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
68
|
+
title: 'Test Redacted Integration',
|
|
69
|
+
authentication: { type: 'oauth2', info: { access_token: 'test-access-token', refresh_token: 'test-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() } },
|
|
70
|
+
webhooksSecret: 'super-secret-webhook',
|
|
71
|
+
emailDisabled: false,
|
|
72
|
+
})];
|
|
73
|
+
case 2:
|
|
74
|
+
created = _b.sent();
|
|
75
|
+
integrationId = created.id;
|
|
76
|
+
// load_redacted as creator — verify integration is returned, no sensitive fields present
|
|
77
|
+
return [4 /*yield*/, (0, testing_1.async_test)("load_redacted as creator returns redacted integrations", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
78
|
+
var found = r.integrations.find(function (i) { return i.id === integrationId; });
|
|
79
|
+
return !!found && hasNoSensitiveFields(found) && found.title === 'Test Redacted Integration';
|
|
80
|
+
} })
|
|
81
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
82
|
+
];
|
|
83
|
+
case 3:
|
|
84
|
+
// load_redacted as creator — verify integration is returned, no sensitive fields present
|
|
85
|
+
_b.sent();
|
|
86
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
87
|
+
return [4 /*yield*/, (0, testing_1.async_test)("load_redacted as non-creator returns redacted integrations (bypasses CREATOR_ONLY)", function () { return sdkNonAdmin.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
88
|
+
var found = r.integrations.find(function (i) { return i.id === integrationId; });
|
|
89
|
+
return !!found && hasNoSensitiveFields(found) && found.title === 'Test Redacted Integration';
|
|
90
|
+
} })
|
|
91
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
92
|
+
];
|
|
93
|
+
case 4:
|
|
94
|
+
// load_redacted as non-creator — verify same integration visible and redacted
|
|
95
|
+
_b.sent();
|
|
96
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
97
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
98
|
+
case 5:
|
|
99
|
+
// Standard load endpoints enforce CREATOR_ONLY — creator gets full object, non-creator gets nothing
|
|
100
|
+
_b.sent();
|
|
101
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
102
|
+
case 6:
|
|
103
|
+
_b.sent();
|
|
104
|
+
return [4 /*yield*/, (0, testing_1.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; } })
|
|
105
|
+
// update_settings as creator — update a non-sensitive field
|
|
106
|
+
];
|
|
107
|
+
case 7:
|
|
108
|
+
_b.sent();
|
|
109
|
+
// update_settings as creator — update a non-sensitive field
|
|
110
|
+
return [4 /*yield*/, (0, testing_1.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) {
|
|
111
|
+
return !!r.integration && r.integration.emailDisabled === true && hasNoSensitiveFields(r.integration);
|
|
112
|
+
} })
|
|
113
|
+
// update_settings as non-creator — update another field
|
|
114
|
+
];
|
|
115
|
+
case 8:
|
|
116
|
+
// update_settings as creator — update a non-sensitive field
|
|
117
|
+
_b.sent();
|
|
118
|
+
// update_settings as non-creator — update another field
|
|
119
|
+
return [4 /*yield*/, (0, testing_1.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) {
|
|
120
|
+
return !!r.integration && r.integration.disableEnduserAutoSync === true && hasNoSensitiveFields(r.integration);
|
|
121
|
+
} })
|
|
122
|
+
// update_settings rejects sensitive fields
|
|
123
|
+
];
|
|
124
|
+
case 9:
|
|
125
|
+
// update_settings as non-creator — update another field
|
|
126
|
+
_b.sent();
|
|
127
|
+
// update_settings rejects sensitive fields
|
|
128
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
129
|
+
case 10:
|
|
130
|
+
// update_settings rejects sensitive fields
|
|
131
|
+
_b.sent();
|
|
132
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
133
|
+
case 11:
|
|
134
|
+
_b.sent();
|
|
135
|
+
return [4 /*yield*/, (0, testing_1.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; } })
|
|
136
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
137
|
+
];
|
|
138
|
+
case 12:
|
|
139
|
+
_b.sent();
|
|
140
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
141
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
142
|
+
case 13:
|
|
143
|
+
// Group 1: Dot-notation bypass tests (validates the allowlist fix)
|
|
144
|
+
_b.sent();
|
|
145
|
+
return [4 /*yield*/, (0, testing_1.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; } })
|
|
146
|
+
// Group 2: Remaining sensitive field rejections
|
|
147
|
+
];
|
|
148
|
+
case 14:
|
|
149
|
+
_b.sent();
|
|
150
|
+
// Group 2: Remaining sensitive field rejections
|
|
151
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
152
|
+
case 15:
|
|
153
|
+
// Group 2: Remaining sensitive field rejections
|
|
154
|
+
_b.sent();
|
|
155
|
+
return [4 /*yield*/, (0, testing_1.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; } })
|
|
156
|
+
// Group 3: Non-allowlisted field rejections
|
|
157
|
+
];
|
|
158
|
+
case 16:
|
|
159
|
+
_b.sent();
|
|
160
|
+
// Group 3: Non-allowlisted field rejections
|
|
161
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
162
|
+
case 17:
|
|
163
|
+
// Group 3: Non-allowlisted field rejections
|
|
164
|
+
_b.sent();
|
|
165
|
+
return [4 /*yield*/, (0, testing_1.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; } })];
|
|
166
|
+
case 18:
|
|
167
|
+
_b.sent();
|
|
168
|
+
return [4 /*yield*/, (0, testing_1.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; } })
|
|
169
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
170
|
+
];
|
|
171
|
+
case 19:
|
|
172
|
+
_b.sent();
|
|
173
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
174
|
+
return [4 /*yield*/, (0, testing_1.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); } })];
|
|
175
|
+
case 20:
|
|
176
|
+
// Group 4: Verify additional allowlisted fields can be updated
|
|
177
|
+
_b.sent();
|
|
178
|
+
return [4 /*yield*/, (0, testing_1.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); } })
|
|
179
|
+
// Group 5: Explicit per-field redaction verification
|
|
180
|
+
// Note: fhirClientId/fhirClientSecret/fhirAccessToken are set server-side via OAuth flows only,
|
|
181
|
+
// so we test redaction of the fields that can be set via createOne (authentication, webhooksSecret)
|
|
182
|
+
];
|
|
183
|
+
case 21:
|
|
184
|
+
_b.sent();
|
|
185
|
+
return [4 /*yield*/, sdk.api.integrations.createOne({
|
|
186
|
+
title: 'Test All Sensitive Fields',
|
|
187
|
+
authentication: { type: 'oauth2', info: { access_token: 'secret-access-token', refresh_token: 'secret-refresh-token', scope: '', token_type: 'Bearer', expiry_date: new Date().getTime() } },
|
|
188
|
+
webhooksSecret: 'super-secret-webhook-456',
|
|
189
|
+
emailDisabled: true,
|
|
190
|
+
})];
|
|
191
|
+
case 22:
|
|
192
|
+
sensitiveIntegration = _b.sent();
|
|
193
|
+
sensitiveIntegrationId = sensitiveIntegration.id;
|
|
194
|
+
return [4 /*yield*/, (0, testing_1.async_test)("load_redacted omits authentication field individually", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
195
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
196
|
+
return !!found && !('authentication' in found);
|
|
197
|
+
} })];
|
|
198
|
+
case 23:
|
|
199
|
+
_b.sent();
|
|
200
|
+
return [4 /*yield*/, (0, testing_1.async_test)("load_redacted omits webhooksSecret field individually", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
201
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
202
|
+
return !!found && !('webhooksSecret' in found);
|
|
203
|
+
} })];
|
|
204
|
+
case 24:
|
|
205
|
+
_b.sent();
|
|
206
|
+
return [4 /*yield*/, (0, testing_1.async_test)("load_redacted still returns non-sensitive fields", function () { return sdk.api.integrations.load_redacted({}); }, { onResult: function (r) {
|
|
207
|
+
var found = r.integrations.find(function (i) { return i.id === sensitiveIntegrationId; });
|
|
208
|
+
return !!found && found.emailDisabled === true && found.title === 'Test All Sensitive Fields';
|
|
209
|
+
} })];
|
|
210
|
+
case 25:
|
|
211
|
+
_b.sent();
|
|
212
|
+
return [3 /*break*/, 35];
|
|
213
|
+
case 26:
|
|
214
|
+
if (!integrationId) return [3 /*break*/, 30];
|
|
215
|
+
_b.label = 27;
|
|
216
|
+
case 27:
|
|
217
|
+
_b.trys.push([27, 29, , 30]);
|
|
218
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(integrationId)];
|
|
219
|
+
case 28:
|
|
220
|
+
_b.sent();
|
|
221
|
+
return [3 /*break*/, 30];
|
|
222
|
+
case 29:
|
|
223
|
+
error_1 = _b.sent();
|
|
224
|
+
console.error('Cleanup error:', error_1);
|
|
225
|
+
return [3 /*break*/, 30];
|
|
226
|
+
case 30:
|
|
227
|
+
if (!sensitiveIntegrationId) return [3 /*break*/, 34];
|
|
228
|
+
_b.label = 31;
|
|
229
|
+
case 31:
|
|
230
|
+
_b.trys.push([31, 33, , 34]);
|
|
231
|
+
return [4 /*yield*/, sdk.api.integrations.deleteOne(sensitiveIntegrationId)];
|
|
232
|
+
case 32:
|
|
233
|
+
_b.sent();
|
|
234
|
+
return [3 /*break*/, 34];
|
|
235
|
+
case 33:
|
|
236
|
+
error_2 = _b.sent();
|
|
237
|
+
console.error('Cleanup error (sensitive integration):', error_2);
|
|
238
|
+
return [3 /*break*/, 34];
|
|
239
|
+
case 34: return [7 /*endfinally*/];
|
|
240
|
+
case 35: return [2 /*return*/];
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
exports.integrations_redacted_tests = integrations_redacted_tests;
|
|
246
|
+
if (require.main === module) {
|
|
247
|
+
console.log("Using API URL: ".concat(host));
|
|
248
|
+
var sdk_2 = new sdk_1.Session({ host: host });
|
|
249
|
+
var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
|
|
250
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
251
|
+
return __generator(this, function (_a) {
|
|
252
|
+
switch (_a.label) {
|
|
253
|
+
case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
|
|
254
|
+
case 1:
|
|
255
|
+
_a.sent();
|
|
256
|
+
return [4 /*yield*/, (0, exports.integrations_redacted_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
257
|
+
case 2:
|
|
258
|
+
_a.sent();
|
|
259
|
+
return [2 /*return*/];
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}); };
|
|
263
|
+
runTests()
|
|
264
|
+
.then(function () {
|
|
265
|
+
console.log("Integrations redacted test suite completed successfully");
|
|
266
|
+
process.exit(0);
|
|
267
|
+
})
|
|
268
|
+
.catch(function (error) {
|
|
269
|
+
console.error("Integrations redacted test suite failed:", error);
|
|
270
|
+
process.exit(1);
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
//# 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"}
|
|
@@ -116,7 +116,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
116
116
|
enduser2 = _b.sent();
|
|
117
117
|
_b.label = 3;
|
|
118
118
|
case 3:
|
|
119
|
-
_b.trys.push([3, ,
|
|
119
|
+
_b.trys.push([3, , 28, 31]);
|
|
120
120
|
// ===== SECTION A: V1 Validation =====
|
|
121
121
|
(0, testing_1.log_header)("V1 Validation");
|
|
122
122
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: missing patientID returns 400', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -188,6 +188,33 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
188
188
|
});
|
|
189
189
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
190
190
|
case 6:
|
|
191
|
+
_b.sent();
|
|
192
|
+
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_confirmation maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
|
+
var orderNum, res, orders;
|
|
194
|
+
return __generator(this, function (_a) {
|
|
195
|
+
switch (_a.label) {
|
|
196
|
+
case 0:
|
|
197
|
+
orderNum = "ol-conf-protocol-".concat(uid());
|
|
198
|
+
return [4 /*yield*/, postV1(makeV1Confirmation({
|
|
199
|
+
patientID: healthieId1,
|
|
200
|
+
orderNumber: orderNum,
|
|
201
|
+
program_code: 'Weight-Loss',
|
|
202
|
+
}))];
|
|
203
|
+
case 1:
|
|
204
|
+
res = _a.sent();
|
|
205
|
+
(0, testing_1.assert)(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
206
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
207
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
208
|
+
})];
|
|
209
|
+
case 2:
|
|
210
|
+
orders = _a.sent();
|
|
211
|
+
(0, testing_1.assert)(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
212
|
+
(0, testing_1.assert)(orders[0].protocol === 'Weight-Loss', "protocol mismatch: ".concat(orders[0].protocol));
|
|
213
|
+
return [2 /*return*/, true];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
217
|
+
case 7:
|
|
191
218
|
_b.sent();
|
|
192
219
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_confirmation idempotency - same order not duplicated', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
220
|
var res, orders;
|
|
@@ -215,7 +242,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
215
242
|
}
|
|
216
243
|
});
|
|
217
244
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
218
|
-
case
|
|
245
|
+
case 8:
|
|
219
246
|
_b.sent();
|
|
220
247
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_confirmation without sku_med falls back to pharmacy name', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
221
248
|
var orderNum, res, orders;
|
|
@@ -245,7 +272,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
245
272
|
}); }, { onResult: function (r) { return r === true; } })
|
|
246
273
|
// ===== SECTION C: V1 order_shipped =====
|
|
247
274
|
];
|
|
248
|
-
case
|
|
275
|
+
case 9:
|
|
249
276
|
_b.sent();
|
|
250
277
|
// ===== SECTION C: V1 order_shipped =====
|
|
251
278
|
(0, testing_1.log_header)("V1 order_shipped");
|
|
@@ -288,7 +315,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
288
315
|
}
|
|
289
316
|
});
|
|
290
317
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
291
|
-
case
|
|
318
|
+
case 10:
|
|
292
319
|
_b.sent();
|
|
293
320
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_shipped updates title and sku when provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
294
321
|
var res, orders, order;
|
|
@@ -318,7 +345,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
318
345
|
}
|
|
319
346
|
});
|
|
320
347
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
321
|
-
case
|
|
348
|
+
case 11:
|
|
322
349
|
_b.sent();
|
|
323
350
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_shipped creates new order if none exists', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
324
351
|
var newOrderNum, res, orders, order;
|
|
@@ -354,7 +381,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
354
381
|
}
|
|
355
382
|
});
|
|
356
383
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
357
|
-
case
|
|
384
|
+
case 12:
|
|
358
385
|
_b.sent();
|
|
359
386
|
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_shipped can re-ship with updated tracking', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
360
387
|
var reshipOrderNum, res, orders;
|
|
@@ -397,10 +424,40 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
397
424
|
return [2 /*return*/, true];
|
|
398
425
|
}
|
|
399
426
|
});
|
|
427
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
428
|
+
case 13:
|
|
429
|
+
_b.sent();
|
|
430
|
+
return [4 /*yield*/, (0, testing_1.async_test)('V1: order_shipped maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
431
|
+
var orderNum, res, orders;
|
|
432
|
+
return __generator(this, function (_a) {
|
|
433
|
+
switch (_a.label) {
|
|
434
|
+
case 0:
|
|
435
|
+
orderNum = "ol-ship-protocol-".concat(uid());
|
|
436
|
+
return [4 /*yield*/, postV1(makeV1Confirmation({ patientID: healthieId1, orderNumber: orderNum }))];
|
|
437
|
+
case 1:
|
|
438
|
+
_a.sent();
|
|
439
|
+
return [4 /*yield*/, postV1(makeV1Shipped({
|
|
440
|
+
patientID: healthieId1,
|
|
441
|
+
orderNumber: orderNum,
|
|
442
|
+
program_code: 'Diabetes',
|
|
443
|
+
}))];
|
|
444
|
+
case 2:
|
|
445
|
+
res = _a.sent();
|
|
446
|
+
(0, testing_1.assert)(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
447
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
448
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
449
|
+
})];
|
|
450
|
+
case 3:
|
|
451
|
+
orders = _a.sent();
|
|
452
|
+
(0, testing_1.assert)(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
453
|
+
(0, testing_1.assert)(orders[0].protocol === 'Diabetes', "protocol mismatch: ".concat(orders[0].protocol));
|
|
454
|
+
return [2 /*return*/, true];
|
|
455
|
+
}
|
|
456
|
+
});
|
|
400
457
|
}); }, { onResult: function (r) { return r === true; } })
|
|
401
458
|
// ===== SECTION D: V1 enduserId Isolation =====
|
|
402
459
|
];
|
|
403
|
-
case
|
|
460
|
+
case 14:
|
|
404
461
|
_b.sent();
|
|
405
462
|
// ===== SECTION D: V1 enduserId Isolation =====
|
|
406
463
|
(0, testing_1.log_header)("V1 enduserId Isolation");
|
|
@@ -439,7 +496,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
439
496
|
}); }, { onResult: function (r) { return r === true; } })
|
|
440
497
|
// ===== SECTION E: V2 Validation =====
|
|
441
498
|
];
|
|
442
|
-
case
|
|
499
|
+
case 15:
|
|
443
500
|
_b.sent();
|
|
444
501
|
// ===== SECTION E: V2 Validation =====
|
|
445
502
|
(0, testing_1.log_header)("V2 Validation");
|
|
@@ -457,7 +514,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
457
514
|
}
|
|
458
515
|
});
|
|
459
516
|
}); }, { onResult: function (s) { return s === 400; } })];
|
|
460
|
-
case
|
|
517
|
+
case 16:
|
|
461
518
|
_b.sent();
|
|
462
519
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: invalid eventType returns 400', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
463
520
|
var res;
|
|
@@ -470,7 +527,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
470
527
|
}
|
|
471
528
|
});
|
|
472
529
|
}); }, { onResult: function (s) { return s === 400; } })];
|
|
473
|
-
case
|
|
530
|
+
case 17:
|
|
474
531
|
_b.sent();
|
|
475
532
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: unknown patient returns 404', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
476
533
|
var res;
|
|
@@ -485,7 +542,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
485
542
|
}); }, { onResult: function (s) { return s === 404; } })
|
|
486
543
|
// ===== SECTION F: V2 Order Lifecycle =====
|
|
487
544
|
];
|
|
488
|
-
case
|
|
545
|
+
case 18:
|
|
489
546
|
_b.sent();
|
|
490
547
|
// ===== SECTION F: V2 Order Lifecycle =====
|
|
491
548
|
(0, testing_1.log_header)("V2 Order Lifecycle");
|
|
@@ -520,7 +577,34 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
520
577
|
}
|
|
521
578
|
});
|
|
522
579
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
523
|
-
case
|
|
580
|
+
case 19:
|
|
581
|
+
_b.sent();
|
|
582
|
+
return [4 /*yield*/, (0, testing_1.async_test)('V2: prescription-created maps program_code to protocol field', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
583
|
+
var orderNum, res, orders;
|
|
584
|
+
return __generator(this, function (_a) {
|
|
585
|
+
switch (_a.label) {
|
|
586
|
+
case 0:
|
|
587
|
+
orderNum = "v2-protocol-".concat(uid());
|
|
588
|
+
return [4 /*yield*/, postV2(makeV2Payload('prescription-created', {
|
|
589
|
+
id: orderNum,
|
|
590
|
+
patientId: healthieId1,
|
|
591
|
+
program_code: 'GLP-1',
|
|
592
|
+
}))];
|
|
593
|
+
case 1:
|
|
594
|
+
res = _a.sent();
|
|
595
|
+
(0, testing_1.assert)(res.status === 200, "Expected 200, got ".concat(res.status));
|
|
596
|
+
return [4 /*yield*/, sdk.api.enduser_orders.getSome({
|
|
597
|
+
filter: { source: 'OpenLoop', externalId: orderNum }
|
|
598
|
+
})];
|
|
599
|
+
case 2:
|
|
600
|
+
orders = _a.sent();
|
|
601
|
+
(0, testing_1.assert)(orders.length === 1, "Expected 1 order, got ".concat(orders.length));
|
|
602
|
+
(0, testing_1.assert)(orders[0].protocol === 'GLP-1', "protocol mismatch: ".concat(orders[0].protocol));
|
|
603
|
+
return [2 /*return*/, true];
|
|
604
|
+
}
|
|
605
|
+
});
|
|
606
|
+
}); }, { onResult: function (r) { return r === true; } })];
|
|
607
|
+
case 20:
|
|
524
608
|
_b.sent();
|
|
525
609
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: prescription-shipped updates with carrier and tracking', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
526
610
|
var res, orders, order;
|
|
@@ -553,7 +637,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
553
637
|
}
|
|
554
638
|
});
|
|
555
639
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
556
|
-
case
|
|
640
|
+
case 21:
|
|
557
641
|
_b.sent();
|
|
558
642
|
v2CancelId_1 = "v2-cancel-".concat(uid());
|
|
559
643
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: prescription-cancelled sets cancelledDate and reason', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -594,7 +678,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
594
678
|
}
|
|
595
679
|
});
|
|
596
680
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
597
|
-
case
|
|
681
|
+
case 22:
|
|
598
682
|
_b.sent();
|
|
599
683
|
v2RefundId_1 = "v2-refund-".concat(uid());
|
|
600
684
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: prescription-refunded sets status', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -628,7 +712,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
628
712
|
}); }, { onResult: function (r) { return r === true; } })
|
|
629
713
|
// ===== SECTION G: V2 Idempotency & Isolation =====
|
|
630
714
|
];
|
|
631
|
-
case
|
|
715
|
+
case 23:
|
|
632
716
|
_b.sent();
|
|
633
717
|
// ===== SECTION G: V2 Idempotency & Isolation =====
|
|
634
718
|
(0, testing_1.log_header)("V2 Idempotency & Isolation");
|
|
@@ -660,7 +744,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
660
744
|
}
|
|
661
745
|
});
|
|
662
746
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
663
|
-
case
|
|
747
|
+
case 24:
|
|
664
748
|
_b.sent();
|
|
665
749
|
return [4 /*yield*/, (0, testing_1.async_test)('V2: same id for different patients creates separate orders', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
666
750
|
var sharedV2Id, res1, res2, orders, enduserIds, expected;
|
|
@@ -697,7 +781,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
697
781
|
}); }, { onResult: function (r) { return r === true; } })
|
|
698
782
|
// ===== SECTION H: V2 Full Lifecycle =====
|
|
699
783
|
];
|
|
700
|
-
case
|
|
784
|
+
case 25:
|
|
701
785
|
_b.sent();
|
|
702
786
|
// ===== SECTION H: V2 Full Lifecycle =====
|
|
703
787
|
(0, testing_1.log_header)("V2 Full Lifecycle");
|
|
@@ -741,7 +825,7 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
741
825
|
}); }, { onResult: function (r) { return r === true; } })
|
|
742
826
|
// ===== SECTION I: V2 Undefined Field Handling =====
|
|
743
827
|
];
|
|
744
|
-
case
|
|
828
|
+
case 26:
|
|
745
829
|
_b.sent();
|
|
746
830
|
// ===== SECTION I: V2 Undefined Field Handling =====
|
|
747
831
|
(0, testing_1.log_header)("V2 Undefined Field Handling");
|
|
@@ -785,18 +869,18 @@ var openloop_webhooks_tests = function (_a) {
|
|
|
785
869
|
}
|
|
786
870
|
});
|
|
787
871
|
}); }, { onResult: function (r) { return r === true; } })];
|
|
788
|
-
case
|
|
872
|
+
case 27:
|
|
789
873
|
_b.sent();
|
|
790
874
|
console.log("All OpenLoop webhook tests passed!");
|
|
791
|
-
return [3 /*break*/,
|
|
792
|
-
case
|
|
793
|
-
case
|
|
875
|
+
return [3 /*break*/, 31];
|
|
876
|
+
case 28: return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser1.id).catch(console.error)];
|
|
877
|
+
case 29:
|
|
794
878
|
_b.sent();
|
|
795
879
|
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id).catch(console.error)];
|
|
796
|
-
case
|
|
880
|
+
case 30:
|
|
797
881
|
_b.sent();
|
|
798
882
|
return [7 /*endfinally*/];
|
|
799
|
-
case
|
|
883
|
+
case 31: return [2 /*return*/];
|
|
800
884
|
}
|
|
801
885
|
});
|
|
802
886
|
});
|