@tellescope/sdk 1.256.2 → 1.256.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts +6 -0
  2. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -0
  3. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js +298 -0
  4. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js.map +1 -0
  5. package/lib/cjs/tests/api_tests/phone_calls_move_enduser.test.d.ts +6 -0
  6. package/lib/cjs/tests/api_tests/phone_calls_move_enduser.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/phone_calls_move_enduser.test.js +274 -0
  8. package/lib/cjs/tests/api_tests/phone_calls_move_enduser.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/stripe_webhook_triggers.test.d.ts +18 -0
  10. package/lib/cjs/tests/api_tests/stripe_webhook_triggers.test.d.ts.map +1 -0
  11. package/lib/cjs/tests/api_tests/stripe_webhook_triggers.test.js +964 -0
  12. package/lib/cjs/tests/api_tests/stripe_webhook_triggers.test.js.map +1 -0
  13. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts +6 -0
  14. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts.map +1 -0
  15. package/lib/cjs/tests/api_tests/welle_partner_token.test.js +313 -0
  16. package/lib/cjs/tests/api_tests/welle_partner_token.test.js.map +1 -0
  17. package/lib/cjs/tests/stripe_webhook_helpers.d.ts +204 -0
  18. package/lib/cjs/tests/stripe_webhook_helpers.d.ts.map +1 -0
  19. package/lib/cjs/tests/stripe_webhook_helpers.js +286 -0
  20. package/lib/cjs/tests/stripe_webhook_helpers.js.map +1 -0
  21. package/lib/cjs/tests/tests.d.ts.map +1 -1
  22. package/lib/cjs/tests/tests.js +192 -180
  23. package/lib/cjs/tests/tests.js.map +1 -1
  24. package/lib/cjs/tests/unit_tests/translation.test.d.ts +3 -0
  25. package/lib/cjs/tests/unit_tests/translation.test.d.ts.map +1 -0
  26. package/lib/cjs/tests/unit_tests/translation.test.js.map +1 -0
  27. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts +6 -0
  28. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -0
  29. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js +294 -0
  30. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js.map +1 -0
  31. package/lib/esm/tests/api_tests/phone_calls_move_enduser.test.d.ts +6 -0
  32. package/lib/esm/tests/api_tests/phone_calls_move_enduser.test.d.ts.map +1 -0
  33. package/lib/esm/tests/api_tests/phone_calls_move_enduser.test.js +270 -0
  34. package/lib/esm/tests/api_tests/phone_calls_move_enduser.test.js.map +1 -0
  35. package/lib/esm/tests/api_tests/stripe_webhook_triggers.test.d.ts +18 -0
  36. package/lib/esm/tests/api_tests/stripe_webhook_triggers.test.d.ts.map +1 -0
  37. package/lib/esm/tests/api_tests/stripe_webhook_triggers.test.js +960 -0
  38. package/lib/esm/tests/api_tests/stripe_webhook_triggers.test.js.map +1 -0
  39. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts +6 -0
  40. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts.map +1 -0
  41. package/lib/esm/tests/api_tests/welle_partner_token.test.js +309 -0
  42. package/lib/esm/tests/api_tests/welle_partner_token.test.js.map +1 -0
  43. package/lib/esm/tests/stripe_webhook_helpers.d.ts +204 -0
  44. package/lib/esm/tests/stripe_webhook_helpers.d.ts.map +1 -0
  45. package/lib/esm/tests/stripe_webhook_helpers.js +267 -0
  46. package/lib/esm/tests/stripe_webhook_helpers.js.map +1 -0
  47. package/lib/esm/tests/tests.d.ts.map +1 -1
  48. package/lib/esm/tests/tests.js +192 -180
  49. package/lib/esm/tests/tests.js.map +1 -1
  50. package/lib/esm/tests/unit_tests/translation.test.d.ts +3 -0
  51. package/lib/esm/tests/unit_tests/translation.test.d.ts.map +1 -0
  52. package/lib/esm/tests/unit_tests/translation.test.js +52 -0
  53. package/lib/esm/tests/unit_tests/translation.test.js.map +1 -0
  54. package/lib/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +10 -10
  56. package/src/tests/api_tests/metriport_push_form_response.test.ts +226 -0
  57. package/src/tests/api_tests/stripe_webhook_triggers.test.ts +676 -0
  58. package/src/tests/api_tests/welle_partner_token.test.ts +249 -0
  59. package/src/tests/stripe_webhook_helpers.ts +240 -0
  60. package/src/tests/tests.ts +6 -0
  61. package/test_generated.pdf +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe_webhook_triggers.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/stripe_webhook_triggers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Session } from "../../sdk";
