TASK22269: add signed request client and migrate portal deleteWatchedCases pilot

This commit is contained in:
2026-03-25 13:37:49 +00:00
parent 35ff16b2b2
commit 811655c8d2
6 changed files with 120 additions and 10 deletions
@@ -134,6 +134,27 @@ test("portal/sendRepCompleteMessage rejects when hash signing fails before reque
assert.strictEqual(logger.calls.length, 0);
});
test("portal/deleteWatchedCases logs and returns undefined when signed delete fails", async () => {
const axios = createAxiosMock();
const logger = createLoggerMock();
const error = createAxiosError(401, "Unauthorized");
const portal = loadServiceModule("portalDirectService.js", {
axios,
BASE_URL: "",
consoleLogger: logger.consoleLogger,
deleteSignedJson: async () => {
throw error;
}
});
const result = await portal.deleteWatchedCases("watch-2");
assert.strictEqual(result, undefined);
assert.strictEqual(logger.calls.length, 1);
assert.strictEqual(logger.calls[0], error);
});
const run = async () => {
let passed = 0;
+13
View File
@@ -126,6 +126,18 @@ const loadServiceModule = (fileName, injected = {}) => {
});
};
const defaultDeleteSignedJson = async (queryUrl, config = {}) => {
const hashedUrl = await (
injected.buildHashedQueryUrl || defaultBuildHashedQueryUrl
)(queryUrl);
return (injected.requestJson || defaultRequestJson)({
method: "delete",
url: hashedUrl,
...config
});
};
const defaultBuildFileQuery = (pathValue, params = {}, options = {}) => {
const { encode = false } = options;
const entries = Object.entries(params).filter(([, value]) => {
@@ -172,6 +184,7 @@ const loadServiceModule = (fileName, injected = {}) => {
getSignedFileJson:
injected.getSignedFileJson || defaultGetSignedFileJson,
downloadFileBlob: injected.downloadFileBlob || defaultDownloadFileBlob,
deleteSignedJson: injected.deleteSignedJson || defaultDeleteSignedJson,
buildHashedQueryUrl:
injected.buildHashedQueryUrl || defaultBuildHashedQueryUrl,
buildFileQuery: injected.buildFileQuery || defaultBuildFileQuery,