TASK22224: harden proxy file routes and expand contracts
This commit is contained in:
@@ -547,6 +547,153 @@ test("createrepcompletemessage handler dependency failure returns CREATE_REP_COM
|
||||
);
|
||||
});
|
||||
|
||||
test("getbloblistproxy success returns proxied payload", async () => {
|
||||
const mod = loadModule("pages/api/file/getbloblistproxy.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
getToken: async () => ({ access_token: "tok" }),
|
||||
azureHeaders: () => ({ headers: { Authorization: "Bearer tok" } }),
|
||||
hashAPIPath: () => "&hash=abc",
|
||||
consoleLogger: () => {},
|
||||
process: { env: { API_ROOT: "http://example.com" } },
|
||||
axios: {
|
||||
get: async () => ({ data: { value: [{ id: "b1" }] } })
|
||||
}
|
||||
});
|
||||
|
||||
const req = {
|
||||
query: { container: "cont/1", casefolderID: "CASE/1" }
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(res.state.jsonBody)), {
|
||||
value: [{ id: "b1" }]
|
||||
});
|
||||
});
|
||||
|
||||
test("getbloblistproxy dependency failure returns GET_BLOB_LIST_PROXY_FAILED", async () => {
|
||||
const mod = loadModule("pages/api/file/getbloblistproxy.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
getToken: async () => ({ access_token: "tok" }),
|
||||
azureHeaders: () => ({ headers: {} }),
|
||||
hashAPIPath: () => "&hash=abc",
|
||||
consoleLogger: () => {},
|
||||
process: { env: { API_ROOT: "http://example.com" } },
|
||||
axios: {
|
||||
get: async () => {
|
||||
throw new Error("proxy failed");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const req = {
|
||||
query: { container: "c1", casefolderID: "f1" }
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 400);
|
||||
assert.strictEqual(
|
||||
res.state.jsonBody.error.code,
|
||||
"GET_BLOB_LIST_PROXY_FAILED"
|
||||
);
|
||||
});
|
||||
|
||||
test("getrepsblobproxy success returns proxied payload", async () => {
|
||||
const mod = loadModule("pages/api/file/getrepsblobproxy.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
getToken: async () => ({ access_token: "tok" }),
|
||||
azureHeaders: () => ({ headers: {} }),
|
||||
hashAPIPath: () => "&hash=abc",
|
||||
consoleLogger: () => {},
|
||||
process: { env: { API_ROOT: "http://example.com" } },
|
||||
axios: {
|
||||
get: async () => ({ data: { value: [{ id: "r1" }] } })
|
||||
}
|
||||
});
|
||||
|
||||
const req = {
|
||||
query: { container: "c1" }
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(res.state.jsonBody)), {
|
||||
value: [{ id: "r1" }]
|
||||
});
|
||||
});
|
||||
|
||||
test("getawaitingsubmissionfromblobproxy dependency failure returns GET_AWAITING_SUBMISSION_PROXY_FAILED", async () => {
|
||||
const mod = loadModule(
|
||||
"pages/api/file/getawaitingsubmissionfromblobproxy.js",
|
||||
{
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
getToken: async () => ({ access_token: "tok" }),
|
||||
azureHeaders: () => ({ headers: {} }),
|
||||
hashAPIPath: () => "&hash=abc",
|
||||
consoleLogger: () => {},
|
||||
process: { env: { API_ROOT: "http://example.com" } },
|
||||
axios: {
|
||||
get: async () => {
|
||||
throw new Error("awaiting failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const req = {
|
||||
query: { container: "c1" }
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 400);
|
||||
assert.strictEqual(
|
||||
res.state.jsonBody.error.code,
|
||||
"GET_AWAITING_SUBMISSION_PROXY_FAILED"
|
||||
);
|
||||
});
|
||||
|
||||
test("createappealcompletemessageproxy dependency failure returns CREATE_APPEAL_COMPLETE_MESSAGE_PROXY_FAILED", async () => {
|
||||
const mod = loadModule(
|
||||
"pages/api/file/createappealcompletemessageproxy_api.js",
|
||||
{
|
||||
nextConnect: createNextConnectMock(),
|
||||
middleware: () => {},
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
getToken: async () => ({ access_token: "tok" }),
|
||||
azureHeaders: () => ({ headers: {} }),
|
||||
hashAPIPath: () => "&hash=abc",
|
||||
consoleLogger: () => {},
|
||||
process: { env: { API_ROOT: "http://example.com" } },
|
||||
axios: {
|
||||
get: async () => {
|
||||
throw new Error("create appeal proxy failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const req = {
|
||||
query: { container: "c1", tempcaseref: "TMP1" }
|
||||
};
|
||||
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_PROXY_FAILED"
|
||||
);
|
||||
});
|
||||
|
||||
test("getawaitingsubmissionfromblob handler success returns payload", async () => {
|
||||
const mod = loadModule("pages/api/file/getawaitingsubmissionfromblob.js", {
|
||||
nextConnect: createNextConnectMock(),
|
||||
|
||||
Reference in New Issue
Block a user