2026-01-30 10:50:38 +09:00
{
"id" : "deposit-management" ,
"name" : "입금관리 테스트" ,
"screenshotPolicy" : {
"onErrorOnly" : true ,
2026-02-09 15:05:03 +09:00
"captureOn" : [
"error" ,
"fail" ,
"timeout" ,
"404" ,
"500" ,
"blocked"
]
2026-01-30 10:50:38 +09:00
} ,
"description" : "입금관리 목록 조회, 계정과목명 일괄변경, 상세 수정 기능 E2E 테스트" ,
"baseUrl" : "https://dev.codebridge-x.com" ,
"url" : "/ko/accounting/deposits" ,
2026-01-30 21:47:29 +09:00
"navigation" : {
"targetUrl" : "/accounting/deposits" ,
"urlPattern" : "/accounting/deposits|/ko/accounting/deposits" ,
2026-02-09 15:05:03 +09:00
"menuHints" : [
"입금관리" ,
"입금 관리" ,
"회계관리"
]
2026-01-30 21:47:29 +09:00
} ,
2026-01-30 10:50:38 +09:00
"menuNavigation" : {
"level1" : "회계관리" ,
"level2" : "입금관리" ,
2026-02-04 21:59:56 +09:00
"expectedUrl" : "/ko/accounting/deposits" ,
"searchWithinParent" : true ,
"closeOtherMenus" : true
2026-01-30 10:50:38 +09:00
} ,
"menuNavigationEnhanced" : {
"strategy" : "scroll-and-search" ,
"description" : "사이드바를 스크롤하며 메뉴를 찾고 클릭하여 404를 방지" ,
"level1" : "회계관리" ,
"level2" : "입금관리" ,
2026-02-09 15:05:03 +09:00
"alternativeLevel1Names" : [
"회계관리" ,
"회계 관리" ,
"Accounting"
] ,
"alternativeLevel2Names" : [
"입금관리" ,
"입금 관리" ,
"Deposits"
] ,
2026-01-30 10:50:38 +09:00
"scrollConfig" : {
"sidebarSelector" : "nav, aside, [role='navigation'], .sidebar, #sidebar" ,
"menuItemSelector" : "a, button, [role='menuitem'], [role='treeitem']" ,
"scrollStep" : 200 ,
"maxScrollAttempts" : 10 ,
"scrollDelay" : 300
}
} ,
"timeout" : 60000 ,
2026-02-09 15:05:03 +09:00
"tags" : [
"accounting" ,
"deposit" ,
"crud"
] ,
2026-02-04 21:59:56 +09:00
"auth" : {
"username" : "TestUser5" ,
"password" : "password123!"
2026-01-30 10:50:38 +09:00
} ,
"steps" : [
{
2026-02-09 15:05:03 +09:00
"id" : 1 ,
2026-01-30 16:26:52 +09:00
"name" : "사이드바 메뉴 전체 펼치기" ,
"description" : "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비" ,
2026-02-28 17:21:01 +09:00
"action" : "evaluate" ,
"script" : "(async()=>{document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'});await new Promise(r=>setTimeout(r,300));Array.from(document.querySelectorAll('button')).find(b=>b.innerText?.includes('모두 펼치기'))?.click();await new Promise(r=>setTimeout(r,2000));return 'sidebar expanded';})()"
2026-01-30 10:50:38 +09:00
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 2 ,
2026-01-30 10:50:38 +09:00
"name" : "2단계 메뉴 진입: 회계관리 > 입금관리" ,
"description" : "사이드바를 스크롤하며 회계관리 > 입금관리 메뉴를 찾아 클릭" ,
2026-02-28 17:21:01 +09:00
"action" : "menu_navigate" ,
"level1" : "회계관리" ,
"level2" : "입금관리" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"url" : "/accounting/deposits" ,
2026-02-09 15:05:03 +09:00
"visible" : [
"입금관리" ,
"총 입금"
]
2026-01-30 10:50:38 +09:00
} ,
"verification" : [
"회계관리 메뉴가 펼쳐졌는지 확인" ,
"입금관리 서브메뉴 클릭 성공" ,
"404 에러 없이 페이지 로드 완료"
]
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 3 ,
2026-01-30 10:50:38 +09:00
"name" : "목록 페이지 구조 확인" ,
"description" : "테이블 및 필터 요소 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
2026-01-30 10:50:38 +09:00
"expect" : {
2026-02-09 15:05:03 +09:00
"visible" : [
"입금일" ,
"입금계좌" ,
"입금자명" ,
"입금금액" ,
"거래처" ,
"적요" ,
"입금유형"
] ,
2026-01-30 10:50:38 +09:00
"elements" : {
2026-02-09 15:05:03 +09:00
"statisticsCards" : [
"총 입금" ,
"당월 입금" ,
"거래처 미설정" ,
"입금유형 미설정"
] ,
"filters" : [
"계정과목명" ,
"저장" ,
"새로고침"
] ,
2026-01-30 10:50:38 +09:00
"pagination" : true
}
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 4 ,
2026-01-30 10:50:38 +09:00
"name" : "계정과목명 드롭다운 옵션 확인" ,
"description" : "계정과목명 일괄변경 드롭다운 옵션 검증" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
fix: 회계 관련 E2E 시나리오 셀렉터 수정
- deposit-management: '계정과목명 드롭다운' → '계정과목명', '거래처 드롭다운' → '거래처', '입금 유형 드롭다운' → '입금 유형'
- withdrawal-management: 동일 패턴 수정 (계정과목명, 거래처, 출금 유형)
- accounting-receivable: :has-text() 셀렉터를 plain text로 변환 (목록, 엑셀, 미수금액, 연체)
- accounting-bill: :has-text() 셀렉터를 plain text로 변환 (등록, 저장, 수정, 삭제, 확인), 중복 CSS 셀렉터 단순화
- settings-bank-account: :has-text() 셀렉터를 plain text로 변환 (등록)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:57:34 +09:00
"target" : "계정과목명" ,
2026-01-30 10:50:38 +09:00
"expect" : {
2026-02-09 15:05:03 +09:00
"options" : [
"미설정" ,
"매출대금" ,
"선수금" ,
"가수금" ,
"임대수익" ,
"이자수익" ,
"보증금 반환" ,
"차입금" ,
"자본금" ,
"부가세 환급" ,
"기타"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 5 ,
2026-01-30 10:50:38 +09:00
"name" : "체크박스 선택 후 계정과목명 일괄변경" ,
"description" : "테이블 행 선택 후 계정과목명 일괄변경 저장" ,
2026-02-28 17:21:01 +09:00
"action" : "evaluate" ,
"script" : "(async()=>{const cb=document.querySelector('table tbody tr input[type=\"checkbox\"]');if(cb){cb.click();await new Promise(r=>setTimeout(r,500));}const dd=Array.from(document.querySelectorAll('button,select,[role=\"combobox\"]')).find(el=>el.innerText?.includes('계정과목명')||el.getAttribute('aria-label')?.includes('계정과목명'));if(dd){dd.click();await new Promise(r=>setTimeout(r,500));}const opt=Array.from(document.querySelectorAll('[role=\"option\"],li,button')).find(el=>el.innerText?.trim()==='매출대금');if(opt){opt.click();await new Promise(r=>setTimeout(r,500));}const saveBtn=Array.from(document.querySelectorAll('button')).find(b=>b.innerText?.trim()==='저장');if(saveBtn){saveBtn.click();await new Promise(r=>setTimeout(r,1000));}return 'batch update attempted';})()" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"dialog" : "확인 다이얼로그 표시" ,
"toast" : "변경 완료 메시지"
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 6 ,
2026-02-28 17:21:01 +09:00
"name" : "필수 검증: 계정과목명 변경 데이터 반영 확인" ,
2026-01-30 10:50:38 +09:00
"note" : "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 변경 확인 필수!" ,
"description" : "저장 후 테이블에서 변경된 입금유형 값 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"tableCell" : {
"row" : 1 ,
"column" : "입금유형" ,
"value" : "매출대금"
}
} ,
"knownBugReference" : "BUG-SALES-20260115-001 (매출관리 동일 버그 확인 필요)"
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 7 ,
2026-01-30 10:50:38 +09:00
"name" : "입금 상세 페이지 이동" ,
"description" : "테이블 행 클릭하여 상세 페이지로 이동" ,
2026-02-28 17:21:01 +09:00
"action" : "click_first_row" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"url" : "/accounting/deposits/{id}" ,
2026-02-09 15:05:03 +09:00
"visible" : [
"입금 상세" ,
"기본 정보" ,
"목록" ,
"삭제" ,
"수정"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 8 ,
2026-01-30 10:50:38 +09:00
"name" : "상세 페이지 읽기 모드 필드 확인" ,
"description" : "수정 전 필드들이 비활성화 상태인지 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"fields" : [
2026-02-09 15:05:03 +09:00
{
"name" : "입금일" ,
"disabled" : true
} ,
{
"name" : "입금계좌" ,
"disabled" : true
} ,
{
"name" : "입금자명" ,
"disabled" : true
} ,
{
"name" : "입금금액" ,
"disabled" : true
} ,
{
"name" : "적요" ,
"disabled" : true
} ,
{
"name" : "거래처" ,
"disabled" : true
} ,
{
"name" : "입금 유형" ,
"disabled" : true
}
2026-01-30 10:50:38 +09:00
]
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 9 ,
2026-01-30 10:50:38 +09:00
"name" : "수정 모드 전환" ,
"description" : "수정 버튼 클릭하여 편집 모드로 전환" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "수정" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"url" : "/accounting/deposits/{id}?mode=edit" ,
2026-02-09 15:05:03 +09:00
"visible" : [
"입금 수정" ,
"취소" ,
"저장"
] ,
"notVisible" : [
"목록" ,
"삭제" ,
"수정"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 10 ,
2026-01-30 10:50:38 +09:00
"name" : "수정 모드 필드 활성화 검증" ,
"description" : "수정 가능한 필드와 불가능한 필드 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"fields" : [
2026-02-09 15:05:03 +09:00
{
"name" : "입금일" ,
"disabled" : true ,
"note" : "은행데이터 - 수정 불가"
} ,
{
"name" : "입금계좌" ,
"disabled" : true ,
"note" : "은행데이터 - 수정 불가"
} ,
{
"name" : "입금자명" ,
"disabled" : true ,
"note" : "은행데이터 - 수정 불가"
} ,
{
"name" : "입금금액" ,
"disabled" : true ,
"note" : "은행데이터 - 수정 불가"
} ,
{
"name" : "적요" ,
"disabled" : false ,
"editable" : true
} ,
{
"name" : "거래처" ,
"disabled" : false ,
"type" : "combobox" ,
"editable" : true
} ,
{
"name" : "입금 유형" ,
"disabled" : false ,
"type" : "combobox" ,
"editable" : true
}
2026-01-30 10:50:38 +09:00
]
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 11 ,
2026-01-30 10:50:38 +09:00
"name" : "거래처 드롭다운 옵션 확인" ,
"description" : "거래처 선택 드롭다운 옵션 검증" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
fix: 회계 관련 E2E 시나리오 셀렉터 수정
- deposit-management: '계정과목명 드롭다운' → '계정과목명', '거래처 드롭다운' → '거래처', '입금 유형 드롭다운' → '입금 유형'
- withdrawal-management: 동일 패턴 수정 (계정과목명, 거래처, 출금 유형)
- accounting-receivable: :has-text() 셀렉터를 plain text로 변환 (목록, 엑셀, 미수금액, 연체)
- accounting-bill: :has-text() 셀렉터를 plain text로 변환 (등록, 저장, 수정, 삭제, 확인), 중복 CSS 셀렉터 단순화
- settings-bank-account: :has-text() 셀렉터를 plain text로 변환 (등록)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:57:34 +09:00
"target" : "거래처" ,
2026-01-30 10:50:38 +09:00
"expect" : {
2026-02-09 15:05:03 +09:00
"options" : [
"거래처테스트" ,
"아크더레드" ,
"코브라브릿지" ,
"가우스전자" ,
"아크아크"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 12 ,
2026-01-30 10:50:38 +09:00
"name" : "입금 유형 드롭다운 옵션 확인" ,
"description" : "입금 유형 선택 드롭다운 옵션 검증" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
fix: 회계 관련 E2E 시나리오 셀렉터 수정
- deposit-management: '계정과목명 드롭다운' → '계정과목명', '거래처 드롭다운' → '거래처', '입금 유형 드롭다운' → '입금 유형'
- withdrawal-management: 동일 패턴 수정 (계정과목명, 거래처, 출금 유형)
- accounting-receivable: :has-text() 셀렉터를 plain text로 변환 (목록, 엑셀, 미수금액, 연체)
- accounting-bill: :has-text() 셀렉터를 plain text로 변환 (등록, 저장, 수정, 삭제, 확인), 중복 CSS 셀렉터 단순화
- settings-bank-account: :has-text() 셀렉터를 plain text로 변환 (등록)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:57:34 +09:00
"target" : "입금 유형" ,
2026-01-30 10:50:38 +09:00
"expect" : {
2026-02-09 15:05:03 +09:00
"options" : [
"미설정" ,
"매출대금" ,
"선수금" ,
"가수금" ,
"임대수익" ,
"이자수익" ,
"보증금 반환" ,
"차입금" ,
"자본금" ,
"부가세 환급" ,
"기타"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 13 ,
2026-01-30 10:50:38 +09:00
"name" : "수정 데이터 입력" ,
"description" : "수정 가능한 필드에 테스트 데이터 입력" ,
2026-02-28 17:21:01 +09:00
"action" : "evaluate" ,
"script" : "(async()=>{const inputs=document.querySelectorAll('input,textarea');const memo=Array.from(inputs).find(el=>el.getAttribute('name')?.includes('적요')||el.getAttribute('placeholder')?.includes('적요')||el.closest('[class*=\"memo\"],label')?.innerText?.includes('적요'));if(memo){memo.focus();memo.value='';memo.dispatchEvent(new Event('input',{bubbles:true}));memo.value='테스트 적요 수정';memo.dispatchEvent(new Event('input',{bubbles:true}));memo.dispatchEvent(new Event('change',{bubbles:true}));await new Promise(r=>setTimeout(r,500));}const vendorDD=Array.from(document.querySelectorAll('button,[role=\"combobox\"]')).find(el=>el.innerText?.includes('거래처')||el.getAttribute('aria-label')?.includes('거래처'));if(vendorDD){vendorDD.click();await new Promise(r=>setTimeout(r,500));const vendorOpt=Array.from(document.querySelectorAll('[role=\"option\"],li')).find(el=>el.innerText?.trim()==='거래처테스트');if(vendorOpt){vendorOpt.click();await new Promise(r=>setTimeout(r,500));}}const typeDD=Array.from(document.querySelectorAll('button,[role=\"combobox\"]')).find(el=>el.innerText?.includes('입금 유형')||el.getAttribute('aria-label')?.includes('입금'));if(typeDD){typeDD.click();await new Promise(r=>setTimeout(r,500));const typeOpt=Array.from(document.querySelectorAll('[role=\"option\"],li')).find(el=>el.innerText?.trim()==='매출대금');if(typeOpt){typeOpt.click();await new Promise(r=>setTimeout(r,500));}}return 'form filled';})()"
2026-01-30 10:50:38 +09:00
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 14 ,
2026-01-30 10:50:38 +09:00
"name" : "저장 및 결과 확인" ,
"description" : "저장 버튼 클릭 후 데이터 반영 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "저장" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"toast" : "저장 완료 메시지" ,
"url" : "/accounting/deposits/{id}" ,
"mode" : "view"
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 15 ,
2026-02-28 17:21:01 +09:00
"name" : "필수 검증: 수정 데이터 반영 확인" ,
2026-01-30 10:50:38 +09:00
"note" : "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 변경 확인 필수!" ,
"description" : "저장 후 상세 페이지에서 변경된 값 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_detail" ,
"checks" : [
"적요: 테스트 적요 수정" ,
"거래처: 거래처테스트" ,
"입금 유형: 매출대금"
] ,
2026-01-30 10:50:38 +09:00
"expect" : {
"fields" : [
2026-02-09 15:05:03 +09:00
{
"name" : "적요" ,
"value" : "테스트 적요 수정"
} ,
{
"name" : "거래처" ,
"value" : "거래처테스트"
} ,
{
"name" : "입금 유형" ,
"value" : "매출대금"
}
2026-01-30 10:50:38 +09:00
]
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 16 ,
2026-01-30 10:50:38 +09:00
"name" : "취소 버튼 동작 확인" ,
"description" : "수정 모드에서 취소 버튼 동작 검증" ,
2026-02-28 17:21:01 +09:00
"action" : "evaluate" ,
"script" : "(async()=>{const editBtn=Array.from(document.querySelectorAll('button')).find(b=>b.innerText?.trim()==='수정');if(editBtn){editBtn.click();await new Promise(r=>setTimeout(r,1000));}const cancelBtn=Array.from(document.querySelectorAll('button')).find(b=>b.innerText?.trim()==='취소');if(cancelBtn){cancelBtn.click();await new Promise(r=>setTimeout(r,1000));}return 'cancel tested';})()" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"url" : "/accounting/deposits/{id}" ,
"mode" : "view" ,
2026-02-09 15:05:03 +09:00
"visible" : [
"입금 상세" ,
"목록" ,
"삭제" ,
"수정"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 17 ,
2026-01-30 10:50:38 +09:00
"name" : "목록 버튼 동작 확인" ,
"description" : "목록 버튼 클릭하여 목록 페이지로 이동" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "목록" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"url" : "/accounting/deposits" ,
2026-02-09 15:05:03 +09:00
"visible" : [
"입금관리" ,
"총 입금"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 18 ,
2026-01-30 10:50:38 +09:00
"name" : "필터 드롭다운 검증" ,
"description" : "목록 페이지 필터 드롭다운 옵션 확인" ,
"note" : "3개의 필터 드롭다운 존재 (거래처, 입금유형, 정렬)" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"filters" : [
2026-02-09 15:05:03 +09:00
{
"name" : "거래처 필터" ,
"default" : "전체"
} ,
{
"name" : "입금유형 필터" ,
"default" : "전체"
} ,
{
"name" : "정렬" ,
"default" : "최신순" ,
"options" : [
"최신순" ,
"등록순" ,
"금액 높은순" ,
"금액 낮은순"
]
}
2026-01-30 10:50:38 +09:00
]
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 19 ,
2026-01-30 10:50:38 +09:00
"name" : "날짜 필터 검증" ,
"description" : "날짜 필터 버튼 동작 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "당해년도" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"dateRange" : {
"start" : "2026-01-01" ,
"end" : "2026-12-31"
}
}
} ,
{
2026-02-09 15:05:03 +09:00
"id" : 20 ,
2026-01-30 10:50:38 +09:00
"name" : "페이지네이션 동작 확인" ,
"description" : "페이지네이션 버튼 동작 검증" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "다음" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"pagination" : {
"totalItems" : 60 ,
"itemsPerPage" : 20 ,
"currentPage" : 1 ,
"totalPages" : 3
}
} ,
"expectAfterAction" : {
"currentPage" : 2 ,
"displayText" : "전체 60개 중 21-40개 표시"
}
2026-02-09 15:05:03 +09:00
} ,
{
"id" : 21 ,
"name" : "콘솔 에러 확인" ,
"action" : "verify_element" ,
"target" : "body"
2026-01-30 10:50:38 +09:00
}
] ,
"deleteTest" : {
"note" : "삭제 테스트 - 이전에 스킵되었으나 CRUD 완전성을 위해 추가" ,
"steps" : [
{
"id" : "step-delete-1" ,
"name" : "삭제 버튼 클릭" ,
"description" : "상세 페이지에서 삭제 버튼 클릭" ,
2026-02-28 17:21:01 +09:00
"action" : "click_if_exists" ,
"target" : "삭제" ,
2026-01-30 10:50:38 +09:00
"expect" : {
"confirmDialog" : true ,
2026-02-09 15:05:03 +09:00
"dialogText" : [
"삭제" ,
"하시겠습니까"
]
2026-01-30 10:50:38 +09:00
}
} ,
{
"id" : "step-delete-2" ,
"name" : "삭제 확인" ,
"description" : "삭제 확인 다이얼로그에서 확인 클릭" ,
2026-02-28 17:21:01 +09:00
"action" : "click_dialog_confirm" ,
"target" : "확인" ,
2026-01-30 10:50:38 +09:00
"waitFor" : {
"type" : "navigation" ,
"url" : "/accounting/deposits" ,
"timeout" : 5000
} ,
"expect" : {
2026-02-09 15:05:03 +09:00
"toast" : [
"삭제" ,
"완료" ,
"성공"
] ,
2026-01-30 10:50:38 +09:00
"url" : "/accounting/deposits"
}
} ,
{
"id" : "step-delete-3" ,
2026-02-28 17:21:01 +09:00
"name" : "필수 검증: 삭제 데이터 반영 확인" ,
2026-01-30 10:50:38 +09:00
"note" : "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 삭제 확인 필수!" ,
"description" : "목록에서 삭제된 입금 내역이 없어졌는지 확인" ,
2026-02-28 17:21:01 +09:00
"action" : "verify_element" ,
"target" : "body" ,
"expect" : {
2026-01-30 10:50:38 +09:00
"tableNotContains" : "테스트 적요 수정"
}
}
]
} ,
"knownBugs" : [
{
"id" : "BUG-SALES-20260115-001" ,
"description" : "계정과목명 일괄변경 시 토스트 성공 표시되나 실제 데이터 미변경 (매출관리)" ,
2026-02-09 15:05:03 +09:00
"relatedSteps" : [
"step-4-1"
] ,
2026-01-30 10:50:38 +09:00
"note" : "입금관리에서도 동일한 버그가 존재할 수 있으므로 step-4-1에서 검증 필수"
}
] ,
"testData" : {
"sampleDeposit" : {
"date" : "2025-12-28" ,
"account" : "운영계좌" ,
"depositor" : "CJ대한통운" ,
"amount" : "8,209,677" ,
"vendor" : "CJ대한통운" ,
"description" : "CJ대한통운 입금" ,
"depositType" : "미설정"
} ,
"modifiedData" : {
"description" : "테스트 적요 수정" ,
"vendor" : "거래처테스트" ,
"depositType" : "매출대금"
}
} ,
"pageStructure" : {
"listPage" : {
"url" : "/accounting/deposits" ,
"title" : "입금관리" ,
2026-02-09 15:05:03 +09:00
"statistics" : [
"총 입금" ,
"당월 입금" ,
"거래처 미설정" ,
"입금유형 미설정"
] ,
"tableColumns" : [
"checkbox" ,
"입금일" ,
"입금계좌" ,
"입금자명" ,
"입금금액" ,
"거래처" ,
"적요" ,
"입금유형" ,
"action"
] ,
2026-01-30 10:50:38 +09:00
"batchUpdate" : {
"label" : "계정과목명" ,
"saveButton" : "저장"
} ,
2026-02-09 15:05:03 +09:00
"filters" : [
"거래처" ,
"입금유형" ,
"정렬"
] ,
"dateFilters" : [
"당해년도" ,
"전전월" ,
"전월" ,
"당월" ,
"어제" ,
"오늘"
]
2026-01-30 10:50:38 +09:00
} ,
"detailPage" : {
"url" : "/accounting/deposits/{id}" ,
"title" : "입금 상세" ,
2026-02-09 15:05:03 +09:00
"buttons" : [
"목록" ,
"삭제" ,
"수정"
] ,
2026-01-30 10:50:38 +09:00
"fields" : {
2026-02-09 15:05:03 +09:00
"readOnly" : [
"입금일" ,
"입금계좌" ,
"입금자명" ,
"입금금액"
] ,
"editable" : [
"적요" ,
"거래처" ,
"입금 유형"
]
2026-01-30 10:50:38 +09:00
}
} ,
"editPage" : {
"url" : "/accounting/deposits/{id}?mode=edit" ,
"title" : "입금 수정" ,
2026-02-09 15:05:03 +09:00
"buttons" : [
"취소" ,
"저장"
]
2026-01-30 10:50:38 +09:00
}
} ,
"dropdownOptions" : {
"accountSubject" : {
"label" : "계정과목명" ,
2026-02-09 15:05:03 +09:00
"options" : [
"미설정" ,
"매출대금" ,
"선수금" ,
"가수금" ,
"임대수익" ,
"이자수익" ,
"보증금 반환" ,
"차입금" ,
"자본금" ,
"부가세 환급" ,
"기타"
]
2026-01-30 10:50:38 +09:00
} ,
"depositType" : {
"label" : "입금 유형" ,
2026-02-09 15:05:03 +09:00
"options" : [
"미설정" ,
"매출대금" ,
"선수금" ,
"가수금" ,
"임대수익" ,
"이자수익" ,
"보증금 반환" ,
"차입금" ,
"자본금" ,
"부가세 환급" ,
"기타"
]
2026-01-30 10:50:38 +09:00
} ,
"vendor" : {
"label" : "거래처" ,
2026-02-09 15:05:03 +09:00
"options" : [
"거래처테스트" ,
"아크더레드" ,
"코브라브릿지" ,
"가우스전자" ,
"아크아크"
]
2026-01-30 10:50:38 +09:00
} ,
"sortOrder" : {
"label" : "정렬" ,
2026-02-09 15:05:03 +09:00
"options" : [
"최신순" ,
"등록순" ,
"금액 높은순" ,
"금액 낮은순"
]
2026-01-30 10:50:38 +09:00
}
} ,
"assertions" : [
{
"type" : "url" ,
"expected" : "/accounting/deposits" ,
"message" : "목록 페이지 URL 확인"
} ,
{
"type" : "text" ,
"target" : "body" ,
"expected" : "입금관리" ,
"message" : "페이지 타이틀 확인"
}
]
2026-02-28 17:21:01 +09:00
}