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");
|
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 () => {
|
const run = async () => {
|
||||||
let passed = 0;
|
let passed = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user