Implemented the Create Internal Service Request functionality
This commit is contained in:
@@ -5,7 +5,7 @@ const { loadApplication } = require("./support/application.cjs");
|
||||
const type = "opportunitiesExtension.requestCurrentUser";
|
||||
|
||||
for (const family of ["chrome", "firefox"]) {
|
||||
test(`${family}: current user GET uses SPA cookies and discards identity token before messaging/debug`, async () => {
|
||||
test(`${family}: current user GET preserves identity token only in debug data for explicit reveal`, async () => {
|
||||
const calls = [];
|
||||
const app = loadBackground({ family, fetch: async (url, options) => {
|
||||
calls.push({ url, options });
|
||||
@@ -20,12 +20,16 @@ for (const family of ["chrome", "firefox"]) {
|
||||
assert.equal(calls[0].options.cache, "no-store");
|
||||
assert.equal(result.debugRequests[0].name, "requestCurrentUser");
|
||||
assert.equal(result.debugRequests[0].httpStatus, 200);
|
||||
assert.doesNotMatch(JSON.stringify(result), /synthetic-secret/);
|
||||
assert.equal(JSON.parse(result.debugRequests[0].responseBody).token, "synthetic-secret");
|
||||
const content = loadApplication("content");
|
||||
assert.doesNotMatch(content.debugContentLog.formatDebugBody(result.debugRequests[0].responseBody, "requestCurrentUser"), /synthetic-secret/);
|
||||
content.debugState.debugSecretsVisible = true;
|
||||
assert.match(content.debugContentLog.formatDebugBody(result.debugRequests[0].responseBody, "requestCurrentUser"), /synthetic-secret/);
|
||||
assert.equal(result.token, undefined);
|
||||
});
|
||||
}
|
||||
|
||||
test("identity failures and malformed roles remain explicit and never expose response tokens", async () => {
|
||||
test("identity failures retain diagnostics but hide response tokens by default", async () => {
|
||||
for (const fetch of [
|
||||
async () => new Response("synthetic-secret<html>fallback</html>"),
|
||||
async () => response({ token: "synthetic-secret", user: {} }),
|
||||
@@ -37,7 +41,8 @@ test("identity failures and malformed roles remain explicit and never expose res
|
||||
const result = await app.dispatch({ type });
|
||||
assert.equal(result.ok, false);
|
||||
assert.equal(result.debugRequests[0].status, "failed");
|
||||
assert.doesNotMatch(JSON.stringify(result), /synthetic-secret/);
|
||||
const content = loadApplication("content");
|
||||
assert.doesNotMatch(content.debugContentLog.formatDebugBody(result.debugRequests[0].responseBody, "requestCurrentUser"), /synthetic-secret/);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user