TASK22224: harden createappealcompletemessage parity

This commit is contained in:
2026-03-24 05:49:58 +00:00
parent cc4fb36439
commit 9b0365ffbd
3 changed files with 139 additions and 9 deletions
@@ -694,6 +694,98 @@ test("createappealcompletemessageproxy dependency failure returns CREATE_APPEAL_
);
});
test("createappealcompletemessage_api accepts encoded hash variant and returns success", async () => {
const mod = loadModule(
"pages/api/file/createappealcompletemessage_api.js",
{
nextConnect: createNextConnectMock(),
middleware: () => {},
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
hashAPIPath: (queryPath) =>
queryPath.includes("tempcaseref=TMP%2F1")
? "&hash=expected"
: "&hash=other",
getProgressBlobs: async () => ({ path: "TMP/1/progress.json" }),
downloadProgressFile: async (_container, path) => {
if (path.includes("_case.json")) {
return {
"customerid_contact@odata.bind":
"/contacts(00000000-0000-0000-0000-000000000001)"
};
}
return {
pinswg_siteaddressline1: "Line 1",
pinswg_siteaddressline2: "",
pinswg_siteaddresstown: "Town",
pinswg_siteaddresscounty: "County",
pinswg_siteaddresspostcode: "CF1 1AA",
pinswg_lpaapplicationreference: "LPA-1",
pinswg_developmentdescription: "Desc",
pinswg_name: "tmp"
};
},
createBlob: async () => ({}),
getCaseBlob: async () => ({}),
createCaseCompleteMessage: async () => ({}),
updateAccount: async () => ({}),
consoleLogger: () => {},
_: { isEmpty: (v) => v === undefined || v === null || v === "" }
}
);
const req = {
query: {
container: "cont/1",
tempcaseref: "TMP/1",
inv: "846040001",
hash: "expected"
}
};
const res = createRes();
await mod.default.handler(req, res);
assert.strictEqual(res.state.statusCode, 200);
assert.deepStrictEqual(JSON.parse(JSON.stringify(res.state.jsonBody)), {
status: "success"
});
});
test("createappealcompletemessage_api dependency failure returns CREATE_APPEAL_COMPLETE_MESSAGE_FAILED", async () => {
const mod = loadModule(
"pages/api/file/createappealcompletemessage_api.js",
{
nextConnect: createNextConnectMock(),
middleware: () => {},
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
hashAPIPath: () => "&hash=expected",
getProgressBlobs: async () => {
throw new Error("progress failed");
},
consoleLogger: () => {},
_: { isEmpty: () => true }
}
);
const req = {
query: {
container: "c1",
tempcaseref: "TMP1",
hash: "expected"
}
};
const res = createRes();
await mod.default.handler(req, res);
assert.strictEqual(res.state.statusCode, 400);
assert.strictEqual(
res.state.jsonBody.error.code,
"CREATE_APPEAL_COMPLETE_MESSAGE_FAILED"
);
});
test("createcaseinvolvement returns record exists on 412 conflict", async () => {
const mod = loadModule("pages/api/file/createcaseinvolvement_api.js", {
respondError: respondErrorMock,