414 lines
12 KiB
JSON
414 lines
12 KiB
JSON
{
|
|
"id": "card-transactions",
|
|
"name": "카드거래 테스트",
|
|
"screenshotPolicy": {
|
|
"onErrorOnly": true,
|
|
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
|
|
},
|
|
"description": "회계관리 > 카드거래 메뉴의 기간 설정, 계정과목명 일괄변경, 모달 상세 수정 기능 테스트",
|
|
"baseUrl": "https://dev.codebridge-x.com",
|
|
"url": "/ko/accounting/card-transactions",
|
|
"menuNavigation": {
|
|
"level1": "회계관리",
|
|
"level2": "카드내역조회",
|
|
"expectedUrl": "/ko/accounting/card-transactions"
|
|
},
|
|
"menuNavigationEnhanced": {
|
|
"strategy": "scroll-and-search",
|
|
"sidebarSelector": ".sidebar-scroll, [class*='sidebar'], nav[role='navigation']",
|
|
"scrollConfig": {
|
|
"scrollToTopFirst": true,
|
|
"scrollStep": 200,
|
|
"maxScrollAttempts": 10,
|
|
"waitAfterScroll": 300
|
|
},
|
|
"level1": {
|
|
"text": "회계관리",
|
|
"selectors": [
|
|
"button:has-text('회계관리')",
|
|
"[data-menu='회계관리']",
|
|
".menu-item:has-text('회계관리')"
|
|
],
|
|
"expandWait": 500
|
|
},
|
|
"level2": {
|
|
"text": "카드내역조회",
|
|
"selectors": [
|
|
"a:has-text('카드내역조회')",
|
|
"[data-submenu='카드내역조회']",
|
|
".submenu-item:has-text('카드내역조회')"
|
|
]
|
|
},
|
|
"fallbackUrl": "/ko/accounting/card-transactions"
|
|
},
|
|
"testFocus": {
|
|
"primary": "계정과목명 일괄변경 및 모달 수정 기능 검증",
|
|
"description": "2년 기간 설정 후 체크박스 선택하여 계정과목명 일괄변경, 행 클릭 시 모달창에서 적요/사용유형 수정 저장 확인"
|
|
},
|
|
"prerequisites": {
|
|
"authentication": true,
|
|
"testData": {
|
|
"dateRange": {
|
|
"startDate": "2024-01-15",
|
|
"endDate": "2026-01-15",
|
|
"description": "현재일자(2026-01-15)에서 2년 전까지"
|
|
}
|
|
}
|
|
},
|
|
"steps": [
|
|
{
|
|
"id": "step-0",
|
|
"name": "사이드바 준비",
|
|
"description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤하여 초기화",
|
|
"actions": [
|
|
{
|
|
"type": "evaluate",
|
|
"script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})"
|
|
},
|
|
{ "type": "wait", "duration": 500 }
|
|
],
|
|
"expected": {
|
|
"sidebarScrollTop": 0,
|
|
"sidebarReady": true
|
|
}
|
|
},
|
|
{
|
|
"id": "step-1",
|
|
"name": "2단계 메뉴 진입: 회계관리 > 카드거래",
|
|
"description": "사이드바 스크롤 탐색으로 회계관리 > 카드거래 메뉴 진입",
|
|
"navigationPattern": "scrollAndFind",
|
|
"actions": [
|
|
{
|
|
"type": "scrollAndFind",
|
|
"target": "회계관리",
|
|
"scrollContainer": ".sidebar-scroll, [class*='sidebar'], nav[role='navigation']",
|
|
"scrollStep": 200,
|
|
"maxAttempts": 10
|
|
},
|
|
{ "type": "click", "target": "회계관리" },
|
|
{ "type": "wait", "duration": 500 },
|
|
{
|
|
"type": "scrollAndFind",
|
|
"target": "카드내역조회",
|
|
"scrollContainer": ".sidebar-scroll, [class*='sidebar'], nav[role='navigation']",
|
|
"scrollStep": 200,
|
|
"maxAttempts": 5
|
|
},
|
|
{ "type": "click", "target": "카드내역조회" },
|
|
{ "type": "wait", "target": "페이지 로드 완료" }
|
|
],
|
|
"fallback": {
|
|
"type": "directNavigation",
|
|
"url": "/ko/accounting/card-transactions"
|
|
},
|
|
"expected": {
|
|
"url": "/ko/accounting/card-transactions",
|
|
"pageTitle": "카드내역조회",
|
|
"elements": ["페이지 타이틀", "날짜 필터", "테이블"],
|
|
"authenticated": true
|
|
}
|
|
},
|
|
{
|
|
"id": "step-2",
|
|
"name": "목록 페이지 구조 확인",
|
|
"description": "통계 카드, 필터, 테이블 컬럼 구조 확인",
|
|
"actions": [
|
|
{
|
|
"type": "verify",
|
|
"target": "페이지 구조"
|
|
}
|
|
],
|
|
"expected": {
|
|
"statisticsCards": ["사용금액", "사용유형 미설정"],
|
|
"filters": ["기간 선택", "카드 선택", "정렬"],
|
|
"tableColumns": ["체크박스", "카드명", "사용일시", "가맹점명", "사용금액", "적요", "사용유형"],
|
|
"periodButtons": ["당해년도", "전전월", "전월", "당월", "어제", "오늘"]
|
|
}
|
|
},
|
|
{
|
|
"id": "step-3",
|
|
"name": "2년 기간 설정 (2024-01-15 ~ 2026-01-15)",
|
|
"description": "현재일자에서 2년 전까지 날짜 범위 설정",
|
|
"actions": [
|
|
{
|
|
"type": "clear",
|
|
"target": "시작일 입력 필드"
|
|
},
|
|
{
|
|
"type": "type",
|
|
"target": "시작일 입력 필드",
|
|
"value": "2024-01-15"
|
|
},
|
|
{
|
|
"type": "clear",
|
|
"target": "종료일 입력 필드"
|
|
},
|
|
{
|
|
"type": "type",
|
|
"target": "종료일 입력 필드",
|
|
"value": "2026-01-15"
|
|
},
|
|
{
|
|
"type": "click",
|
|
"target": "새로고침 버튼"
|
|
}
|
|
],
|
|
"expected": {
|
|
"startDate": "2024-01-15",
|
|
"endDate": "2026-01-15",
|
|
"dataLoaded": true,
|
|
"tableHasData": "데이터 존재 여부 확인"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-4",
|
|
"name": "테이블 데이터 존재 확인",
|
|
"description": "2년 기간 내 카드거래 데이터가 테이블에 표시되는지 확인",
|
|
"actions": [
|
|
{
|
|
"type": "verify",
|
|
"target": "테이블 데이터"
|
|
}
|
|
],
|
|
"expected": {
|
|
"tableRows": "> 0",
|
|
"statisticsUpdated": true,
|
|
"noEmptyMessage": "검색 결과가 없습니다 메시지 없음"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-5",
|
|
"name": "계정과목명 드롭다운 옵션 확인",
|
|
"description": "계정과목명(사용유형) 드롭다운의 옵션 목록 확인",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "계정과목명 드롭다운"
|
|
},
|
|
{
|
|
"type": "verify",
|
|
"target": "드롭다운 옵션"
|
|
}
|
|
],
|
|
"expected": {
|
|
"options": ["미설정", "접대비", "복리후생비", "차량유지비", "소모품비", "통신비", "교통비", "광고선전비", "기타"]
|
|
}
|
|
},
|
|
{
|
|
"id": "step-6",
|
|
"name": "체크박스 선택 (일괄변경용)",
|
|
"description": "테이블에서 1개 이상의 행 체크박스 선택",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "첫 번째 행 체크박스"
|
|
},
|
|
{
|
|
"type": "verify",
|
|
"target": "선택 상태"
|
|
}
|
|
],
|
|
"expected": {
|
|
"checkboxSelected": true,
|
|
"selectedCount": 1
|
|
}
|
|
},
|
|
{
|
|
"id": "step-7",
|
|
"name": "계정과목명 일괄변경 실행",
|
|
"description": "선택된 행에 대해 계정과목명을 변경하고 저장",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "계정과목명 드롭다운"
|
|
},
|
|
{
|
|
"type": "select",
|
|
"target": "옵션",
|
|
"value": "접대비"
|
|
},
|
|
{
|
|
"type": "click",
|
|
"target": "저장 버튼"
|
|
},
|
|
{
|
|
"type": "wait",
|
|
"target": "확인 다이얼로그"
|
|
},
|
|
{
|
|
"type": "click",
|
|
"target": "확인 버튼"
|
|
}
|
|
],
|
|
"expected": {
|
|
"confirmDialog": "N개의 사용 유형을 접대비(으)로 모두 변경하시겠습니까?",
|
|
"apiCall": "POST /accounting/card-transactions",
|
|
"apiResponse": "200 OK",
|
|
"dataChanged": "미설정 → 접대비"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-8",
|
|
"name": "일괄변경 결과 확인",
|
|
"description": "계정과목명 변경 후 테이블 및 통계 카드 업데이트 확인",
|
|
"actions": [
|
|
{
|
|
"type": "verify",
|
|
"target": "변경된 사용유형"
|
|
},
|
|
{
|
|
"type": "verify",
|
|
"target": "통계 카드 (사용유형 미설정 건수)"
|
|
}
|
|
],
|
|
"expected": {
|
|
"usageTypeChanged": "접대비",
|
|
"unsetCountDecreased": true,
|
|
"successToast": "변경 완료"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-9",
|
|
"name": "행 클릭하여 모달창 열기",
|
|
"description": "테이블의 특정 행을 클릭하여 상세 모달창 표시",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "테이블 첫 번째 행"
|
|
},
|
|
{
|
|
"type": "wait",
|
|
"target": "모달창 표시"
|
|
}
|
|
],
|
|
"expected": {
|
|
"modalOpened": true,
|
|
"modalTitle": "카드거래 상세",
|
|
"modalFields": ["카드명", "사용일시", "가맹점명", "사용금액", "적요", "사용유형"]
|
|
}
|
|
},
|
|
{
|
|
"id": "step-10",
|
|
"name": "모달창 필드 상태 확인",
|
|
"description": "모달창 내 각 필드의 읽기전용/편집가능 상태 확인",
|
|
"actions": [
|
|
{
|
|
"type": "verify",
|
|
"target": "모달 필드 상태"
|
|
}
|
|
],
|
|
"expected": {
|
|
"readOnlyFields": ["카드명", "사용일시", "가맹점명", "사용금액"],
|
|
"editableFields": ["적요", "사용유형"],
|
|
"buttons": ["취소", "저장"]
|
|
}
|
|
},
|
|
{
|
|
"id": "step-11",
|
|
"name": "모달창에서 적요 수정",
|
|
"description": "적요 필드 값을 변경",
|
|
"actions": [
|
|
{
|
|
"type": "clear",
|
|
"target": "적요 입력 필드"
|
|
},
|
|
{
|
|
"type": "type",
|
|
"target": "적요 입력 필드",
|
|
"value": "테스트 적요 수정"
|
|
}
|
|
],
|
|
"expected": {
|
|
"fieldValue": "테스트 적요 수정"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-12",
|
|
"name": "모달창에서 사용유형 수정",
|
|
"description": "사용유형 드롭다운에서 다른 옵션 선택",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "사용유형 드롭다운"
|
|
},
|
|
{
|
|
"type": "select",
|
|
"target": "옵션",
|
|
"value": "복리후생비"
|
|
}
|
|
],
|
|
"expected": {
|
|
"selectedOption": "복리후생비"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-13",
|
|
"name": "모달창 저장 버튼 클릭",
|
|
"description": "수정된 내용 저장",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "저장 버튼"
|
|
},
|
|
{
|
|
"type": "wait",
|
|
"target": "저장 처리 완료"
|
|
}
|
|
],
|
|
"expected": {
|
|
"apiCall": "PUT/PATCH /accounting/card-transactions/{id}",
|
|
"apiResponse": "200 OK",
|
|
"modalClosed": true,
|
|
"successToast": "저장 완료"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-14",
|
|
"name": "수정 데이터 반영 확인",
|
|
"description": "모달에서 수정한 내용이 테이블에 반영되었는지 확인",
|
|
"actions": [
|
|
{
|
|
"type": "verify",
|
|
"target": "테이블 해당 행"
|
|
}
|
|
],
|
|
"expected": {
|
|
"updatedMemo": "테스트 적요 수정",
|
|
"updatedUsageType": "복리후생비"
|
|
}
|
|
},
|
|
{
|
|
"id": "step-15",
|
|
"name": "모달창 취소 버튼 동작 확인",
|
|
"description": "다른 행 클릭 후 취소 버튼으로 모달 닫기",
|
|
"actions": [
|
|
{
|
|
"type": "click",
|
|
"target": "다른 행"
|
|
},
|
|
{
|
|
"type": "wait",
|
|
"target": "모달창"
|
|
},
|
|
{
|
|
"type": "click",
|
|
"target": "취소 버튼"
|
|
}
|
|
],
|
|
"expected": {
|
|
"modalClosed": true,
|
|
"dataUnchanged": true
|
|
}
|
|
}
|
|
],
|
|
"cleanup": {
|
|
"description": "테스트 후 변경된 데이터 원복 (필요시)",
|
|
"actions": []
|
|
},
|
|
"notes": [
|
|
"기존 입금관리, 출금관리, 매출관리에서 계정과목명 일괄변경 시 데이터 미반영 버그 발견됨 (BUG-DEPOSIT-20260115-001 등)",
|
|
"카드거래에서도 동일 패턴 버그 발생 가능성 있음",
|
|
"모달창 저장 시 URL 변경 및 에러 페이지 이동 여부 반드시 확인 필요"
|
|
]
|
|
}
|