forked from baron/baron-sso
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import {
|
|
type Consent,
|
|
installDevApiMock,
|
|
makeClient,
|
|
seedAuth,
|
|
} from "./helpers/devfront-fixtures";
|
|
import { installDevFrontStaticRoutes } from "./helpers/static-devfront";
|
|
|
|
test.describe("DevFront RP claim cache", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await installDevFrontStaticRoutes(page);
|
|
await seedAuth(page, "super_admin");
|
|
});
|
|
|
|
test("keeps saved RP claim value visible after saving", async ({ page }) => {
|
|
const state = {
|
|
clients: [
|
|
makeClient("client-claims", {
|
|
name: "Claims app",
|
|
metadata: {
|
|
id_token_claims: [
|
|
{
|
|
namespace: "rp_claims",
|
|
key: "old_claim",
|
|
value: "A",
|
|
valueType: "text",
|
|
readPermission: "admin_only",
|
|
writePermission: "admin_only",
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
],
|
|
consents: [] as Consent[],
|
|
auditLogsByCursor: undefined,
|
|
mockRole: "super_admin",
|
|
};
|
|
await installDevApiMock(page, state);
|
|
|
|
await page.goto("http://devfront.test/clients/client-claims/settings");
|
|
|
|
const claimKeyInput = page
|
|
.getByPlaceholder(/e\.g\. locale|예: locale/i)
|
|
.first();
|
|
await expect(claimKeyInput).toHaveValue("old_claim");
|
|
|
|
await claimKeyInput.fill("new_claim");
|
|
await page.getByRole("button", { name: /^저장$|^Save$/i }).click();
|
|
|
|
await expect
|
|
.poll(
|
|
() =>
|
|
(
|
|
state.clients[0]?.metadata?.id_token_claims as
|
|
| Array<{ key?: string }>
|
|
| undefined
|
|
)?.[0]?.key,
|
|
)
|
|
.toBe("new_claim");
|
|
await expect(claimKeyInput).toHaveValue("new_claim");
|
|
});
|
|
});
|