[UX] #577 present VPD as a product console

This commit is contained in:
devmrko
2026-07-01 08:06:03 +09:00
parent 45621e1b7d
commit be14b4c797
27 changed files with 203 additions and 263 deletions

View File

@@ -5,6 +5,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import org.junit.jupiter.api.Test;
class GuidedFlowTemplateTest {
@@ -12,18 +13,43 @@ class GuidedFlowTemplateTest {
@Test
void dashboardPrioritizesActionsAndKeepsDetailCollapsed() throws IOException {
String html = template("dashboard.html");
String layout = template("fragments/layout.html");
assertThat(html)
.contains("th:replace=\"~{fragments/layout :: head('VPD 권한 백오피스')}\"")
.contains("누가 어떤 데이터를 볼 수 있는지 설정하고 확인하세요")
.contains("권한 결과 확인")
.contains("권한 규칙 관리")
.contains("권한 적용 4단계")
.contains("workflow-steps")
.contains("th:replace=\"~{fragments/layout :: head('VPD 권한 운영')}\"")
.contains("권한 관리")
.contains("접근 검증")
.contains("접근 정책")
.contains("현재 상태")
.contains("작동 방식과 등록 대상 보기")
.contains("상세 현황")
.contains("<details class=\"dashboard-details\">")
.doesNotContain("journey-card");
.doesNotContain("journey-card")
.doesNotContain("dashboard-workflow")
.doesNotContain(">01<", ">02<");
assertThat(layout)
.contains("VPD 권한 운영")
.contains("데이터 보호")
.contains("접근 검증")
.contains("지식 검색")
.contains("시스템 관리")
.doesNotContain("VPD Backoffice");
}
@Test
void productPagesKeepBackgroundGuidanceBehindAConsistentHelpControl() throws IOException {
for (String page : List.of(
"permissions.html", "vpd-policies.html", "tokens.html", "probe.html", "objects.html",
"effective-matrix.html", "users.html", "groups.html", "roles.html", "vector-knowledge.html",
"operation-status.html", "settings.html", "settings-database.html", "ords-handlers.html",
"vpd-filter-policies.html", "mcp-chatbot.html", "mcp-reasoning.html", "mcp-client-demo.html",
"mcp-sse.html")) {
assertThat(template(page))
.contains("<summary>도움말</summary>")
.doesNotContain("context-summary")
.doesNotContain("architectureStrip");
}
assertThat(template("vector-knowledge.html"))
.doesNotContain("1 · CONTENT", "2 · ACCESS POLICY", "3 · SEARCH");
}
@Test
@@ -129,7 +155,7 @@ class GuidedFlowTemplateTest {
String database = template("settings-database.html");
assertThat(settings)
.contains("연결 설정")
.contains("시스템 설정")
.contains("/settings/database")
.doesNotContain("action=\"/settings/database/initialize\"");
assertThat(database)