@tellescope/sdk 1.255.14 → 1.255.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts +6 -0
- package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/formsort_header_auth.test.js +221 -0
- package/lib/cjs/tests/api_tests/formsort_header_auth.test.js.map +1 -0
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +103 -99
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts +6 -0
- package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/formsort_header_auth.test.js +214 -0
- package/lib/esm/tests/api_tests/formsort_header_auth.test.js.map +1 -0
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +103 -99
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/tests/api_tests/formsort_header_auth.test.ts +179 -0
- package/src/tests/tests.ts +2 -0
- package/test_generated.pdf +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formsort_header_auth.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/formsort_header_auth.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,eAAO,MAAM,0BAA0B;SAAwC,OAAO;iBAAe,OAAO;mBA6I3G,CAAA"}
|
|
@@ -0,0 +1,214 @@
|
|
|
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 axios from "axios";
|
|
39
|
+
import { Session } from "../../sdk";
|
|
40
|
+
import { log_header, async_test, assert } from "@tellescope/testing";
|
|
41
|
+
import { setup_tests } from "../setup";
|
|
42
|
+
var host = process.env.API_URL || "http://localhost:8080";
|
|
43
|
+
// same seeded test API key used by formsort_tests (tests.ts)
|
|
44
|
+
var TEST_API_KEY = "9d4f9dff00f60df2690a16da2cb848f289b447614ad9bef850e54af09a1fbf7a";
|
|
45
|
+
// seeded second-tenant key (sdkOther in tests.ts) — valid, but for a different organization
|
|
46
|
+
var OTHER_TENANT_API_KEY = "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7";
|
|
47
|
+
var TEST_EMAIL = "formsort-header-auth@tellescope.com";
|
|
48
|
+
export var formsort_header_auth_tests = function (_a) {
|
|
49
|
+
var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
|
|
50
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
51
|
+
var form, buildUrl, bodyFor, formResponseIds, headerAuthResult_1, pathAuthResult, bearerFallthroughResult, aliasResult, emptyValueResult, singleTokenResult, _i, formResponseIds_1, id, err_1, enduser, err_2, err_3;
|
|
52
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
53
|
+
return __generator(this, function (_q) {
|
|
54
|
+
switch (_q.label) {
|
|
55
|
+
case 0:
|
|
56
|
+
log_header("FormSort Header Auth Tests");
|
|
57
|
+
return [4 /*yield*/, sdk.api.forms.createOne({ title: "FormSort Header Auth" })];
|
|
58
|
+
case 1:
|
|
59
|
+
form = _q.sent();
|
|
60
|
+
buildUrl = function (route, pathSegment) {
|
|
61
|
+
var url = new URL("".concat(host, "/v1/webhooks/").concat(route, "/").concat(pathSegment));
|
|
62
|
+
url.searchParams.set('formId', form.id);
|
|
63
|
+
url.searchParams.set('returnJSON', 'true');
|
|
64
|
+
return url.toString();
|
|
65
|
+
};
|
|
66
|
+
bodyFor = function (responder_uuid) { return ({
|
|
67
|
+
answers: [{ key: 'email', value: TEST_EMAIL }],
|
|
68
|
+
responder_uuid: responder_uuid,
|
|
69
|
+
finalized: true,
|
|
70
|
+
}); };
|
|
71
|
+
formResponseIds = [];
|
|
72
|
+
_q.label = 2;
|
|
73
|
+
case 2:
|
|
74
|
+
_q.trys.push([2, , 13, 27]);
|
|
75
|
+
return [4 /*yield*/, axios.post(buildUrl('formsort', 'key-in-header'), bodyFor("fha-1"), { headers: { Authorization: "API_KEY ".concat(TEST_API_KEY) } })];
|
|
76
|
+
case 3:
|
|
77
|
+
headerAuthResult_1 = _q.sent();
|
|
78
|
+
assert(headerAuthResult_1.status === 200 && !!((_b = headerAuthResult_1.data) === null || _b === void 0 ? void 0 : _b.formResponseId) && !!((_c = headerAuthResult_1.data) === null || _c === void 0 ? void 0 : _c.enduserId), "Header auth failed: ".concat(headerAuthResult_1.status, " ").concat(JSON.stringify(headerAuthResult_1.data)), "Valid API_KEY header authenticates");
|
|
79
|
+
if ((_d = headerAuthResult_1.data) === null || _d === void 0 ? void 0 : _d.formResponseId)
|
|
80
|
+
formResponseIds.push(headerAuthResult_1.data.formResponseId);
|
|
81
|
+
return [4 /*yield*/, async_test("Form response created via header auth is retrievable", function () { return sdk.api.form_responses.getOne(headerAuthResult_1.data.formResponseId); }, { onResult: function (fr) { return fr.formId === form.id && fr.source === 'Formsort' && !!fr.submittedAt; } })
|
|
82
|
+
// 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
|
|
83
|
+
];
|
|
84
|
+
case 4:
|
|
85
|
+
_q.sent();
|
|
86
|
+
// 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
|
|
87
|
+
return [4 /*yield*/, async_test("Invalid API_KEY header rejected despite valid key in path", function () { return axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-2"), { headers: { Authorization: "API_KEY not-a-real-key" } }); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
|
|
88
|
+
// 3. Back-compat: valid key in path, no Authorization header
|
|
89
|
+
];
|
|
90
|
+
case 5:
|
|
91
|
+
// 2. Invalid key in header rejected, even with a valid key in the path (header takes precedence)
|
|
92
|
+
_q.sent();
|
|
93
|
+
return [4 /*yield*/, axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-3"))];
|
|
94
|
+
case 6:
|
|
95
|
+
pathAuthResult = _q.sent();
|
|
96
|
+
assert(pathAuthResult.status === 200 && !!((_e = pathAuthResult.data) === null || _e === void 0 ? void 0 : _e.formResponseId), "Path auth failed: ".concat(pathAuthResult.status, " ").concat(JSON.stringify(pathAuthResult.data)), "Path-segment API key still authenticates (no header)");
|
|
97
|
+
if ((_f = pathAuthResult.data) === null || _f === void 0 ? void 0 : _f.formResponseId)
|
|
98
|
+
formResponseIds.push(pathAuthResult.data.formResponseId);
|
|
99
|
+
return [4 /*yield*/, axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-4"), { headers: { Authorization: 'Bearer unrelated-token' } })];
|
|
100
|
+
case 7:
|
|
101
|
+
bearerFallthroughResult = _q.sent();
|
|
102
|
+
assert(bearerFallthroughResult.status === 200 && !!((_g = bearerFallthroughResult.data) === null || _g === void 0 ? void 0 : _g.formResponseId), "Bearer fallthrough failed: ".concat(bearerFallthroughResult.status, " ").concat(JSON.stringify(bearerFallthroughResult.data)), "Non-API_KEY Authorization scheme falls through to path key");
|
|
103
|
+
if ((_h = bearerFallthroughResult.data) === null || _h === void 0 ? void 0 : _h.formResponseId)
|
|
104
|
+
formResponseIds.push(bearerFallthroughResult.data.formResponseId);
|
|
105
|
+
// 5. No valid key in header or path
|
|
106
|
+
return [4 /*yield*/, async_test("No valid key anywhere rejected", function () { return axios.post(buildUrl('formsort', 'not-a-real-key'), bodyFor("fha-5")); }, { shouldError: true, onError: function (e) { var _a; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401; } })
|
|
107
|
+
// 6. Alias route accepts header auth too
|
|
108
|
+
];
|
|
109
|
+
case 8:
|
|
110
|
+
// 5. No valid key in header or path
|
|
111
|
+
_q.sent();
|
|
112
|
+
return [4 /*yield*/, axios.post(buildUrl('form-ingestion', 'key-in-header'), bodyFor("fha-6"), { headers: { Authorization: "API_KEY ".concat(TEST_API_KEY) } })];
|
|
113
|
+
case 9:
|
|
114
|
+
aliasResult = _q.sent();
|
|
115
|
+
assert(aliasResult.status === 200 && !!((_j = aliasResult.data) === null || _j === void 0 ? void 0 : _j.formResponseId), "form-ingestion header auth failed: ".concat(aliasResult.status, " ").concat(JSON.stringify(aliasResult.data)), "form-ingestion alias accepts API_KEY header");
|
|
116
|
+
if ((_k = aliasResult.data) === null || _k === void 0 ? void 0 : _k.formResponseId)
|
|
117
|
+
formResponseIds.push(aliasResult.data.formResponseId);
|
|
118
|
+
return [4 /*yield*/, axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-7"), { headers: { Authorization: 'API_KEY' } })];
|
|
119
|
+
case 10:
|
|
120
|
+
emptyValueResult = _q.sent();
|
|
121
|
+
assert(emptyValueResult.status === 200 && !!((_l = emptyValueResult.data) === null || _l === void 0 ? void 0 : _l.formResponseId), "Empty-value header fallthrough failed: ".concat(emptyValueResult.status, " ").concat(JSON.stringify(emptyValueResult.data)), "API_KEY scheme without value falls through to path key");
|
|
122
|
+
if ((_m = emptyValueResult.data) === null || _m === void 0 ? void 0 : _m.formResponseId)
|
|
123
|
+
formResponseIds.push(emptyValueResult.data.formResponseId);
|
|
124
|
+
return [4 /*yield*/, axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-8"), { headers: { Authorization: 'some-opaque-token' } })];
|
|
125
|
+
case 11:
|
|
126
|
+
singleTokenResult = _q.sent();
|
|
127
|
+
assert(singleTokenResult.status === 200 && !!((_o = singleTokenResult.data) === null || _o === void 0 ? void 0 : _o.formResponseId), "Single-token header fallthrough failed: ".concat(singleTokenResult.status, " ").concat(JSON.stringify(singleTokenResult.data)), "Schemeless Authorization header falls through to path key");
|
|
128
|
+
if ((_p = singleTokenResult.data) === null || _p === void 0 ? void 0 : _p.formResponseId)
|
|
129
|
+
formResponseIds.push(singleTokenResult.data.formResponseId);
|
|
130
|
+
// 9. When header and path both hold VALID keys, the header key's organization scopes the request:
|
|
131
|
+
// the formId belongs to the primary tenant, so an other-tenant header key must fail form lookup (400),
|
|
132
|
+
// proving the path key's org is not used
|
|
133
|
+
return [4 /*yield*/, async_test("Valid other-tenant header key overrides valid path key (org scoping)", function () { return axios.post(buildUrl('formsort', TEST_API_KEY), bodyFor("fha-9"), { headers: { Authorization: "API_KEY ".concat(OTHER_TENANT_API_KEY) } }); }, { shouldError: true, onError: function (e) { var _a, _b; return ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 400 && ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) === 'formId Invalid'; } })];
|
|
134
|
+
case 12:
|
|
135
|
+
// 9. When header and path both hold VALID keys, the header key's organization scopes the request:
|
|
136
|
+
// the formId belongs to the primary tenant, so an other-tenant header key must fail form lookup (400),
|
|
137
|
+
// proving the path key's org is not used
|
|
138
|
+
_q.sent();
|
|
139
|
+
return [3 /*break*/, 27];
|
|
140
|
+
case 13:
|
|
141
|
+
_i = 0, formResponseIds_1 = formResponseIds;
|
|
142
|
+
_q.label = 14;
|
|
143
|
+
case 14:
|
|
144
|
+
if (!(_i < formResponseIds_1.length)) return [3 /*break*/, 19];
|
|
145
|
+
id = formResponseIds_1[_i];
|
|
146
|
+
_q.label = 15;
|
|
147
|
+
case 15:
|
|
148
|
+
_q.trys.push([15, 17, , 18]);
|
|
149
|
+
return [4 /*yield*/, sdk.api.form_responses.deleteOne(id)];
|
|
150
|
+
case 16:
|
|
151
|
+
_q.sent();
|
|
152
|
+
return [3 /*break*/, 18];
|
|
153
|
+
case 17:
|
|
154
|
+
err_1 = _q.sent();
|
|
155
|
+
return [3 /*break*/, 18];
|
|
156
|
+
case 18:
|
|
157
|
+
_i++;
|
|
158
|
+
return [3 /*break*/, 14];
|
|
159
|
+
case 19:
|
|
160
|
+
_q.trys.push([19, 22, , 23]);
|
|
161
|
+
return [4 /*yield*/, sdk.api.endusers.getOne({ email: TEST_EMAIL })];
|
|
162
|
+
case 20:
|
|
163
|
+
enduser = _q.sent();
|
|
164
|
+
return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
|
|
165
|
+
case 21:
|
|
166
|
+
_q.sent();
|
|
167
|
+
return [3 /*break*/, 23];
|
|
168
|
+
case 22:
|
|
169
|
+
err_2 = _q.sent();
|
|
170
|
+
return [3 /*break*/, 23];
|
|
171
|
+
case 23:
|
|
172
|
+
_q.trys.push([23, 25, , 26]);
|
|
173
|
+
return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
|
|
174
|
+
case 24:
|
|
175
|
+
_q.sent();
|
|
176
|
+
return [3 /*break*/, 26];
|
|
177
|
+
case 25:
|
|
178
|
+
err_3 = _q.sent();
|
|
179
|
+
return [3 /*break*/, 26];
|
|
180
|
+
case 26: return [7 /*endfinally*/];
|
|
181
|
+
case 27: return [2 /*return*/];
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
// Allow running this test file independently
|
|
187
|
+
if (require.main === module) {
|
|
188
|
+
console.log("\uD83C\uDF10 Using API URL: ".concat(host));
|
|
189
|
+
var sdk_1 = new Session({ host: host });
|
|
190
|
+
var sdkNonAdmin_1 = new Session({ host: host });
|
|
191
|
+
var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
192
|
+
return __generator(this, function (_a) {
|
|
193
|
+
switch (_a.label) {
|
|
194
|
+
case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
|
|
195
|
+
case 1:
|
|
196
|
+
_a.sent();
|
|
197
|
+
return [4 /*yield*/, formsort_header_auth_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
|
|
198
|
+
case 2:
|
|
199
|
+
_a.sent();
|
|
200
|
+
return [2 /*return*/];
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}); };
|
|
204
|
+
runTests()
|
|
205
|
+
.then(function () {
|
|
206
|
+
console.log("✅ FormSort header auth tests completed successfully");
|
|
207
|
+
process.exit(0);
|
|
208
|
+
})
|
|
209
|
+
.catch(function (error) {
|
|
210
|
+
console.error("❌ FormSort header auth tests failed:", error);
|
|
211
|
+
process.exit(1);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=formsort_header_auth.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formsort_header_auth.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/formsort_header_auth.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA60EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAw7CD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBAwb1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
|