forked from baron/baron-sso
클레임 토글 및 비활성화 저장 처리 추가
This commit is contained in:
@@ -98,8 +98,8 @@ function makeClientDetail(
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
client: {
|
||||
return {
|
||||
client: {
|
||||
id: "client-claims",
|
||||
name: "Claims App",
|
||||
type: "private",
|
||||
@@ -334,6 +334,47 @@ describe("ClientGeneralPage RP claims", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("clears saved RP claims when custom claims are disabled", async () => {
|
||||
const { container } = await renderPage();
|
||||
|
||||
const claimToggle = Array.from(
|
||||
container.querySelectorAll<HTMLButtonElement>('[role="switch"]'),
|
||||
).find((button) =>
|
||||
(button.getAttribute("aria-label") ?? "").includes("커스텀 클레임 사용"),
|
||||
);
|
||||
expect(claimToggle).toBeDefined();
|
||||
expect(claimToggle?.getAttribute("aria-checked")).toBe("true");
|
||||
|
||||
await act(async () => {
|
||||
claimToggle?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
||||
});
|
||||
await flush();
|
||||
|
||||
expect(claimToggle?.getAttribute("aria-checked")).toBe("false");
|
||||
|
||||
const saveButton = Array.from(container.querySelectorAll("button")).find(
|
||||
(button) =>
|
||||
button.textContent?.includes("저장") ||
|
||||
button.textContent?.includes("Save"),
|
||||
);
|
||||
expect(saveButton).toBeDefined();
|
||||
|
||||
await act(async () => {
|
||||
saveButton?.dispatchEvent(new MouseEvent("click", { bubbles: true }));
|
||||
});
|
||||
await flush();
|
||||
|
||||
expect(updateClientMock).toHaveBeenCalledWith(
|
||||
"client-claims",
|
||||
expect.objectContaining({
|
||||
metadata: expect.objectContaining({
|
||||
id_token_claims_enabled: false,
|
||||
id_token_claims: [],
|
||||
}),
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it("preserves tenants scope mandatory state when tenant access restriction is off", async () => {
|
||||
fetchClientMock.mockResolvedValue(
|
||||
makeClientDetail("old_claim", {
|
||||
@@ -354,7 +395,7 @@ describe("ClientGeneralPage RP claims", () => {
|
||||
|
||||
const tenantScopeRow = Array.from(container.querySelectorAll("tr")).find(
|
||||
(row) =>
|
||||
Array.from(row.querySelectorAll("input")).some(
|
||||
Array.from(row.querySelectorAll("input")).some(
|
||||
(input) => (input as HTMLInputElement).value === "tenants",
|
||||
),
|
||||
);
|
||||
@@ -389,10 +430,10 @@ describe("ClientGeneralPage RP claims", () => {
|
||||
expect(updateClientMock).toHaveBeenCalledWith(
|
||||
"client-claims",
|
||||
expect.objectContaining({
|
||||
metadata: expect.objectContaining({
|
||||
tenant_access_restricted: false,
|
||||
structured_scopes: expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
metadata: expect.objectContaining({
|
||||
tenant_access_restricted: false,
|
||||
structured_scopes: expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
name: "tenants",
|
||||
mandatory: false,
|
||||
locked: false,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1649,6 +1649,7 @@ picker_hint_with_count = "{{count}} tenants selected."
|
||||
[ui.dev.clients.general.id_token_claims]
|
||||
title = "Custom Claims"
|
||||
add = "Add Claim"
|
||||
enabled = "Custom Claims Enabled"
|
||||
preview_title = "Saved JSON Preview"
|
||||
namespace_label = "Claim namespace"
|
||||
namespace_top_level = "top-level"
|
||||
|
||||
@@ -1648,6 +1648,7 @@ picker_hint_with_count = "현재 {{count}}개가 선택되어 있습니다."
|
||||
[ui.dev.clients.general.id_token_claims]
|
||||
title = "커스텀 클레임"
|
||||
add = "Claim 추가"
|
||||
enabled = "커스텀 클레임 사용"
|
||||
preview_title = "저장 JSON 미리보기"
|
||||
namespace_label = "Claim 네임스페이스"
|
||||
namespace_top_level = "top-level"
|
||||
|
||||
@@ -1698,6 +1698,7 @@ picker_hint_with_count = ""
|
||||
[ui.dev.clients.general.id_token_claims]
|
||||
title = ""
|
||||
add = ""
|
||||
enabled = ""
|
||||
preview_title = ""
|
||||
namespace_label = ""
|
||||
namespace_top_level = ""
|
||||
|
||||
Reference in New Issue
Block a user