159 lines
4.2 KiB
JSON
159 lines
4.2 KiB
JSON
|
|
{
|
||
|
|
"id": "settings-permission",
|
||
|
|
"name": "권한관리 테스트",
|
||
|
|
"screenshotPolicy": {
|
||
|
|
"onErrorOnly": true,
|
||
|
|
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
|
||
|
|
},
|
||
|
|
"description": "설정 > 권한관리 메뉴의 권한 그룹 목록 조회 및 UI 검증 테스트",
|
||
|
|
"baseUrl": "https://dev.codebridge-x.com",
|
||
|
|
"menuNavigation": {
|
||
|
|
"level1": "설정",
|
||
|
|
"level2": "권한관리",
|
||
|
|
"expectedUrl": "/settings/permissions",
|
||
|
|
"searchWithinParent": true,
|
||
|
|
"closeOtherMenus": true
|
||
|
|
},
|
||
|
|
"auth": {
|
||
|
|
"username": "TestUser5",
|
||
|
|
"password": "password123!"
|
||
|
|
},
|
||
|
|
"steps": [
|
||
|
|
{
|
||
|
|
"id": 1,
|
||
|
|
"name": "메뉴 진입: 설정 > 권한관리",
|
||
|
|
"action": "menu_navigate",
|
||
|
|
"level1": "설정",
|
||
|
|
"level2": "권한관리",
|
||
|
|
"expected": {
|
||
|
|
"url_contains": "/settings/permissions",
|
||
|
|
"visible": ["권한관리", "권한"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 2,
|
||
|
|
"name": "필수 검증 #5: 목업 페이지 감지",
|
||
|
|
"action": "verify_not_mockup",
|
||
|
|
"checks": [
|
||
|
|
"권한 그룹 목록 표시",
|
||
|
|
"권한 추가 버튼 존재",
|
||
|
|
"권한 설정 영역 존재"
|
||
|
|
],
|
||
|
|
"expected": "정상 페이지 (목업 아님)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 3,
|
||
|
|
"name": "권한 그룹 목록 확인",
|
||
|
|
"action": "verify_elements",
|
||
|
|
"checks": [
|
||
|
|
"권한 그룹 목록 테이블 또는 리스트",
|
||
|
|
"기본 역할 (관리자, 사용자 등) 표시",
|
||
|
|
"권한 추가 버튼"
|
||
|
|
],
|
||
|
|
"expected": "권한 목록 정상 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 4,
|
||
|
|
"phase": "READ",
|
||
|
|
"name": "[READ] 첫 번째 권한 그룹 클릭",
|
||
|
|
"action": "click_if_exists",
|
||
|
|
"target": "table tbody tr:first-child, li:first-child, [class*='list'] > *:first-child",
|
||
|
|
"expected": {
|
||
|
|
"visible": ["메뉴 권한", "기능 권한"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 5,
|
||
|
|
"phase": "READ",
|
||
|
|
"name": "[READ] 권한 체크박스 구조 확인",
|
||
|
|
"action": "verify_elements",
|
||
|
|
"checks": [
|
||
|
|
"메뉴별 읽기/쓰기/삭제 권한",
|
||
|
|
"전체 선택/해제 기능"
|
||
|
|
],
|
||
|
|
"expected": "권한 체크박스 매트릭스 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 6,
|
||
|
|
"phase": "READ",
|
||
|
|
"name": "[READ] 권한 상세 정보 확인",
|
||
|
|
"action": "verify_detail",
|
||
|
|
"checks": [
|
||
|
|
"권한 그룹 정보 표시됨",
|
||
|
|
"체크박스 또는 권한 목록 표시"
|
||
|
|
],
|
||
|
|
"expected": "권한 상세 정보 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 7,
|
||
|
|
"name": "권한 추가 버튼 확인",
|
||
|
|
"action": "click_if_exists",
|
||
|
|
"target": "button:has-text('추가'), button:has-text('권한 추가'), button:has-text('역할 추가')",
|
||
|
|
"expected": {
|
||
|
|
"modal_or_form": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 8,
|
||
|
|
"name": "추가 모달 확인",
|
||
|
|
"action": "verify_elements",
|
||
|
|
"checks": [
|
||
|
|
"역할명 입력 필드",
|
||
|
|
"설명 입력 필드"
|
||
|
|
],
|
||
|
|
"expected": "권한 추가 폼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 9,
|
||
|
|
"name": "추가 모달 닫기",
|
||
|
|
"action": "close_modal_if_open",
|
||
|
|
"expected": "모달 닫힘"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 10,
|
||
|
|
"name": "저장 버튼 존재 확인",
|
||
|
|
"action": "verify_elements",
|
||
|
|
"checks": [
|
||
|
|
"저장 또는 적용 버튼 존재"
|
||
|
|
],
|
||
|
|
"expected": "저장 버튼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 11,
|
||
|
|
"name": "삭제 버튼 존재 확인",
|
||
|
|
"action": "verify_elements",
|
||
|
|
"checks": [
|
||
|
|
"삭제 버튼 존재 여부"
|
||
|
|
],
|
||
|
|
"expected": "삭제 기능 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 12,
|
||
|
|
"name": "권한관리 페이지 최종 확인",
|
||
|
|
"action": "verify_detail",
|
||
|
|
"checks": [
|
||
|
|
"권한관리 페이지 정상 동작"
|
||
|
|
],
|
||
|
|
"expected": "페이지 정상 확인"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"expectedAPIs": [
|
||
|
|
{
|
||
|
|
"method": "GET",
|
||
|
|
"endpoint": "/api/v1/roles",
|
||
|
|
"description": "역할 목록 조회"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"requiredVerifications": [
|
||
|
|
{
|
||
|
|
"id": 5,
|
||
|
|
"name": "목업 페이지 감지",
|
||
|
|
"steps": [2],
|
||
|
|
"criteria": "권한 목록, 추가 버튼, 권한 체크박스 존재"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"rollbackPlan": {
|
||
|
|
"note": "READ-only 패턴으로 안정성 우선"
|
||
|
|
}
|
||
|
|
}
|