2
+ export declare const welle_partner_token_tests: ({ sdk, sdkNonAdmin }: {
3
+ sdk: Session;
4
+ sdkNonAdmin: Session;
5
+ }) => Promise<void>;
6
+ //# sourceMappingURL=welle_partner_token.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welle_partner_token.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/welle_partner_token.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAwCnD,eAAO,MAAM,yBAAyB;SAAwC,OAAO;iBAAe,OAAO;mBAuL1G,CAAA"}
@@ -0,0 +1,313 @@
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.welle_partner_token_tests = void 0;
40
+ require('source-map-support').install();
41
+ var crypto_1 = require("crypto");
42
+ var sdk_1 = require("../../sdk");
43
+ var testing_1 = require("@tellescope/testing");
44
+ var constants_1 = require("@tellescope/constants");
45
+ var setup_1 = require("../setup");
46
+ var host = process.env.API_URL || 'http://localhost:8080';
47
+ var SIGNING_KEY = 'welle_test_signing_key_do_not_use_in_prod';
48
+ var HEALTHIE_PATIENT_ID = '999888777';
49
+ // decoding needs no dependency: these tests assert on CLAIMS, and verify the signature separately with crypto
50
+ var decode_jwt_header = function (token) { return (JSON.parse(Buffer.from(token.split('.')[0], 'base64url').toString())); };
51
+ var decode_jwt_payload = function (token) { return JSON.parse(Buffer.from(token.split('.')[1], 'base64url').toString()); };
52
+ var sign_hs256 = function (signingInput, key) { return ((0, crypto_1.createHmac)('sha256', key).update(signingInput).digest('base64url')); };
53
+ // reset_db does NOT clear integrations, so a crashed prior run can leave a Welle record behind.
54
+ // The partner-token branch does findOne({ title: WELLE_TITLE }), so a stray record would make the
55
+ // "disconnected" assertion pass spuriously — clear them all rather than only the one we created.
56
+ var delete_all_welle_integrations = function (sdk) { return __awaiter(void 0, void 0, void 0, function () {
57
+ var existing, _i, _a, integration;
58
+ return __generator(this, function (_b) {
59
+ switch (_b.label) {
60
+ case 0: return [4 /*yield*/, sdk.api.integrations.getSome({})];
61
+ case 1:
62
+ existing = _b.sent();
63
+ _i = 0, _a = existing.filter(function (i) { return i.title === constants_1.WELLE_TITLE; });
64
+ _b.label = 2;
65
+ case 2:
66
+ if (!(_i < _a.length)) return [3 /*break*/, 5];
67
+ integration = _a[_i];
68
+ return [4 /*yield*/, sdk.api.integrations.deleteOne(integration.id).catch(console.error)];
69
+ case 3:
70
+ _b.sent();
71
+ _b.label = 4;
72
+ case 4:
73
+ _i++;
74
+ return [3 /*break*/, 2];
75
+ case 5: return [2 /*return*/];
76
+ }
77
+ });
78
+ }); };
79
+ var welle_partner_token_tests = function (_a) {
80
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
81
+ return __awaiter(void 0, void 0, void 0, function () {
82
+ var suffix, linkedEmail, unlinkedEmail, linkedId, unlinkedId, linked, unlinked, linkedSDK_1, unlinkedSDK_1, issuedToken_1, _b, header, payload, signature, _i, _c, id;
83
+ return __generator(this, function (_d) {
84
+ switch (_d.label) {
85
+ case 0:
86
+ (0, testing_1.log_header)("Welle Partner Token Tests");
87
+ suffix = Math.random().toString(36).slice(2, 10);
88
+ linkedEmail = "welle.linked.".concat(suffix, "@tellescope.com");
89
+ unlinkedEmail = "welle.unlinked.".concat(suffix, "@tellescope.com");
90
+ linkedId = '';
91
+ unlinkedId = '';
92
+ _d.label = 1;
93
+ case 1:
94
+ _d.trys.push([1, , 24, 31]);
95
+ return [4 /*yield*/, delete_all_welle_integrations(sdk)];
96
+ case 2:
97
+ _d.sent();
98
+ return [4 /*yield*/, sdk.api.integrations.createOne({
99
+ title: constants_1.WELLE_TITLE,
100
+ authentication: {
101
+ type: 'apiKey',
102
+ info: {
103
+ access_token: SIGNING_KEY,
104
+ refresh_token: 'unused',
105
+ scope: '',
106
+ token_type: 'Bearer',
107
+ expiry_date: 0,
108
+ },
109
+ },
110
+ })
111
+ // an enduser linked to Healthie — eligible for a partner token
112
+ ];
113
+ case 3:
114
+ _d.sent();
115
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: linkedEmail, fname: 'Welle', lname: 'Linked' })];
116
+ case 4:
117
+ linked = _d.sent();
118
+ linkedId = linked.id;
119
+ return [4 /*yield*/, sdk.api.endusers.updateOne(linkedId, { references: [{ type: constants_1.HEALTHIE_TITLE, id: HEALTHIE_PATIENT_ID }] }, { replaceObjectFields: true })
120
+ // an enduser with no Healthie reference
121
+ ];
122
+ case 5:
123
+ _d.sent();
124
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: unlinkedEmail, fname: 'Welle', lname: 'Unlinked' })];
125
+ case 6:
126
+ unlinked = _d.sent();
127
+ unlinkedId = unlinked.id;
128
+ linkedSDK_1 = new sdk_1.EnduserSession({ host: host, businessId: sdk.userInfo.businessId });
129
+ return [4 /*yield*/, (0, setup_1.authenticate_enduser_via_token)(sdk, linkedSDK_1, { email: linkedEmail })];
130
+ case 7:
131
+ _d.sent();
132
+ unlinkedSDK_1 = new sdk_1.EnduserSession({ host: host, businessId: sdk.userInfo.businessId });
133
+ return [4 /*yield*/, (0, setup_1.authenticate_enduser_via_token)(sdk, unlinkedSDK_1, { email: unlinkedEmail })
134
+ // 1) happy path — claims are correct
135
+ ];
136
+ case 8:
137
+ _d.sent();
138
+ issuedToken_1 = '';
139
+ return [4 /*yield*/, (0, testing_1.async_test)("enduser can mint a Welle partner token with the expected claims", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) {
140
+ var _a;
141
+ issuedToken_1 = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
142
+ if (!issuedToken_1)
143
+ return false;
144
+ var header = decode_jwt_header(issuedToken_1);
145
+ var payload = decode_jwt_payload(issuedToken_1);
146
+ var expectedExp = Math.floor(Date.now() / 1000) + 3600;
147
+ return (header.alg === 'HS256'
148
+ && payload.patientId === HEALTHIE_PATIENT_ID
149
+ && Math.abs(payload.exp - expectedExp) < 60);
150
+ } })
151
+ // 2) the signature is real — verifies against the stored signing key, and only that key
152
+ ];
153
+ case 9:
154
+ _d.sent();
155
+ _b = issuedToken_1.split('.'), header = _b[0], payload = _b[1], signature = _b[2];
156
+ (0, testing_1.assert)(sign_hs256("".concat(header, ".").concat(payload), SIGNING_KEY) === signature, "token signature does not verify against the stored Welle signing key", "token is signed with the organization's Welle signing key");
157
+ (0, testing_1.assert)(sign_hs256("".concat(header, ".").concat(payload), "".concat(SIGNING_KEY, "_wrong")) !== signature, "token signature verified against the WRONG key", "token signature does not verify against a different key");
158
+ // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
159
+ return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot mint a token for another enduser by passing id", function () { return linkedSDK_1.api.integrations.proxy_read({
160
+ integration: constants_1.WELLE_TITLE,
161
+ type: 'partner-redirect-token',
162
+ id: unlinkedId,
163
+ }); }, { onResult: function (r) {
164
+ var _a;
165
+ return (!!((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token) && decode_jwt_payload(r.data.token).patientId === HEALTHIE_PATIENT_ID);
166
+ } })
167
+ // 4) an enduser with no Healthie reference gets no token
168
+ ];
169
+ case 10:
170
+ // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
171
+ _d.sent();
172
+ // 4) an enduser with no Healthie reference gets no token
173
+ return [4 /*yield*/, (0, testing_1.async_test)("enduser without a Healthie reference cannot mint a token", function () { return unlinkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser has no Healthie reference'); } })
174
+ // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
175
+ ];
176
+ case 11:
177
+ // 4) an enduser with no Healthie reference gets no token
178
+ _d.sent();
179
+ // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
180
+ return [4 /*yield*/, (0, testing_1.async_test)("admin user session is not issued a Welle partner token", function () { return sdk.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); } })];
181
+ case 12:
182
+ // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
183
+ _d.sent();
184
+ return [4 /*yield*/, (0, testing_1.async_test)("non-admin user session is not issued a Welle partner token", function () { return sdkNonAdmin.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); } })
185
+ // 6) no other Welle proxy_read type is reachable by an enduser
186
+ ];
187
+ case 13:
188
+ _d.sent();
189
+ // 6) no other Welle proxy_read type is reachable by an enduser
190
+ return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot read other Welle proxy types", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'anything-else' }); }, { shouldError: true, onError: function (e) { return (((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser session type not valid for this integration type')); } })
191
+ // 7) with the integration disconnected, no token can be minted
192
+ ];
193
+ case 14:
194
+ // 6) no other Welle proxy_read type is reachable by an enduser
195
+ _d.sent();
196
+ // 7) with the integration disconnected, no token can be minted
197
+ return [4 /*yield*/, delete_all_welle_integrations(sdk)];
198
+ case 15:
199
+ // 7) with the integration disconnected, no token can be minted
200
+ _d.sent();
201
+ return [4 /*yield*/, (0, testing_1.async_test)("no token is issued once the Welle integration is disconnected", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); } })
202
+ // 8) the real connect path — add_api_key_integration, not integrations.createOne.
203
+ // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
204
+ // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
205
+ ];
206
+ case 16:
207
+ _d.sent();
208
+ // 8) the real connect path — add_api_key_integration, not integrations.createOne.
209
+ // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
210
+ // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
211
+ return [4 /*yield*/, (0, testing_1.async_test)("add_api_key_integration connects Welle", function () { return sdk.api.integrations.add_api_key_integration({ integration: constants_1.WELLE_TITLE, API_KEY: SIGNING_KEY }); }, { onResult: function (r) { var _a; return ((_a = r === null || r === void 0 ? void 0 : r.integration) === null || _a === void 0 ? void 0 : _a.title) === constants_1.WELLE_TITLE; } })];
212
+ case 17:
213
+ // 8) the real connect path — add_api_key_integration, not integrations.createOne.
214
+ // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
215
+ // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
216
+ _d.sent();
217
+ return [4 /*yield*/, (0, testing_1.async_test)("add_api_key_integration sets hasConnectedWelle", function () { return sdk.api.organizations.getOne(sdk.userInfo.businessId); }, { onResult: function (o) { return (o === null || o === void 0 ? void 0 : o.hasConnectedWelle) === true; } })
218
+ // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
219
+ // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
220
+ ];
221
+ case 18:
222
+ _d.sent();
223
+ // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
224
+ // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
225
+ return [4 /*yield*/, (0, testing_1.async_test)("token minted from the add_api_key_integration credential verifies", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) {
226
+ var _a;
227
+ var token = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
228
+ if (!token)
229
+ return false;
230
+ var _b = token.split('.'), h = _b[0], p = _b[1], s = _b[2];
231
+ return sign_hs256("".concat(h, ".").concat(p), SIGNING_KEY) === s
232
+ && decode_jwt_payload(token).patientId === HEALTHIE_PATIENT_ID;
233
+ } })
234
+ // 9) the real disconnect path — remove_api_key_integration
235
+ ];
236
+ case 19:
237
+ // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
238
+ // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
239
+ _d.sent();
240
+ // 9) the real disconnect path — remove_api_key_integration
241
+ return [4 /*yield*/, (0, testing_1.async_test)("remove_api_key_integration disconnects Welle", function () { return sdk.api.integrations.remove_api_key_integration({ integration: constants_1.WELLE_TITLE }); }, { onResult: function () { return true; } })
242
+ // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
243
+ ];
244
+ case 20:
245
+ // 9) the real disconnect path — remove_api_key_integration
246
+ _d.sent();
247
+ // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
248
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
249
+ case 21:
250
+ // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
251
+ _d.sent();
252
+ return [4 /*yield*/, (0, testing_1.async_test)("remove_api_key_integration clears hasConnectedWelle", function () { return sdk.api.organizations.getOne(sdk.userInfo.businessId); }, { onResult: function (o) { return !(o === null || o === void 0 ? void 0 : o.hasConnectedWelle); } })];
253
+ case 22:
254
+ _d.sent();
255
+ return [4 /*yield*/, (0, testing_1.async_test)("no token is issued after remove_api_key_integration", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); } })];
256
+ case 23:
257
+ _d.sent();
258
+ return [3 /*break*/, 31];
259
+ case 24: return [4 /*yield*/, delete_all_welle_integrations(sdk).catch(console.error)];
260
+ case 25:
261
+ _d.sent();
262
+ return [4 /*yield*/, sdk.api.organizations.updateOne(sdk.userInfo.businessId, { hasConnectedWelle: false }).catch(console.error)];
263
+ case 26:
264
+ _d.sent();
265
+ _i = 0, _c = [linkedId, unlinkedId];
266
+ _d.label = 27;
267
+ case 27:
268
+ if (!(_i < _c.length)) return [3 /*break*/, 30];
269
+ id = _c[_i];
270
+ if (!id)
271
+ return [3 /*break*/, 29];
272
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(console.error)];
273
+ case 28:
274
+ _d.sent();
275
+ _d.label = 29;
276
+ case 29:
277
+ _i++;
278
+ return [3 /*break*/, 27];
279
+ case 30: return [7 /*endfinally*/];
280
+ case 31: return [2 /*return*/];
281
+ }
282
+ });
283
+ });
284
+ };
285
+ exports.welle_partner_token_tests = welle_partner_token_tests;
286
+ // Allow running this test file independently
287
+ if (require.main === module) {
288
+ var sdk_2 = new sdk_1.Session({ host: host });
289
+ var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
290
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
291
+ return __generator(this, function (_a) {
292
+ switch (_a.label) {
293
+ case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
294
+ case 1:
295
+ _a.sent();
296
+ return [4 /*yield*/, (0, exports.welle_partner_token_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
297
+ case 2:
298
+ _a.sent();
299
+ return [2 /*return*/];
300
+ }
301
+ });
302
+ }); };
303
+ runTests()
304
+ .then(function () {
305
+ console.log("✅ Welle partner token test suite completed successfully");
306
+ process.exit(0);
307
+ })
308
+ .catch(function (error) {
309
+ console.error("❌ Welle partner token test suite failed:", error);
310
+ process.exit(1);
311
+ });
312
+ }
313
+ //# sourceMappingURL=welle_partner_token.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welle_partner_token.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/welle_partner_token.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import { Session } from "../sdk";
2
+ export declare const TEST_STRIPE_ENVIRONMENT = "tellescope-test-stripe-webhooks";
3
+ /**
4
+ * Stripe signs `${timestamp}.${rawBody}` with HMAC-SHA256 and sends it hex-encoded in a
5
+ * `t=<unixSeconds>,v1=<hex>` header. Reproducing it here lets tests exercise the real webhook
6
+ * route — signature verification included — without Stripe or network access.
7
+ *
8
+ * The default timestamp is always in tolerance (Stripe allows 300s and only rejects old ones);
9
+ * pass an old timestamp explicitly to test rejection.
10
+ */
11
+ export declare const sign_stripe_payload: (rawBody: string, secret: string, timestamp?: number) => string;
12
+ /**
13
+ * POSTs an event to the custom Stripe webhook route.
14
+ *
15
+ * Serializes the body here and signs those exact bytes, because the route uses
16
+ * express.raw and the signature covers the raw body verbatim — handing a pre-serialized
17
+ * string to fetch is what keeps the two in sync.
18
+ *
19
+ * Pass `signature` to override the computed one (for rejection tests).
20
+ */
21
+ export declare const post_stripe_webhook: ({ stripePublicKey, event, secret, signature }: {
22
+ stripePublicKey: string;
23
+ event: object;
24
+ secret: string;
25
+ signature?: string | undefined;
26
+ }) => Promise<{
27
+ status: number;
28
+ data: string;
29
+ }>;
30
+ /**
31
+ * Creates a throwaway custom Stripe integration and returns the values needed to sign webhooks for
32
+ * it, plus a cleanup function to call in a finally block.
33
+ *
34
+ * The access token is never used: neither invoice.payment_failed nor customer.subscription.deleted
35
+ * calls the Stripe API, and constructing a Stripe client doesn't validate the key or hit the network.
36
+ */
37
+ export declare const setup_stripe_test_integration: (sdk: Session) => Promise<{
38
+ stripePublicKey: string;
39
+ webhooksSecret: string;
40
+ integrationId: string;
41
+ cleanup: () => Promise<void>;
42
+ }>;
43
+ /** Deletes any test Stripe integrations left behind by a run that exited before its cleanup. */
44
+ export declare const cleanup_stripe_test_integrations: (sdk: Session) => Promise<void>;
45
+ export declare const line_with_price_product: (stripeProductId: string) => {
46
+ price: {
47
+ product: string;
48
+ };
49
+ };
50
+ export declare const line_with_expanded_price_product: (stripeProductId: string) => {
51
+ price: {
52
+ product: {
53
+ id: string;
54
+ object: string;
55
+ };
56
+ };
57
+ };
58
+ export declare const line_with_plan_product: (stripeProductId: string) => {
59
+ price: null;
60
+ plan: {
61
+ product: string;
62
+ };
63
+ };
64
+ /**
65
+ * Minimal invoice.payment_failed envelope. constructEvent only requires valid JSON — it does not
66
+ * validate id/object/api_version — so this carries just the fields the handler reads.
67
+ */
68
+ export declare const invoice_payment_failed_event: ({ stripeCustomerId, lines, has_more }: {
69
+ stripeCustomerId: string;
70
+ lines?: object[] | undefined;
71
+ has_more?: boolean | undefined;
72
+ }) => {
73
+ type: string;
74
+ data: {
75
+ object: {
76
+ id: string;
77
+ customer: string;
78
+ lines: {
79
+ object: string;
80
+ data: object[];
81
+ has_more: boolean;
82
+ };
83
+ };
84
+ };
85
+ };
86
+ /** Minimal customer.subscription.deleted envelope; the handler reads items.data[].plan.product. */
87
+ export declare const subscription_deleted_event: ({ stripeCustomerId, stripeProductIds }: {
88
+ stripeCustomerId: string;
89
+ stripeProductIds?: string[] | undefined;
90
+ }) => {
91
+ type: string;
92
+ data: {
93
+ object: {
94
+ id: string;
95
+ customer: string;
96
+ items: {
97
+ object: string;
98
+ data: {
99
+ plan: {
100
+ product: string;
101
+ };
102
+ }[];
103
+ };
104
+ };
105
+ };
106
+ };
107
+ /**
108
+ * A subscription item references its product through price.product on every modern item, and through
109
+ * plan.product on legacy ones. Either may be a bare id or an expanded object.
110
+ */
111
+ export declare const item_with_price_product: (stripeProductId: string) => {
112
+ price: {
113
+ product: string;
114
+ };
115
+ };
116
+ export declare const item_with_expanded_price_product: (stripeProductId: string) => {
117
+ price: {
118
+ product: {
119
+ id: string;
120
+ object: string;
121
+ };
122
+ };
123
+ };
124
+ export declare const item_with_plan_product: (stripeProductId: string) => {
125
+ price: null;
126
+ plan: {
127
+ product: string;
128
+ };
129
+ };
130
+ /** A pause_collection value, as Stripe carries it on a paused-collection subscription. */
131
+ export declare const PAUSE_COLLECTION: {
132
+ behavior: string;
133
+ resumes_at: null;
134
+ };
135
+ /**
136
+ * customer.subscription.updated envelope. `previousAttributes` is the whole previous_attributes bag,
137
+ * so a case can express "pause_collection key absent" (pass {}) distinctly from
138
+ * "pause_collection was null" (pass { pause_collection: null }) — that distinction is the entire
139
+ * gate the handler uses to avoid running on every renewal.
140
+ */
141
+ export declare const subscription_updated_event: ({ stripeCustomerId, items, previousAttributes, pauseCollection, status, }: {
142
+ stripeCustomerId: string;
143
+ items?: object[] | undefined;
144
+ previousAttributes?: object | undefined;
145
+ pauseCollection?: object | null | undefined;
146
+ status?: string | undefined;
147
+ }) => {
148
+ type: string;
149
+ data: {
150
+ object: {
151
+ id: string;
152
+ customer: string;
153
+ status: string;
154
+ pause_collection: object | null;
155
+ items: {
156
+ object: string;
157
+ data: object[];
158
+ has_more: boolean;
159
+ };
160
+ };
161
+ previous_attributes: object;
162
+ };
163
+ };
164
+ export declare const subscription_paused_event: ({ stripeCustomerId, items, status }: {
165
+ stripeCustomerId: string;
166
+ items?: object[] | undefined;
167
+ status?: string | undefined;
168
+ }) => {
169
+ type: string;
170
+ data: {
171
+ object: {
172
+ id: string;
173
+ customer: string;
174
+ status: string;
175
+ pause_collection: null;
176
+ items: {
177
+ object: string;
178
+ data: object[];
179
+ has_more: boolean;
180
+ };
181
+ };
182
+ };
183
+ };
184
+ export declare const subscription_resumed_event: ({ stripeCustomerId, items, status }: {
185
+ stripeCustomerId: string;
186
+ items?: object[] | undefined;
187
+ status?: string | undefined;
188
+ }) => {
189
+ type: string;
190
+ data: {
191
+ object: {
192
+ id: string;
193
+ customer: string;
194
+ status: string;
195
+ pause_collection: null;
196
+ items: {
197
+ object: string;
198
+ data: object[];
199
+ has_more: boolean;
200
+ };
201
+ };
202
+ };
203
+ };
204
+ //# sourceMappingURL=stripe_webhook_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe_webhook_helpers.d.ts","sourceRoot":"","sources":["../../../src/tests/stripe_webhook_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAOhC,eAAO,MAAM,uBAAuB,oCAAoC,CAAA;AAQxE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,YACrB,MAAM,UACP,MAAM,+BAIf,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;qBACb,MAAM;WAChB,MAAM;YACL,MAAM;;;;;EAgBf,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,QAAe,OAAO;;;;;EAkC/D,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,gCAAgC,QAAe,OAAO,kBASlE,CAAA;AAOD,eAAO,MAAM,uBAAuB,oBAAqB,MAAM;;;;CAE7D,CAAA;AACF,eAAO,MAAM,gCAAgC,oBAAqB,MAAM;;;;;;;CAEtE,CAAA;AACF,eAAO,MAAM,sBAAsB,oBAAqB,MAAM;;;;;CAG5D,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;sBACrB,MAAM;;;;;;;;;;;;;;;;CAYxB,CAAA;AAEF,mGAAmG;AACnG,eAAO,MAAM,0BAA0B;sBACnB,MAAM;;;;;;;;;;;;;;;;;;CAcxB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,oBAAqB,MAAM;;;;CAE7D,CAAA;AACF,eAAO,MAAM,gCAAgC,oBAAqB,MAAM;;;;;;;CAEtE,CAAA;AACF,eAAO,MAAM,sBAAsB,oBAAqB,MAAM;;;;;CAG5D,CAAA;AAEF,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB;;;CAAyC,CAAA;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;sBAGnB,MAAM;;;;;;;;;;;;;;;;;;;;;CAiBxB,CAAA;AAuBF,eAAO,MAAM,yBAAyB;sBAhBlB,MAAM;;;;;;;;;;;;;;;;;;CAgBuE,CAAA;AACjG,eAAO,MAAM,0BAA0B;sBAjBnB,MAAM;;;;;;;;;;;;;;;;;;CAiByE,CAAA"}