feat(relay): add portal endpoint relayPolicy overrides and contract checks
This commit is contained in:
@@ -389,6 +389,39 @@ test("getportallogin catch path returns PORTAL_LOGIN_FETCH_FAILED", async () =>
|
||||
);
|
||||
});
|
||||
|
||||
test("getportallogin passes strict relayPolicy overrides to relayGet", async () => {
|
||||
let capturedRelayPolicy = null;
|
||||
|
||||
const mod = loadModule("pages/api/endpoint/getportallogin_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
relayGet: async ({ relayPolicy, res }) => {
|
||||
capturedRelayPolicy = relayPolicy;
|
||||
return respondSuccessMock(res, { value: [] });
|
||||
},
|
||||
hashAPIPath: (input) =>
|
||||
input && input.startsWith("/api/endpoint/getportallogin_api")
|
||||
? "&hash=expected"
|
||||
: "&hash=relay",
|
||||
azureHeadersPaged: () => ({})
|
||||
});
|
||||
|
||||
const req = {
|
||||
query: { emailAddress: "user@test.local", hash: "expected" }
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(capturedRelayPolicy)), {
|
||||
method: "GET",
|
||||
timeoutMs: 5000,
|
||||
maxRetries: 0,
|
||||
retryBaseDelayMs: 0,
|
||||
retryMaxDelayMs: 0
|
||||
});
|
||||
});
|
||||
|
||||
test("getportallogin accepts encoded email hash variant", async () => {
|
||||
const mod = loadModule("pages/api/endpoint/getportallogin_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
@@ -501,6 +534,33 @@ test("getportalloginproxy catch path returns PORTAL_LOGIN_PROXY_FETCH_FAILED", a
|
||||
);
|
||||
});
|
||||
|
||||
test("getportalloginproxy passes relayPolicy overrides to relayGet", async () => {
|
||||
let capturedRelayPolicy = null;
|
||||
|
||||
const mod = loadModule("pages/api/endpoint/getportalloginproxy_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
relayGet: async ({ relayPolicy, res }) => {
|
||||
capturedRelayPolicy = relayPolicy;
|
||||
return respondSuccessMock(res, { value: [] });
|
||||
},
|
||||
azureHeadersPaged: () => ({})
|
||||
});
|
||||
|
||||
const req = { query: { emailAddress: "user@test.local" } };
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(capturedRelayPolicy)), {
|
||||
method: "GET",
|
||||
timeoutMs: 6000,
|
||||
maxRetries: 1,
|
||||
retryBaseDelayMs: 100,
|
||||
retryMaxDelayMs: 500
|
||||
});
|
||||
});
|
||||
|
||||
test("getpersonalaccount returns CONTACT_ID_REQUIRED when contactid missing", async () => {
|
||||
const mod = loadModule("pages/api/endpoint/getpersonalaccount_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
@@ -2410,6 +2470,38 @@ test("getportalmoduledetails catch path returns PORTAL_MODULE_DETAILS_FETCH_FAIL
|
||||
);
|
||||
});
|
||||
|
||||
test("getportalmoduledetails passes relayPolicy overrides to relayGet", async () => {
|
||||
let capturedRelayPolicy = null;
|
||||
|
||||
const mod = loadModule("pages/api/endpoint/getportalmoduledetails_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
relayGet: async ({ relayPolicy, res }) => {
|
||||
capturedRelayPolicy = relayPolicy;
|
||||
return respondSuccessMock(res, { value: [] });
|
||||
},
|
||||
getSelectQuery: () => "&$select=pinswg_name"
|
||||
});
|
||||
|
||||
const req = {
|
||||
query: {
|
||||
appealType: "pinswg_planningappeals78s",
|
||||
caseReference: "CAS-1"
|
||||
}
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(capturedRelayPolicy)), {
|
||||
method: "GET",
|
||||
timeoutMs: 8000,
|
||||
maxRetries: 2,
|
||||
retryBaseDelayMs: 150,
|
||||
retryMaxDelayMs: 800
|
||||
});
|
||||
});
|
||||
|
||||
test("getportalmoduledetailsproxy returns APPEAL_TYPE_REQUIRED when appealType missing", async () => {
|
||||
const mod = loadModule(
|
||||
"pages/api/endpoint/getportalmoduledetailsproxy_api.js",
|
||||
@@ -2471,6 +2563,41 @@ test("getportalmoduledetailsproxy catch path returns PORTAL_MODULE_DETAILS_PROXY
|
||||
);
|
||||
});
|
||||
|
||||
test("getportalmoduledetailsproxy passes relayPolicy overrides to relayGet", async () => {
|
||||
let capturedRelayPolicy = null;
|
||||
|
||||
const mod = loadModule(
|
||||
"pages/api/endpoint/getportalmoduledetailsproxy_api.js",
|
||||
{
|
||||
respondError: respondErrorMock,
|
||||
respondSuccess: respondSuccessMock,
|
||||
relayGet: async ({ relayPolicy, res }) => {
|
||||
capturedRelayPolicy = relayPolicy;
|
||||
return respondSuccessMock(res, { value: [] });
|
||||
},
|
||||
getSelectQuery: () => "&$select=pinswg_name"
|
||||
}
|
||||
);
|
||||
|
||||
const req = {
|
||||
query: {
|
||||
appealType: "pinswg_planningappeals78s",
|
||||
caseReference: "CAS-1"
|
||||
}
|
||||
};
|
||||
const res = createRes();
|
||||
await mod.default(req, res);
|
||||
|
||||
assert.strictEqual(res.state.statusCode, 200);
|
||||
assert.deepStrictEqual(JSON.parse(JSON.stringify(capturedRelayPolicy)), {
|
||||
method: "GET",
|
||||
timeoutMs: 8000,
|
||||
maxRetries: 2,
|
||||
retryBaseDelayMs: 150,
|
||||
retryMaxDelayMs: 800
|
||||
});
|
||||
});
|
||||
|
||||
test("getmylpacases returns LPA_ID_REQUIRED when lpaid missing", async () => {
|
||||
const mod = loadModule("pages/api/endpoint/getmylpacases_api.js", {
|
||||
respondError: respondErrorMock,
|
||||
|
||||
Reference in New Issue
Block a user