TASK22211: normalize address search endpoint contract

This commit is contained in:
2026-03-23 12:16:31 +00:00
parent 722ef9846a
commit 134f99c04c
2 changed files with 64 additions and 4 deletions
@@ -4,6 +4,7 @@ import { azureHeaders } from "../../../actions/core/headers";
import { consoleLogger } from "../../../actions/core/logger";
import { getToken } from "../../../actions/core/token";
import { hashAPIPath } from "../../../actions/core/hash";
import { respondError, respondSuccess } from "../middleware/apiResponse";
const WEBAPI_URL =
process.env.RELAY_ROOT ||
@@ -728,15 +729,16 @@ export default async function ApiProxy(req, res) {
(record) => record.pinswg_publishtoweb
);
return res.status(200).json({
return respondSuccess(res, {
"@odata.count": searchResultsObj.length,
value: searchResultsObj
});
} catch (error) {
consoleLogger(error);
return res.status(500).json({
message: "Failed to retrieve search results.",
error: error?.message || error
return respondError(res, {
status: 500,
code: "BASIC_SEARCH_BY_ADDRESS_FETCH_FAILED",
message: "Failed to retrieve search results"
});
}
}
@@ -1859,6 +1859,64 @@ test("getbasicsearch_by_lparref catch path returns BASIC_SEARCH_LPA_REF_FETCH_FA
);
});
test("getbasicsearch_by_address success returns existing payload contract", async () => {
const mod = loadModule(
"pages/api/endpoint/getbasicsearch_by_address_api.js",
{
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
getToken: async () => ({ access_token: "token" }),
hashAPIPath: () => "&hash=expected",
azureHeaders: () => ({}),
axios: {
get: async () => ({ data: { value: [] } })
},
consoleLogger: () => {},
jsonpath: () => []
}
);
const req = { query: {} };
const res = createRes();
await mod.default(req, res);
assert.strictEqual(res.state.statusCode, 200);
assert.deepStrictEqual(JSON.parse(JSON.stringify(res.state.jsonBody)), {
"@odata.count": 0,
value: []
});
});
test("getbasicsearch_by_address catch path returns BASIC_SEARCH_BY_ADDRESS_FETCH_FAILED", async () => {
const mod = loadModule(
"pages/api/endpoint/getbasicsearch_by_address_api.js",
{
respondError: respondErrorMock,
respondSuccess: respondSuccessMock,
getToken: async () => {
throw new Error("token failed");
},
hashAPIPath: () => "&hash=expected",
azureHeaders: () => ({}),
axios: {
get: async () => ({ data: { value: [] } })
},
consoleLogger: () => {},
jsonpath: () => []
}
);
const req = { query: {} };
const res = createRes();
await mod.default(req, res);
assert.strictEqual(res.state.statusCode, 500);
assert.strictEqual(
res.state.jsonBody.error.code,
"BASIC_SEARCH_BY_ADDRESS_FETCH_FAILED"
);
});
test("getbasicdnssearch catch path returns BASIC_DNS_SEARCH_FETCH_FAILED", async () => {
const mod = loadModule("pages/api/endpoint/getbasicdnssearch_api.js", {
respondError: respondErrorMock,