forked from baron/baron-sso
클레임 토글 및 비활성화 저장 처리 추가
This commit is contained in:
@@ -98,8 +98,8 @@ function makeClientDetail(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
client: {
|
client: {
|
||||||
id: "client-claims",
|
id: "client-claims",
|
||||||
name: "Claims App",
|
name: "Claims App",
|
||||||
type: "private",
|
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 () => {
|
it("preserves tenants scope mandatory state when tenant access restriction is off", async () => {
|
||||||
fetchClientMock.mockResolvedValue(
|
fetchClientMock.mockResolvedValue(
|
||||||
makeClientDetail("old_claim", {
|
makeClientDetail("old_claim", {
|
||||||
@@ -354,7 +395,7 @@ describe("ClientGeneralPage RP claims", () => {
|
|||||||
|
|
||||||
const tenantScopeRow = Array.from(container.querySelectorAll("tr")).find(
|
const tenantScopeRow = Array.from(container.querySelectorAll("tr")).find(
|
||||||
(row) =>
|
(row) =>
|
||||||
Array.from(row.querySelectorAll("input")).some(
|
Array.from(row.querySelectorAll("input")).some(
|
||||||
(input) => (input as HTMLInputElement).value === "tenants",
|
(input) => (input as HTMLInputElement).value === "tenants",
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -389,10 +430,10 @@ describe("ClientGeneralPage RP claims", () => {
|
|||||||
expect(updateClientMock).toHaveBeenCalledWith(
|
expect(updateClientMock).toHaveBeenCalledWith(
|
||||||
"client-claims",
|
"client-claims",
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
metadata: expect.objectContaining({
|
metadata: expect.objectContaining({
|
||||||
tenant_access_restricted: false,
|
tenant_access_restricted: false,
|
||||||
structured_scopes: expect.arrayContaining([
|
structured_scopes: expect.arrayContaining([
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
name: "tenants",
|
name: "tenants",
|
||||||
mandatory: false,
|
mandatory: false,
|
||||||
locked: 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]
|
[ui.dev.clients.general.id_token_claims]
|
||||||
title = "Custom Claims"
|
title = "Custom Claims"
|
||||||
add = "Add Claim"
|
add = "Add Claim"
|
||||||
|
enabled = "Custom Claims Enabled"
|
||||||
preview_title = "Saved JSON Preview"
|
preview_title = "Saved JSON Preview"
|
||||||
namespace_label = "Claim namespace"
|
namespace_label = "Claim namespace"
|
||||||
namespace_top_level = "top-level"
|
namespace_top_level = "top-level"
|
||||||
|
|||||||
@@ -1648,6 +1648,7 @@ picker_hint_with_count = "현재 {{count}}개가 선택되어 있습니다."
|
|||||||
[ui.dev.clients.general.id_token_claims]
|
[ui.dev.clients.general.id_token_claims]
|
||||||
title = "커스텀 클레임"
|
title = "커스텀 클레임"
|
||||||
add = "Claim 추가"
|
add = "Claim 추가"
|
||||||
|
enabled = "커스텀 클레임 사용"
|
||||||
preview_title = "저장 JSON 미리보기"
|
preview_title = "저장 JSON 미리보기"
|
||||||
namespace_label = "Claim 네임스페이스"
|
namespace_label = "Claim 네임스페이스"
|
||||||
namespace_top_level = "top-level"
|
namespace_top_level = "top-level"
|
||||||
|
|||||||
@@ -1698,6 +1698,7 @@ picker_hint_with_count = ""
|
|||||||
[ui.dev.clients.general.id_token_claims]
|
[ui.dev.clients.general.id_token_claims]
|
||||||
title = ""
|
title = ""
|
||||||
add = ""
|
add = ""
|
||||||
|
enabled = ""
|
||||||
preview_title = ""
|
preview_title = ""
|
||||||
namespace_label = ""
|
namespace_label = ""
|
||||||
namespace_top_level = ""
|
namespace_top_level = ""
|
||||||
|
|||||||
Reference in New Issue
Block a user