@mastra/server-adapters-test-suite 0.1.1 → 0.1.2
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @mastra/server-adapters-test-suite
|
|
2
2
|
|
|
3
|
+
## 0.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Added coverage for reserved field and parameter names in shared adapter request parsing tests ([#26683](https://github.com/mastra-ai/mastra/pull/26683))
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`908f923`](https://github.com/mastra-ai/mastra/commit/908f92340e14f776d7a69edab244d0ae3cefe057), [`b196f30`](https://github.com/mastra-ai/mastra/commit/b196f30602005325e95bde29a9b7676aeea14c42), [`a65d0c7`](https://github.com/mastra-ai/mastra/commit/a65d0c788824081f36ccd95078a8d1214ff687c4), [`4b8f1d7`](https://github.com/mastra-ai/mastra/commit/4b8f1d74adb2b1742fd10ebb1d24e863329075aa), [`9a511a4`](https://github.com/mastra-ai/mastra/commit/9a511a4ff5ac8349f4d4b64b0f432576fa3c8656), [`2233844`](https://github.com/mastra-ai/mastra/commit/223384452984718e16fc660d29f0d5d93a1ebaf2), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`cca0f8a`](https://github.com/mastra-ai/mastra/commit/cca0f8a543eca15c24be21c8ee43dc46fb7aefae), [`20f7f87`](https://github.com/mastra-ai/mastra/commit/20f7f878953cb0965962d1e83a463be5e4ba2c26), [`65b62c0`](https://github.com/mastra-ai/mastra/commit/65b62c04c28267ab81f7d6b92ed29ce0ef46671b), [`d4e6c7f`](https://github.com/mastra-ai/mastra/commit/d4e6c7fffdef836fc44276509596e78d7d785729), [`b801545`](https://github.com/mastra-ai/mastra/commit/b80154540bf557de296bcb6f068b5117b5d84ef9), [`ed0e355`](https://github.com/mastra-ai/mastra/commit/ed0e355205da51bac4d11b7a9553c95ef1f505f4), [`b93ce2e`](https://github.com/mastra-ai/mastra/commit/b93ce2ee034c6a0be511b717e1e043e875dca677), [`ddb53f2`](https://github.com/mastra-ai/mastra/commit/ddb53f26142ccf6177dec5392b6dc867ce177d15), [`42a3c74`](https://github.com/mastra-ai/mastra/commit/42a3c748085fee95d4e38e42a4ccbce891ce3e3f), [`21eaa20`](https://github.com/mastra-ai/mastra/commit/21eaa208834ae36721324700023f88cec7cf5c01), [`4580309`](https://github.com/mastra-ai/mastra/commit/45803095e2aed7bf58d878eb206a767b9b0e2489), [`cb0201a`](https://github.com/mastra-ai/mastra/commit/cb0201ab41c36723b9f6e331464e5c74326865ed), [`06e428d`](https://github.com/mastra-ai/mastra/commit/06e428d80ccbc54bb74eb6bd6f01a7fd4eddc45f), [`d0db35e`](https://github.com/mastra-ai/mastra/commit/d0db35e00be93f1339525188c102f73dea5867d8), [`b48ddcc`](https://github.com/mastra-ai/mastra/commit/b48ddcc7768c76f02d1dd4ed0f21d417a8b21418), [`578d2c4`](https://github.com/mastra-ai/mastra/commit/578d2c41fc83b13efd88165ff0105904434a6db4), [`b875985`](https://github.com/mastra-ai/mastra/commit/b87598584f0f2b008242ed1f458b7f72ba6d42d1), [`cf6446c`](https://github.com/mastra-ai/mastra/commit/cf6446cae036784bd6802e4bcca8f3cf34a9ca9f), [`a8f39b6`](https://github.com/mastra-ai/mastra/commit/a8f39b629d8bcd6659b61bf71bd5a5dd2f38ed12), [`34844fc`](https://github.com/mastra-ai/mastra/commit/34844fcc7aeff1ae867c0aeedcd990caa520c418), [`04a2433`](https://github.com/mastra-ai/mastra/commit/04a2433d8e533010e23c3af84421d52bd0b3a908), [`85cfc88`](https://github.com/mastra-ai/mastra/commit/85cfc88fc5f196ef97cd2334441cd30cac99bce1), [`f2073f6`](https://github.com/mastra-ai/mastra/commit/f2073f6f2fff59ffca7eeac67579093454a0e761), [`46bb6b2`](https://github.com/mastra-ai/mastra/commit/46bb6b29dd83cabb09cf720dd8a3655860bf5858), [`46bb6b2`](https://github.com/mastra-ai/mastra/commit/46bb6b29dd83cabb09cf720dd8a3655860bf5858), [`2bf5b78`](https://github.com/mastra-ai/mastra/commit/2bf5b78761af6606b42ae2e085722eb50cdbc839), [`dc28dbd`](https://github.com/mastra-ai/mastra/commit/dc28dbd89f7afa455a1985c7909adf42ddd6bd48), [`25b8b60`](https://github.com/mastra-ai/mastra/commit/25b8b6074cbb5f0c744e4edb4ce0c5ee1f3771d6), [`41bf075`](https://github.com/mastra-ai/mastra/commit/41bf0759e486ff7eb078ff9d83d532e086a16039), [`73e6b7c`](https://github.com/mastra-ai/mastra/commit/73e6b7c18ee19fbb31c6f9bad4ce23c16212876b), [`68fa51c`](https://github.com/mastra-ai/mastra/commit/68fa51cf57ee7a3b0914d5381870b60e81f0647e), [`faf79ea`](https://github.com/mastra-ai/mastra/commit/faf79ea0d1aa7b2265b070f5323339fa275ebb49), [`b801545`](https://github.com/mastra-ai/mastra/commit/b80154540bf557de296bcb6f068b5117b5d84ef9), [`a1793d7`](https://github.com/mastra-ai/mastra/commit/a1793d7d077ed450125628ede812897ecbf08c4c), [`3645c3d`](https://github.com/mastra-ai/mastra/commit/3645c3d67e0c1f40005035911103deba381d246a), [`a9c8af5`](https://github.com/mastra-ai/mastra/commit/a9c8af5b6b2449e4127ab30b662e79ac025cc4f0), [`028dc61`](https://github.com/mastra-ai/mastra/commit/028dc61f4802fad472603df1538c4ca126f8680f), [`e5688d2`](https://github.com/mastra-ai/mastra/commit/e5688d2945aff1e867eb8b9fc5f25393d6579216), [`4e31d07`](https://github.com/mastra-ai/mastra/commit/4e31d07d07972fae9110f56f4fa71a33a1020102), [`1211fcf`](https://github.com/mastra-ai/mastra/commit/1211fcf499acbda22ca8d399ae820789c69609f2), [`a1c0020`](https://github.com/mastra-ai/mastra/commit/a1c002066736e54a4b07c03968b0df19cf1afb03), [`c0540d2`](https://github.com/mastra-ai/mastra/commit/c0540d2dfccec3470eed3cab539221557abd1fc5), [`297e55e`](https://github.com/mastra-ai/mastra/commit/297e55ea3d0eef280c3776bec401584ce3c2bff2), [`e995603`](https://github.com/mastra-ai/mastra/commit/e995603f64d4f03d234e7f53cc3ab03d9dfea502), [`2f0c604`](https://github.com/mastra-ai/mastra/commit/2f0c604b802068a063689fec4d0db91daa80d7c9), [`85636a2`](https://github.com/mastra-ai/mastra/commit/85636a2341aca229feb83c72b730a0d50f2f1753), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`2ef4283`](https://github.com/mastra-ai/mastra/commit/2ef428340d1eda6c6c8cfba4b90a43b88739f098), [`d45b854`](https://github.com/mastra-ai/mastra/commit/d45b854640e9b3d7fe7434061be988359ac2f470), [`b801545`](https://github.com/mastra-ai/mastra/commit/b80154540bf557de296bcb6f068b5117b5d84ef9), [`a7404f9`](https://github.com/mastra-ai/mastra/commit/a7404f965b811a0eef35d41a5e69c91187eb0cf6), [`5068168`](https://github.com/mastra-ai/mastra/commit/50681683948fd55928d029a63f0de7e56976e1f4), [`956901a`](https://github.com/mastra-ai/mastra/commit/956901a36b84a85f3985d9e5956494749b7ea72c), [`92004fd`](https://github.com/mastra-ai/mastra/commit/92004fd001edd2a0647f2531e0daf76a5825fc00), [`b389368`](https://github.com/mastra-ai/mastra/commit/b389368b0574a6a575a5835a11fc41437b78b842), [`6c9ad80`](https://github.com/mastra-ai/mastra/commit/6c9ad808c8503e812a72a48827ce425b9e78970f), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`eda5b00`](https://github.com/mastra-ai/mastra/commit/eda5b0081bdc49cc17ac8fc1267fccabb5e7a33f), [`838fd4b`](https://github.com/mastra-ai/mastra/commit/838fd4b1526c5385424d8e147d3d1d37137f6a13), [`7d58aa0`](https://github.com/mastra-ai/mastra/commit/7d58aa0c5c29272c01d51802a7de9cf878d7da73), [`956901a`](https://github.com/mastra-ai/mastra/commit/956901a36b84a85f3985d9e5956494749b7ea72c), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`835e2cd`](https://github.com/mastra-ai/mastra/commit/835e2cdba8dbef6848f18bb73bbb8aa9dad6dddf), [`65b62c0`](https://github.com/mastra-ai/mastra/commit/65b62c04c28267ab81f7d6b92ed29ce0ef46671b), [`0fca057`](https://github.com/mastra-ai/mastra/commit/0fca05756ac8409494d54c70106db2ef7dfc81fc), [`57c3117`](https://github.com/mastra-ai/mastra/commit/57c3117dd4d0dd0ad0835edb1bf410b6ec76fba0), [`9db8229`](https://github.com/mastra-ai/mastra/commit/9db8229bc7c30133fb1c085f710f1fbf94e5d335), [`7a96951`](https://github.com/mastra-ai/mastra/commit/7a96951771a6aab850ceafefc73afe684ef24b21), [`a3f884c`](https://github.com/mastra-ai/mastra/commit/a3f884c6fa230f9c75049f7105df5f1429fa406e), [`e89310a`](https://github.com/mastra-ai/mastra/commit/e89310a8db29a663a85c6a31a8c376cc8f59c129), [`7c0cf99`](https://github.com/mastra-ai/mastra/commit/7c0cf997ab2306a176aa84fe6f611574721120c3), [`46bb6b2`](https://github.com/mastra-ai/mastra/commit/46bb6b29dd83cabb09cf720dd8a3655860bf5858), [`a3269cd`](https://github.com/mastra-ai/mastra/commit/a3269cd4b92683780591ca782be491834787b861), [`152679c`](https://github.com/mastra-ai/mastra/commit/152679c4b74de8be29e5d932f6c4b35e79397516), [`18afca3`](https://github.com/mastra-ai/mastra/commit/18afca34ba6ab013152da61b2017dc443c2aa08b), [`b6b3f49`](https://github.com/mastra-ai/mastra/commit/b6b3f49d35ce62b584d9753361a7db7c15045801), [`a2d52e1`](https://github.com/mastra-ai/mastra/commit/a2d52e1d6a1542e3eb994853145ffd113fd02c2f), [`3a7e3d0`](https://github.com/mastra-ai/mastra/commit/3a7e3d01211a7ad5696b242f033cd1a30b06912e), [`436ea9d`](https://github.com/mastra-ai/mastra/commit/436ea9d4fb8146250bb106fd0f0200ea1cfd47d5), [`a7a34bf`](https://github.com/mastra-ai/mastra/commit/a7a34bfcc2235daa6229d6783b3ad1a2eaa25c56), [`65b62c0`](https://github.com/mastra-ai/mastra/commit/65b62c04c28267ab81f7d6b92ed29ce0ef46671b), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`4416137`](https://github.com/mastra-ai/mastra/commit/4416137e6b9368c11fcb31edba3d1937cfe61a40), [`678e1c3`](https://github.com/mastra-ai/mastra/commit/678e1c36f9118165c3315c2fd739334d9138eff4), [`f2243ae`](https://github.com/mastra-ai/mastra/commit/f2243ae5e0d183fdbb8c8f3ff81fa86d32036a6c), [`70d59a9`](https://github.com/mastra-ai/mastra/commit/70d59a97fb2a5953c5853bf5f5fdfdc02d2337e7), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`005161a`](https://github.com/mastra-ai/mastra/commit/005161a90ac9a8d25a4f9b1edc95c139e5d295d9), [`14f9341`](https://github.com/mastra-ai/mastra/commit/14f934145150a2531abfc1c36d03909fd05b5c56), [`b329f0d`](https://github.com/mastra-ai/mastra/commit/b329f0d45ce719acdd8926263269de6c91e31305), [`539d0e6`](https://github.com/mastra-ai/mastra/commit/539d0e638c9eaa3b71d99df067061af4ddbb2045), [`46bb6b2`](https://github.com/mastra-ai/mastra/commit/46bb6b29dd83cabb09cf720dd8a3655860bf5858), [`38643be`](https://github.com/mastra-ai/mastra/commit/38643beb41ab0d1f67b8754f057781022448a618), [`c7283d7`](https://github.com/mastra-ai/mastra/commit/c7283d715d9c8a7f3d3afd904f402ea0d4d843c4), [`7cb014d`](https://github.com/mastra-ai/mastra/commit/7cb014d3bdd96739c4bd7ad968af34c6a88ced7e), [`fe99f41`](https://github.com/mastra-ai/mastra/commit/fe99f41ea293a172da840c89a782d13a7c7a7709), [`eec3388`](https://github.com/mastra-ai/mastra/commit/eec3388f29248ecb71724e8ca0a9afef7a522629), [`16e0cc9`](https://github.com/mastra-ai/mastra/commit/16e0cc96f233f27056a7eb51ed60a9a5f315df2b), [`9f4ab32`](https://github.com/mastra-ai/mastra/commit/9f4ab3242bd686ff43c871fedeede1ed21260dbf), [`2558c00`](https://github.com/mastra-ai/mastra/commit/2558c00b338025de29f778ca72b6bd05e5726349), [`2f14b26`](https://github.com/mastra-ai/mastra/commit/2f14b267b06da7255ef7c131f1138993c39bd733), [`590d6ca`](https://github.com/mastra-ai/mastra/commit/590d6ca9fa6ccf8b55dcf2e98da080ee1a348f67), [`1511a1d`](https://github.com/mastra-ai/mastra/commit/1511a1d65d9e2ccc08b4d6746f8e8053fc48549e), [`f431c23`](https://github.com/mastra-ai/mastra/commit/f431c2321cf186f09565c42ddba33ee40cb96b6d), [`ea7ca75`](https://github.com/mastra-ai/mastra/commit/ea7ca755a470f026606949567da32e69969ef16c), [`eea17e1`](https://github.com/mastra-ai/mastra/commit/eea17e1290ab73fd2d3395358e794bc53472419b), [`a831a8b`](https://github.com/mastra-ai/mastra/commit/a831a8be6b92cf7a549e7b9d851f3c4295d4431b), [`436ea9d`](https://github.com/mastra-ai/mastra/commit/436ea9d4fb8146250bb106fd0f0200ea1cfd47d5), [`cfaeff3`](https://github.com/mastra-ai/mastra/commit/cfaeff3e03d6743682a8db0c1c30c2dab11b3171), [`180bdc5`](https://github.com/mastra-ai/mastra/commit/180bdc5398e253ffae7eaff6330409d7f5254f8b), [`45a1ab7`](https://github.com/mastra-ai/mastra/commit/45a1ab7f300637be9d5b953d82b58f77b64c1b56), [`70d59a9`](https://github.com/mastra-ai/mastra/commit/70d59a97fb2a5953c5853bf5f5fdfdc02d2337e7), [`33a206d`](https://github.com/mastra-ai/mastra/commit/33a206d7d0a52d17ebab8db5224c5091c086c86d), [`38643be`](https://github.com/mastra-ai/mastra/commit/38643beb41ab0d1f67b8754f057781022448a618), [`7c34315`](https://github.com/mastra-ai/mastra/commit/7c343153b26755a4cdcdd7897d2b4bd2758c29d4)]:
|
|
10
|
+
- @mastra/core@1.76.0
|
|
11
|
+
- @mastra/server@1.76.0
|
|
12
|
+
- @mastra/mcp@2.3.0
|
|
13
|
+
|
|
14
|
+
## 0.1.2-alpha.0
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Added coverage for reserved field and parameter names in shared adapter request parsing tests ([#26683](https://github.com/mastra-ai/mastra/pull/26683))
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [[`a65d0c7`](https://github.com/mastra-ai/mastra/commit/a65d0c788824081f36ccd95078a8d1214ff687c4), [`cb0201a`](https://github.com/mastra-ai/mastra/commit/cb0201ab41c36723b9f6e331464e5c74326865ed), [`e89310a`](https://github.com/mastra-ai/mastra/commit/e89310a8db29a663a85c6a31a8c376cc8f59c129), [`590d6ca`](https://github.com/mastra-ai/mastra/commit/590d6ca9fa6ccf8b55dcf2e98da080ee1a348f67)]:
|
|
21
|
+
- @mastra/core@1.76.0-alpha.9
|
|
22
|
+
- @mastra/server@1.76.0-alpha.9
|
|
23
|
+
|
|
3
24
|
## 0.1.1
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -927,7 +927,8 @@ async function createDefaultTestContext() {
|
|
|
927
927
|
"trace-query",
|
|
928
928
|
"trace-query-discovery",
|
|
929
929
|
"trace-aggregate",
|
|
930
|
-
"thread-query"
|
|
930
|
+
"thread-query",
|
|
931
|
+
"span-query"
|
|
931
932
|
]);
|
|
932
933
|
vi.spyOn(observability, "queryTraces").mockResolvedValue({
|
|
933
934
|
traces: [],
|
|
@@ -949,6 +950,10 @@ async function createDefaultTestContext() {
|
|
|
949
950
|
threads: [],
|
|
950
951
|
page: { next: null }
|
|
951
952
|
});
|
|
953
|
+
vi.spyOn(observability, "querySpans").mockResolvedValue({
|
|
954
|
+
spans: [],
|
|
955
|
+
page: { next: null }
|
|
956
|
+
});
|
|
952
957
|
await observability.createSpan({ span: {
|
|
953
958
|
spanId: "test-span",
|
|
954
959
|
traceId: "test-trace",
|
|
@@ -1764,6 +1769,48 @@ function createRouteAdapterTestSuite(config) {
|
|
|
1764
1769
|
expect(response.status).toBe(200);
|
|
1765
1770
|
expect(response.data).toEqual({ userId: "query-user-123" });
|
|
1766
1771
|
});
|
|
1772
|
+
it("ignores special object keys in query params while preserving legitimate params", async () => {
|
|
1773
|
+
await setup.adapter.registerRoute(app, {
|
|
1774
|
+
method: "GET",
|
|
1775
|
+
path: "/test/query-special-keys",
|
|
1776
|
+
responseType: "json",
|
|
1777
|
+
handler: async (params) => ({
|
|
1778
|
+
filter: typeof params.filter === "string" ? JSON.parse(params.filter) : null,
|
|
1779
|
+
tag: params.tag ?? null,
|
|
1780
|
+
keys: Object.keys(params).filter((k) => ![
|
|
1781
|
+
"mastra",
|
|
1782
|
+
"requestContext",
|
|
1783
|
+
"tools",
|
|
1784
|
+
"taskStore",
|
|
1785
|
+
"abortSignal",
|
|
1786
|
+
"registeredTools",
|
|
1787
|
+
"routePrefix",
|
|
1788
|
+
"request"
|
|
1789
|
+
].includes(k))
|
|
1790
|
+
})
|
|
1791
|
+
});
|
|
1792
|
+
const response = await executeHttpRequest(app, {
|
|
1793
|
+
method: "GET",
|
|
1794
|
+
path: "/api/test/query-special-keys",
|
|
1795
|
+
query: Object.fromEntries([
|
|
1796
|
+
["__proto__[polluted]", "yes"],
|
|
1797
|
+
["constructor[prototype]", "yes"],
|
|
1798
|
+
["prototype[x]", "yes"],
|
|
1799
|
+
["filter[__proto__]", "yes"],
|
|
1800
|
+
["filter[status]", "active"],
|
|
1801
|
+
["tag", ["a", "b"]],
|
|
1802
|
+
["page", "2"]
|
|
1803
|
+
])
|
|
1804
|
+
});
|
|
1805
|
+
expect(response.status).toBe(200);
|
|
1806
|
+
const data = response.data;
|
|
1807
|
+
expect(data.filter).toEqual({ status: "active" });
|
|
1808
|
+
expect(Array.isArray(data.tag) ? data.tag : [data.tag]).toContain("b");
|
|
1809
|
+
expect(data.keys).not.toContain("__proto__");
|
|
1810
|
+
expect(data.keys).not.toContain("constructor");
|
|
1811
|
+
expect(data.keys).not.toContain("prototype");
|
|
1812
|
+
expect({}.polluted).toBeUndefined();
|
|
1813
|
+
});
|
|
1767
1814
|
describe.each([{
|
|
1768
1815
|
version: "v3",
|
|
1769
1816
|
recordSchema: z$1.record(z$1.string(), z$1.string()),
|
|
@@ -3488,6 +3535,59 @@ function createMultipartTestSuite(config) {
|
|
|
3488
3535
|
message: "Hello, World!"
|
|
3489
3536
|
});
|
|
3490
3537
|
});
|
|
3538
|
+
it("should ignore form fields named with special object keys", async () => {
|
|
3539
|
+
const { adapter, app } = await setupAdapter(context);
|
|
3540
|
+
const testRoute = {
|
|
3541
|
+
method: "POST",
|
|
3542
|
+
path: "/test/upload-special-keys",
|
|
3543
|
+
responseType: "json",
|
|
3544
|
+
handler: async (params) => {
|
|
3545
|
+
return {
|
|
3546
|
+
success: true,
|
|
3547
|
+
name: params.name ?? null,
|
|
3548
|
+
options: params.options ?? null,
|
|
3549
|
+
inheritedIsAdmin: params.isAdmin ?? null,
|
|
3550
|
+
bodyKeys: Object.keys(params).filter((k) => ![
|
|
3551
|
+
"mastra",
|
|
3552
|
+
"requestContext",
|
|
3553
|
+
"tools",
|
|
3554
|
+
"taskStore",
|
|
3555
|
+
"abortSignal",
|
|
3556
|
+
"registeredTools",
|
|
3557
|
+
"routePrefix",
|
|
3558
|
+
"request"
|
|
3559
|
+
].includes(k))
|
|
3560
|
+
};
|
|
3561
|
+
}
|
|
3562
|
+
};
|
|
3563
|
+
applyMiddleware(app, getContextMiddleware(adapter));
|
|
3564
|
+
await registerRoute(adapter, app, testRoute, { prefix: "" });
|
|
3565
|
+
serverInfo = await startServer(app);
|
|
3566
|
+
const formData = new FormData();
|
|
3567
|
+
formData.append("__proto__", JSON.stringify({ isAdmin: true }));
|
|
3568
|
+
formData.append("constructor", JSON.stringify({ prototype: { isAdmin: true } }));
|
|
3569
|
+
const fileBlob = new Blob([new Uint8Array([
|
|
3570
|
+
1,
|
|
3571
|
+
2,
|
|
3572
|
+
3
|
|
3573
|
+
])], { type: "application/octet-stream" });
|
|
3574
|
+
formData.append("prototype", fileBlob, "payload.bin");
|
|
3575
|
+
formData.append("name", "legit-recording");
|
|
3576
|
+
formData.append("options", JSON.stringify({ language: "en" }));
|
|
3577
|
+
const response = await fetch(`${serverInfo.baseUrl}/test/upload-special-keys`, {
|
|
3578
|
+
method: "POST",
|
|
3579
|
+
body: formData
|
|
3580
|
+
});
|
|
3581
|
+
expect(response.status).toBe(200);
|
|
3582
|
+
const result = await response.json();
|
|
3583
|
+
expect(result.name).toBe("legit-recording");
|
|
3584
|
+
expect(result.options).toMatchObject({ language: "en" });
|
|
3585
|
+
expect(result.inheritedIsAdmin).toBeNull();
|
|
3586
|
+
expect(result.bodyKeys).not.toContain("__proto__");
|
|
3587
|
+
expect(result.bodyKeys).not.toContain("constructor");
|
|
3588
|
+
expect(result.bodyKeys).not.toContain("prototype");
|
|
3589
|
+
expect({}.isAdmin).toBeUndefined();
|
|
3590
|
+
});
|
|
3491
3591
|
});
|
|
3492
3592
|
}
|
|
3493
3593
|
//#endregion
|