{ "id": "settings-subscription", "name": "구독관리 테스트", "screenshotPolicy": { "onErrorOnly": true, "captureOn": ["error", "fail", "timeout", "404", "500", "blocked"] }, "description": "설정 > 구독관리 메뉴의 구독 정보 조회/플랜 비교 기능 테스트", "baseUrl": "https://dev.codebridge-x.com", "menuNavigation": { "level1": "설정", "level2": "구독관리", "expectedUrl": "/subscription", "searchWithinParent": true, "closeOtherMenus": true }, "auth": { "username": "TestUser5", "password": "password123!" }, "selectors": { "pageTitle": "h1.text-xl.md\\:text-2xl", "planCard": "main .bg-card", "planName": "h3.text-xl", "paymentGrid": ".grid.grid-cols-1.md\\:grid-cols-3", "exportButton": "button:has-text('자료 내보내기')", "cancelButton": "button:has-text('서비스 해지')" }, "steps": [ { "id": 1, "name": "메뉴 진입: 설정 > 구독관리", "action": "menu_navigate", "level1": "설정", "level2": "구독관리", "expected": { "url_contains": "/subscription", "visible": ["구독관리"] } }, { "id": 2, "name": "페이지 타이틀 확인", "action": "verify_element", "selector": "h1", "contains": "구독관리", "expected": "구독관리 페이지 타이틀 표시" }, { "id": 3, "name": "필수 검증 #5: 목업 페이지 감지", "action": "verify_not_mockup", "checks": [ "구독 정보 카드 존재", "플랜 정보 표시", "사용량 현황 표시" ], "expected": "정상 페이지 (목업 아님)" }, { "id": 4, "name": "현재 플랜명 확인", "action": "verify_element", "selector": "h3.text-xl", "expected": "현재 플랜명 (무료/유료) 표시" }, { "id": 5, "name": "결제 정보 카드 그리드 확인", "action": "verify_element", "selector": ".grid.grid-cols-1", "expected": "결제 정보 카드 그리드 표시" }, { "id": 6, "name": "최근 결제일시 카드 확인", "action": "verify_text", "contains": "최근 결제일시", "expected": "최근 결제일시 정보 표시" }, { "id": 7, "name": "다음 결제일시 카드 확인", "action": "verify_text", "contains": "다음 결제일시", "expected": "다음 결제일시 정보 표시" }, { "id": 8, "name": "구독금액 카드 확인", "action": "verify_text", "contains": "구독금액", "expected": "구독금액 정보 표시" }, { "id": 9, "name": "구독 정보 카드 확인", "action": "verify_element", "selector": ".bg-card", "contains": "구독 정보", "expected": "구독 정보 카드 표시" }, { "id": 10, "name": "사용자 수 현황 확인", "action": "verify_text", "contains": "사용자 수", "expected": "사용자 수 현황 표시" }, { "id": 11, "name": "저장 공간 현황 확인", "action": "verify_text", "contains": "저장 공간", "expected": "저장 공간 현황 표시" }, { "id": 12, "name": "AI API 호출 현황 확인", "action": "verify_text", "contains": "AI API 호출", "expected": "AI API 호출 현황 표시" }, { "id": 13, "name": "자료 내보내기 버튼 확인", "action": "verify_element", "selector": "main button", "contains": "자료 내보내기", "expected": "자료 내보내기 버튼 표시" }, { "id": 14, "name": "서비스 해지 버튼 확인", "action": "verify_element", "selector": "main button", "contains": "서비스 해지", "expected": "서비스 해지 버튼 표시" } ], "expectedAPIs": [ { "method": "GET", "endpoint": "/api/v1/subscription", "description": "구독 정보 조회" }, { "method": "GET", "endpoint": "/api/v1/subscription/usage", "description": "사용량 현황 조회" } ], "requiredVerifications": [ { "id": 5, "name": "목업 페이지 감지", "steps": [3], "criteria": "구독 정보 카드, 플랜 정보, 사용량 현황 존재" } ], "rollbackPlan": { "note": "조회 전용 페이지로 데이터 변경 없음" } }