diff --git a/routes/v1/sessions/create.ts b/routes/v1/sessions/create.ts index da3c1c4..e9ff6d1 100644 --- a/routes/v1/sessions/create.ts +++ b/routes/v1/sessions/create.ts @@ -9,9 +9,13 @@ export default withRouteSpec({ user_id: z.string(), host: z.string(), }), + jsonBody: z.object({ + body: z.string().optional(), + }), })((req, ctx) => { - // TODO check the body, this endpoint sends a 502 bad gateway - // if you don't provide an empty string in the body + if (req.jsonBody.body !== "") { + return ctx.json({ id: "", user_id: "", host: "" }, { status: 502 }) + } const session = { session_id: randomUUID(), diff --git a/tests/routes/v1/sessions/create.test.ts b/tests/routes/v1/sessions/create.test.ts index 3786cfd..ae84f8b 100644 --- a/tests/routes/v1/sessions/create.test.ts +++ b/tests/routes/v1/sessions/create.test.ts @@ -9,7 +9,9 @@ test("POST /v1/sessions/create", async () => { "Freerouting-Environment-Host": "test-host", } - const { data } = await axios.post("/v1/sessions/create", {}, { headers }) + const { data } = await axios.post("/v1/sessions/create", { + body: "", + }, { headers }) expect(data).toMatchObject({ id: expect.any(String), @@ -17,3 +19,23 @@ test("POST /v1/sessions/create", async () => { host: "test-host", }) }) + +test("POST /v1/sessions/create with non-empty body returns 502", async () => { + const { axios } = await getTestServer() + + const headers = { + "Freerouting-Profile-ID": "test-user-id", + "Freerouting-Environment-Host": "test-host", + } + + const response = await axios.post( + "/v1/sessions/create", + { some: "data" }, + { + headers, + validateStatus: () => true, + } + ) + + expect(response.status).toBe(502) +})