TASK22104: slice3 add failure-path api contract tests

This commit is contained in:
2026-03-17 14:00:09 +00:00
parent 991cbf73ba
commit 0e99d9548b
@@ -371,6 +371,72 @@ test("downloadblob handler success sets attachment header and returns body", asy
assert.strictEqual(res.state.sentBody.toString(), "file-content");
});
test("apiResponse.respondError default contract returns 500 envelope", () => {
const mod = loadModule("pages/api/middleware/apiResponse.js");
const res = createRes();
mod.respondError(res);
assert.strictEqual(res.state.statusCode, 500);
assert.deepStrictEqual(JSON.parse(JSON.stringify(res.state.jsonBody)), {
success: false,
error: {
code: "INTERNAL_SERVER_ERROR",
message: "Request failed"
}
});
});
test("upload handler dependency failure returns UPLOAD_FAILED", async () => {
const mod = loadModule("pages/api/file/upload.js", {
nextConnect: createNextConnectMock(),
middleware: () => {},
hashAPIPath: () => "?hash=expected",
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
createBlob: async () => {
throw new Error("storage down");
},
createRepBlob: async () => ({ id: "rep-1" })
});
const req = {
query: { hash: "expected" },
body: {
appealData: { key: "value" },
containerID: ["c1"],
casefolderID: ["f1"],
repOrAppeal: false
}
};
const res = createRes();
await mod.default.handler(req, res);
assert.strictEqual(res.state.statusCode, 400);
assert.strictEqual(res.state.jsonBody.error.code, "UPLOAD_FAILED");
});
test("setupcontainer dependency failure returns SETUP_CONTAINER_FAILED", async () => {
const mod = loadModule("pages/api/file/setupcontainer.js", {
nextConnect: createNextConnectMock(),
middleware: () => {},
hashAPIPath: () => "&hash=expected",
consoleLogger: () => {},
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
createContainer: async () => {
throw new Error("container failed");
}
});
const req = { query: { ident: "cont-1", hash: "expected" } };
const res = createRes();
await mod.default.handler(req, res);
assert.strictEqual(res.state.statusCode, 400);
assert.strictEqual(res.state.jsonBody.error.code, "SETUP_CONTAINER_FAILED");
});
const run = async () => {
let passed = 0;