fix(httpapi): model optional session payloads as no content (#29247)
This commit is contained in:
@@ -236,7 +236,7 @@ export const SessionApi = HttpApi.make("session")
|
|||||||
HttpApiEndpoint.post("fork", SessionPaths.fork, {
|
HttpApiEndpoint.post("fork", SessionPaths.fork, {
|
||||||
params: { sessionID: SessionID },
|
params: { sessionID: SessionID },
|
||||||
query: WorkspaceRoutingQuery,
|
query: WorkspaceRoutingQuery,
|
||||||
payload: Schema.optional(ForkPayload),
|
payload: [HttpApiSchema.NoContent, ForkPayload],
|
||||||
success: described(Session.Info, "200"),
|
success: described(Session.Info, "200"),
|
||||||
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
||||||
}).annotateMerge(
|
}).annotateMerge(
|
||||||
|
|||||||
@@ -602,6 +602,32 @@ describe("session HttpApi", () => {
|
|||||||
})
|
})
|
||||||
expect(forked.id).not.toBe(created.id)
|
expect(forked.id).not.toBe(created.id)
|
||||||
|
|
||||||
|
const forkedWithoutContentType = yield* requestJson<Session.Info>(
|
||||||
|
pathFor(SessionPaths.fork, { sessionID: created.id }),
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: { "x-opencode-directory": test.directory },
|
||||||
|
},
|
||||||
|
)
|
||||||
|
expect(forkedWithoutContentType.id).not.toBe(created.id)
|
||||||
|
|
||||||
|
const invalidFork = yield* request(pathFor(SessionPaths.fork, { sessionID: created.id }), {
|
||||||
|
method: "POST",
|
||||||
|
headers,
|
||||||
|
body: "{",
|
||||||
|
})
|
||||||
|
expect(invalidFork.status).toBe(400)
|
||||||
|
|
||||||
|
const forkedWhitespace = yield* requestJson<Session.Info>(
|
||||||
|
pathFor(SessionPaths.fork, { sessionID: created.id }),
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers,
|
||||||
|
body: " \n",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
expect(forkedWhitespace.id).not.toBe(created.id)
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
yield* requestJson<boolean>(pathFor(SessionPaths.abort, { sessionID: created.id }), {
|
yield* requestJson<boolean>(pathFor(SessionPaths.abort, { sessionID: created.id }), {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
|
|||||||
Reference in New Issue
Block a user