mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor(api): 🎨 Refactor request parser
This commit is contained in:
parent
3247e90131
commit
1b7b71eaec
5 changed files with 92 additions and 79 deletions
|
|
@ -7,7 +7,7 @@ describe("RequestParser", () => {
|
|||
const request = new Request(
|
||||
"http://localhost?param1=value1¶m2=value2",
|
||||
);
|
||||
const result = await new RequestParser(request).toObject<{
|
||||
const result = await new RequestParser(request).parseQuery<{
|
||||
param1: string;
|
||||
param2: string;
|
||||
}>();
|
||||
|
|
@ -18,30 +18,30 @@ describe("RequestParser", () => {
|
|||
const request = new Request(
|
||||
"http://localhost?test[]=value1&test[]=value2",
|
||||
);
|
||||
const result = await new RequestParser(request).toObject<{
|
||||
const result = await new RequestParser(request).parseQuery<{
|
||||
test: string[];
|
||||
}>();
|
||||
expect(result.test).toEqual(["value1", "value2"]);
|
||||
expect(result?.test).toEqual(["value1", "value2"]);
|
||||
});
|
||||
|
||||
test("With Array of objects", async () => {
|
||||
const request = new Request(
|
||||
"http://localhost?test[][key]=value1&test[][value]=value2",
|
||||
);
|
||||
const result = await new RequestParser(request).toObject<{
|
||||
const result = await new RequestParser(request).parseQuery<{
|
||||
test: { key: string; value: string }[];
|
||||
}>();
|
||||
expect(result.test).toEqual([{ key: "value1", value: "value2" }]);
|
||||
expect(result?.test).toEqual([{ key: "value1", value: "value2" }]);
|
||||
});
|
||||
|
||||
test("With Array of multiple objects", async () => {
|
||||
const request = new Request(
|
||||
"http://localhost?test[][key]=value1&test[][value]=value2&test[][key]=value3&test[][value]=value4",
|
||||
);
|
||||
const result = await new RequestParser(request).toObject<{
|
||||
const result = await new RequestParser(request).parseQuery<{
|
||||
test: { key: string[]; value: string[] }[];
|
||||
}>();
|
||||
expect(result.test).toEqual([
|
||||
expect(result?.test).toEqual([
|
||||
{ key: ["value1", "value3"], value: ["value2", "value4"] },
|
||||
]);
|
||||
});
|
||||
|
|
@ -50,7 +50,7 @@ describe("RequestParser", () => {
|
|||
const request = new Request(
|
||||
"http://localhost?param1=value1¶m2=value2&test[]=value1&test[]=value2",
|
||||
);
|
||||
const result = await new RequestParser(request).toObject<{
|
||||
const result = await new RequestParser(request).parseQuery<{
|
||||
param1: string;
|
||||
param2: string;
|
||||
test: string[];
|
||||
|
|
@ -116,8 +116,8 @@ describe("RequestParser", () => {
|
|||
const result = await new RequestParser(request).toObject<{
|
||||
file: File;
|
||||
}>();
|
||||
expect(result.file).toBeInstanceOf(File);
|
||||
expect(await result.file?.text()).toEqual("content");
|
||||
expect(result?.file).toBeInstanceOf(File);
|
||||
expect(await result?.file?.text()).toEqual("content");
|
||||
});
|
||||
|
||||
test("With Array", async () => {
|
||||
|
|
@ -131,7 +131,7 @@ describe("RequestParser", () => {
|
|||
const result = await new RequestParser(request).toObject<{
|
||||
test: string[];
|
||||
}>();
|
||||
expect(result.test).toEqual(["value1", "value2"]);
|
||||
expect(result?.test).toEqual(["value1", "value2"]);
|
||||
});
|
||||
|
||||
test("With all three at once", async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue