1
0
forked from baron/baron-sso

서브 타이틀 텍스트 렌더링 오류 수정

This commit is contained in:
2026-05-18 13:32:50 +09:00
parent 222dc6f4a4
commit d1184613d8
11 changed files with 69 additions and 3 deletions

View File

@@ -102,6 +102,11 @@ describe("DataIntegrityPage", () => {
renderPage();
expect(await screen.findByText("데이터 정합성 검증")).toBeInTheDocument();
expect(
await screen.findByText(
"정합성 상태를 확인하고 데이터 모델 전반의 검증 결과를 살펴봅니다.",
),
).toBeInTheDocument();
expect(await screen.findByText("테넌트 정합성")).toBeInTheDocument();
expect(screen.getByText("중복 테넌트 slug")).toBeInTheDocument();
expect(screen.getAllByText("1").length).toBeGreaterThan(0);
@@ -173,6 +178,11 @@ describe("DataIntegrityPage", () => {
expect(
await screen.findByText("Data Integrity Check"),
).toBeInTheDocument();
expect(
await screen.findByText(
"Review integrity status and inspect checks across the admin data model.",
),
).toBeInTheDocument();
expect(await screen.findByText("Tenant integrity")).toBeInTheDocument();
expect(await screen.findByText("Duplicate tenant slug")).toBeInTheDocument();
expect(

View File

@@ -331,6 +331,12 @@ function DataIntegrityContent() {
<h2 className="text-2xl font-semibold tracking-tight">
{t("ui.admin.integrity.title", "데이터 정합성 검증")}
</h2>
<p className="mt-1 text-sm text-muted-foreground">
{t(
"msg.admin.integrity.subtitle",
"Review integrity status and inspect checks across the admin data model.",
)}
</p>
</div>
<div className="flex flex-col items-end gap-1">
<Button

View File

@@ -64,6 +64,11 @@ describe("UserProjectionPage", () => {
expect(
await screen.findByText("사용자 동기화 관리"),
).toBeInTheDocument();
expect(
await screen.findByText(
"Kratos 사용자 read model을 확인하고 동기화 상태를 갱신합니다.",
),
).toBeInTheDocument();
expect(
await screen.findByText("Kratos 사용자 동기화"),
).toBeInTheDocument();
@@ -108,6 +113,9 @@ describe("UserProjectionPage", () => {
expect(
await screen.findByText("User Projection Management"),
).toBeInTheDocument();
expect(
await screen.findByText("Review and sync the Kratos user read model."),
).toBeInTheDocument();
expect(screen.getByText("Re-sync")).toBeInTheDocument();
expect(await screen.findByText("ready")).toBeInTheDocument();
});

View File

@@ -104,6 +104,12 @@ function UserProjectionContent() {
"User Projection Management",
)}
</h2>
<p className="mt-1 text-sm text-muted-foreground">
{t(
"msg.admin.user_projection.subtitle",
"Review and sync the Kratos user read model.",
)}
</p>
</div>
<div className="flex flex-wrap gap-2">
<Button

View File

@@ -183,6 +183,7 @@ action_success = "Refreshed the projection for {{count}} users."
forbidden_description = "This screen is only available to super_admin users."
load_error = "Failed to load projection status."
reset_confirm = "Rebuild user projection from the Kratos source of truth?"
subtitle = "Review and sync the Kratos user read model."
[msg.admin.user_projection.forbidden]
description = "This screen is only available to super_admin users."
@@ -364,14 +365,14 @@ self_password_reset_blocked = "Please change your own password from the UserFron
delete_confirm = "Delete Confirm"
empty = "Empty"
fetch_error = "Fetch Error"
subtitle = "Subtitle"
subtitle = "View and manage system users."
[msg.admin.users.list.columns]
description = "Select columns to display in the table."
no_custom = "No custom fields defined for this tenant."
[msg.admin.users.list.registry]
count = "Count"
count = "{{count}} users loaded."
[msg.dev]
logout_confirm = "Are you sure you want to log out?"
@@ -888,6 +889,7 @@ kicker = "System"
loading = "Loading data integrity report..."
title = "Data Integrity Check"
fetch_error = "Unable to load the final integrity check result."
subtitle = "Review integrity status and inspect checks across the admin data model."
[ui.admin.integrity.forbidden]
title = "Access denied"
@@ -967,6 +969,7 @@ users = "Users"
[ui.admin.user_projection]
loading = "Loading user projection data..."
subtitle = "Review and sync the Kratos user read model."
title = "User Projection Management"
[ui.admin.user_projection.actions]
@@ -1428,7 +1431,7 @@ title = "Column Settings"
tenant = "Tenant Filter"
[ui.admin.users.list.registry]
count = "Count"
count = "Registered users"
title = "User Registry"
[ui.admin.users.list.table]

View File

@@ -177,12 +177,16 @@ description = "user_login_ids.user_id가 존재하지 않거나 soft-deleted use
[msg.admin.integrity.check.orphan_user_tenant_memberships]
description = "users.tenant_id가 존재하지 않거나 soft-deleted tenant를 참조하는지 검사합니다."
[msg.admin.integrity]
subtitle = "정합성 상태를 확인하고 데이터 모델 전반의 검증 결과를 살펴봅니다."
[msg.admin.user_projection]
action_error = "사용자 동기화 작업에 실패했습니다."
action_success = "{{count}}명 기준으로 사용자 동기화를 갱신했습니다."
forbidden_description = "이 화면은 super_admin 권한으로만 접근할 수 있습니다."
load_error = "사용자 동기화 상태를 불러오지 못했습니다."
reset_confirm = "사용자 동기화를 Kratos 기준으로 다시 구축하시겠습니까?"
subtitle = "Kratos 사용자 read model을 확인하고 동기화 상태를 갱신합니다."
[msg.admin.user_projection.forbidden]
description = "이 화면은 super_admin 권한으로만 접근할 수 있습니다."

View File

@@ -182,12 +182,16 @@ description = ""
[msg.admin.integrity.check.orphan_user_tenant_memberships]
description = ""
[msg.admin.integrity]
subtitle = ""
[msg.admin.user_projection]
action_error = ""
action_success = ""
forbidden_description = ""
load_error = ""
reset_confirm = ""
subtitle = ""
[msg.admin.user_projection.forbidden]
description = ""

View File

@@ -28,6 +28,8 @@ const translations: Record<"ko" | "en", Record<string, string>> = {
"ui.admin.integrity.section.tenant_integrity": "테넌트 정합성",
"ui.admin.integrity.section.user_integrity": "사용자 정합성",
"ui.admin.integrity.title": "데이터 정합성 검증",
"msg.admin.integrity.subtitle":
"정합성 상태를 확인하고 데이터 모델 전반의 검증 결과를 살펴봅니다.",
"ui.admin.integrity.recheck.run": "다시 검사",
"ui.admin.integrity.recheck.running": "검사 중",
"ui.admin.integrity.status.fail": "실패",
@@ -51,6 +53,11 @@ const translations: Record<"ko" | "en", Record<string, string>> = {
"ui.admin.user_projection.summary.status": "상태",
"ui.admin.user_projection.summary.updated_at": "상태 갱신",
"ui.admin.user_projection.title": "사용자 동기화 관리",
"msg.admin.user_projection.subtitle":
"Kratos 사용자 read model을 확인하고 동기화 상태를 갱신합니다.",
"msg.admin.users.list.subtitle": "시스템 사용자를 조회하고 관리합니다.",
"msg.admin.users.list.registry.count":
"총 {{count}}명의 사용자가 등록되어 있습니다.",
"msg.admin.integrity.check.duplicate_tenant_slugs.description":
"삭제되지 않은 tenant의 LOWER(TRIM(slug)) 기준 중복을 검사합니다.",
"msg.admin.integrity.check.orphan_tenant_parents.description":
@@ -94,6 +101,8 @@ const translations: Record<"ko" | "en", Record<string, string>> = {
"ui.admin.integrity.section.tenant_integrity": "Tenant integrity",
"ui.admin.integrity.section.user_integrity": "User integrity",
"ui.admin.integrity.title": "Data Integrity Check",
"msg.admin.integrity.subtitle":
"Review integrity status and inspect checks across the admin data model.",
"ui.admin.integrity.recheck.run": "Run again",
"ui.admin.integrity.recheck.running": "Checking",
"ui.admin.integrity.status.fail": "Failed",
@@ -117,6 +126,11 @@ const translations: Record<"ko" | "en", Record<string, string>> = {
"ui.admin.user_projection.summary.status": "Status",
"ui.admin.user_projection.summary.updated_at": "Updated at",
"ui.admin.user_projection.title": "User Projection Management",
"msg.admin.user_projection.subtitle":
"Review and sync the Kratos user read model.",
"msg.admin.users.list.subtitle":
"Search and manage users registered in the current tenant.",
"msg.admin.users.list.registry.count": "{{count}} users loaded.",
"msg.admin.integrity.check.duplicate_tenant_slugs.description":
"Checks duplicate active tenant slugs using LOWER(TRIM(slug)).",
"msg.admin.integrity.check.orphan_tenant_parents.description":

View File

@@ -2684,6 +2684,7 @@ action_success = "Refreshed the projection for {{count}} users."
forbidden_description = "This screen is only available to super_admin users."
load_error = "Failed to load projection status."
reset_confirm = "Rebuild user projection from the Kratos source of truth?"
subtitle = "Review and sync the Kratos user read model."
[msg.admin.user_projection.forbidden]
description = "This screen is only available to super_admin users."
@@ -2692,6 +2693,7 @@ description = "This screen is only available to super_admin users."
fetch_error = "Unable to load the final integrity check result."
kicker = "System"
loading = "Loading data integrity report..."
subtitle = "Review integrity status and inspect checks across the admin data model."
title = "Data Integrity Check"
[ui.admin.integrity.forbidden]
@@ -2771,6 +2773,7 @@ save_scopes = "Save scopes"
[ui.admin.user_projection]
loading = "Loading user projection data..."
subtitle = "Review and sync the Kratos user read model."
title = "User Projection Management"
[ui.admin.user_projection.actions]

View File

@@ -3102,12 +3102,16 @@ description = "user_login_ids.user_id가 존재하지 않거나 soft-deleted use
[msg.admin.integrity.check.orphan_user_tenant_memberships]
description = "users.tenant_id가 존재하지 않거나 soft-deleted tenant를 참조하는지 검사합니다."
[msg.admin.integrity]
subtitle = "정합성 상태를 확인하고 데이터 모델 전반의 검증 결과를 살펴봅니다."
[msg.admin.user_projection]
action_error = "사용자 동기화 작업에 실패했습니다."
action_success = "{{count}}명 기준으로 사용자 동기화를 갱신했습니다."
forbidden_description = "이 화면은 super_admin 권한으로만 접근할 수 있습니다."
load_error = "사용자 동기화 상태를 불러오지 못했습니다."
reset_confirm = "사용자 동기화를 Kratos 기준으로 다시 구축하시겠습니까?"
subtitle = "Kratos 사용자 read model을 확인하고 동기화 상태를 갱신합니다."
[msg.admin.user_projection.forbidden]
description = "이 화면은 super_admin 권한으로만 접근할 수 있습니다."

View File

@@ -2982,12 +2982,16 @@ description = ""
[msg.admin.integrity.check.orphan_user_tenant_memberships]
description = ""
[msg.admin.integrity]
subtitle = ""
[msg.admin.user_projection]
action_error = ""
action_success = ""
forbidden_description = ""
load_error = ""
reset_confirm = ""
subtitle = ""
[msg.admin.user_projection.forbidden]
description = ""