TASK22104: slice3 add failure-path api contract tests
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user