fix: CRUD 시나리오 품질 강화 - DELETE/UPDATE/CREATE 액션 수정 (14파일, 42건)

Phase 1 품질 감사 수정:
- DELETE: verify_element → click + click_dialog_confirm (실제 삭제 실행)
- UPDATE: click_if_exists → fill + value (실제 데이터 수정)
- CREATE: click_if_exists → fill_form (fields 배열 정상 처리)

대상: accounting-*, sales-*, quality-inspection, material-receiving,
      hr-vacation, production-work-*, settings-work-schedule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-11 16:09:31 +09:00
parent 24e5bba1ee
commit 39ce0828e8
14 changed files with 248 additions and 114 deletions

View File

@@ -200,8 +200,9 @@
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 추심 메모 추가", "name": "[UPDATE] 추심 메모 추가",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], textarea[placeholder*='메모']" "target": "textarea[name*='memo'], textarea[placeholder*='메모']",
"value": "E2E_수정_메모"
}, },
{ {
"id": 19, "id": 19,

View File

@@ -123,9 +123,18 @@
"name": "[CREATE] 어음 정보 입력", "name": "[CREATE] 어음 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "어음번호", "value": "E2E_TEST_어음_{timestamp}"}, {
{"name": "금액", "value": "1000000"}, "name": "어음번호",
{"name": "비고", "value": "E2E 자동화 테스트 어음"} "value": "E2E_TEST_어음_{timestamp}"
},
{
"name": "금액",
"value": "1000000"
},
{
"name": "비고",
"value": "E2E 자동화 테스트 어음"
}
], ],
"note": "combobox(구분,거래처,상태) 및 datepicker(발행일,만기일)는 fill_form 미지원" "note": "combobox(구분,거래처,상태) 및 datepicker(발행일,만기일)는 fill_form 미지원"
}, },
@@ -216,8 +225,9 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 어음 메모"
}, },
{ {
"id": 18, "id": 18,
@@ -256,7 +266,7 @@
"id": 21, "id": 21,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -267,8 +277,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/bills/", "api_call": "DELETE /api/v1/bills/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -112,11 +112,26 @@
"name": "[CREATE] 거래처 정보 입력", "name": "[CREATE] 거래처 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "사업자등록번호", "value": "123-45-67890"}, {
{"name": "거래처명", "value": "E2E_TEST_회계거래처_{timestamp}"}, "name": "사업자등록번호",
{"name": "대표자명", "value": "테스트 대표"}, "value": "123-45-67890"
{"name": "업태", "value": "제조업"}, },
{"name": "종목", "value": "철강"} {
"name": "거래처명",
"value": "E2E_TEST_회계거래처_{timestamp}"
},
{
"name": "대표자명",
"value": "테스트 대표"
},
{
"name": "업태",
"value": "제조업"
},
{
"name": "종목",
"value": "철강"
}
] ]
}, },
{ {
@@ -205,8 +220,9 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 거래처 정보 수정", "name": "[UPDATE] 거래처 정보 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='name'], input[placeholder*='거래처명']" "target": "input[name*='name'], input[placeholder*='거래처명']",
"value": "E2E_수정_거래처명"
}, },
{ {
"id": 18, "id": 18,
@@ -233,7 +249,7 @@
"id": 20, "id": 20,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 거래처 삭제", "name": "[DELETE] 거래처 삭제",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제'), button:has-text('제거')", "target": "button:has-text('삭제'), button:has-text('제거')",
"expected": { "expected": {
"confirm_dialog": true "confirm_dialog": true
@@ -243,8 +259,7 @@
"id": 21, "id": 21,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 확인", "name": "[DELETE] 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/accounting/vendors", "api_call": "DELETE /api/v1/accounting/vendors",
"toast": "삭제|제거|완료|성공" "toast": "삭제|제거|완료|성공"

View File

@@ -123,9 +123,18 @@
"name": "[CREATE] 입금 정보 입력", "name": "[CREATE] 입금 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "입금자명", "value": "E2E_TEST_입금자_{timestamp}"}, {
{"name": "입금금액", "value": "100000"}, "name": "입금자명",
{"name": "적요", "value": "E2E 자동화 테스트 입금"} "value": "E2E_TEST_입금자_{timestamp}"
},
{
"name": "입금금액",
"value": "100000"
},
{
"name": "적요",
"value": "E2E 자동화 테스트 입금"
}
], ],
"note": "combobox(입금계좌,거래처,입금유형)는 fill_form 미지원" "note": "combobox(입금계좌,거래처,입금유형)는 fill_form 미지원"
}, },
@@ -215,15 +224,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 금액 수정", "name": "[UPDATE] 금액 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='amount'], input[placeholder*='금액']" "target": "input[name*='amount'], input[placeholder*='금액']",
"value": "150000"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 입금 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -263,7 +274,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -274,8 +285,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/deposits/", "api_call": "DELETE /api/v1/deposits/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -123,9 +123,18 @@
"name": "[CREATE] 출금 정보 입력", "name": "[CREATE] 출금 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "수취인명", "value": "E2E_TEST_수취인_{timestamp}"}, {
{"name": "출금금액", "value": "50000"}, "name": "수취인명",
{"name": "적요", "value": "E2E 자동화 테스트 출금"} "value": "E2E_TEST_수취인_{timestamp}"
},
{
"name": "출금금액",
"value": "50000"
},
{
"name": "적요",
"value": "E2E 자동화 테스트 출금"
}
], ],
"note": "combobox(출금계좌,거래처,출금유형)는 fill_form 미지원" "note": "combobox(출금계좌,거래처,출금유형)는 fill_form 미지원"
}, },
@@ -215,15 +224,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 금액 수정", "name": "[UPDATE] 금액 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='amount'], input[placeholder*='금액']" "target": "input[name*='amount'], input[placeholder*='금액']",
"value": "75000"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 출금 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -263,7 +274,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -274,8 +285,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/withdrawals/", "api_call": "DELETE /api/v1/withdrawals/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -121,7 +121,7 @@
"id": 9, "id": 9,
"phase": "CREATE", "phase": "CREATE",
"name": "[CREATE] 휴가 정보 입력", "name": "[CREATE] 휴가 정보 입력",
"action": "click_if_exists", "action": "fill_form",
"fields": [ "fields": [
{ {
"name": "휴가 유형", "name": "휴가 유형",
@@ -236,8 +236,9 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 사유 수정", "name": "[UPDATE] 사유 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='reason'], input[placeholder*='사유']" "target": "textarea[name*='reason'], input[placeholder*='사유']",
"value": "E2E 수정된 휴가 사유"
}, },
{ {
"id": 18, "id": 18,
@@ -287,8 +288,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 취소 확인", "name": "[DELETE] 필수 검증 #6: 취소 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/vacations/", "api_call": "DELETE /api/v1/vacations/",
"toast": "취소|삭제|완료|성공", "toast": "취소|삭제|완료|성공",

View File

@@ -123,9 +123,18 @@
"name": "[CREATE] 입고 정보 입력", "name": "[CREATE] 입고 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "제조사", "value": "E2E_TEST_제조사"}, {
{"name": "입고수량", "value": "100"}, "name": "제조사",
{"name": "비고", "value": "E2E 자동화 테스트 입고_{timestamp}"} "value": "E2E_TEST_제조사"
},
{
"name": "입고수량",
"value": "100"
},
{
"name": "비고",
"value": "E2E 자동화 테스트 입고_{timestamp}"
}
], ],
"note": "자재번호/원자재로트/품목코드는 자동생성 필드, combobox(상태)는 fill_form 미지원" "note": "자재번호/원자재로트/품목코드는 자동생성 필드, combobox(상태)는 fill_form 미지원"
}, },
@@ -214,15 +223,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 수량 수정", "name": "[UPDATE] 수량 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='quantity'], input[placeholder*='수량']" "target": "input[name*='quantity'], input[placeholder*='수량']",
"value": "150"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 입고 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -262,7 +273,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -273,8 +284,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/receivings/", "api_call": "DELETE /api/v1/receivings/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -122,7 +122,7 @@
"id": 9, "id": 9,
"phase": "CREATE", "phase": "CREATE",
"name": "[CREATE] 작업지시 정보 입력", "name": "[CREATE] 작업지시 정보 입력",
"action": "click_if_exists", "action": "fill_form",
"fields": [ "fields": [
{ {
"name": "작업지시번호", "name": "작업지시번호",
@@ -239,15 +239,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 수량 수정", "name": "[UPDATE] 수량 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='quantity'], input[placeholder*='수량']" "target": "input[name*='quantity'], input[placeholder*='수량']",
"value": "600"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 작업지시 메모"
}, },
{ {
"id": 19, "id": 19,

View File

@@ -213,8 +213,9 @@
"id": 19, "id": 19,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 수량 수정", "name": "[UPDATE] 수량 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='quantity'], input[name*='qty']" "target": "input[name*='quantity'], input[name*='qty']",
"value": "200"
}, },
{ {
"id": 20, "id": 20,

View File

@@ -126,11 +126,26 @@
"name": "[CREATE] 제품검사 정보 입력", "name": "[CREATE] 제품검사 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "현장명", "value": "E2E_TEST_현장_{timestamp}"}, {
{"name": "수주처", "value": "E2E_TEST_수주처"}, "name": "현장명",
{"name": "담당자", "value": "홍길동"}, "value": "E2E_TEST_현장_{timestamp}"
{"name": "연락처", "value": "010-1234-5678"}, },
{"name": "비고", "value": "E2E 자동화 테스트 제품검사"} {
"name": "수주처",
"value": "E2E_TEST_수주처"
},
{
"name": "담당자",
"value": "홍길동"
},
{
"name": "연락처",
"value": "010-1234-5678"
},
{
"name": "비고",
"value": "E2E 자동화 테스트 제품검사"
}
] ]
}, },
{ {
@@ -219,15 +234,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 개소 수정", "name": "[UPDATE] 개소 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='location'], input[placeholder*='개소']" "target": "input[name*='location'], input[placeholder*='개소']",
"value": "테스트구역B"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 제품검사 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -267,7 +284,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -278,8 +295,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/quality/inspections/", "api_call": "DELETE /api/v1/quality/inspections/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -107,11 +107,26 @@
"name": "[CREATE] 거래처 정보 입력", "name": "[CREATE] 거래처 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "사업자등록번호", "value": "987-65-43210"}, {
{"name": "거래처명", "value": "E2E_TEST_판매처_{timestamp}"}, "name": "사업자등록번호",
{"name": "대표자명", "value": "테스트 대표"}, "value": "987-65-43210"
{"name": "업태", "value": "제조업"}, },
{"name": "종목", "value": "철강"} {
"name": "거래처명",
"value": "E2E_TEST_판매처_{timestamp}"
},
{
"name": "대표자명",
"value": "테스트 대표"
},
{
"name": "업태",
"value": "제조업"
},
{
"name": "종목",
"value": "철강"
}
] ]
}, },
{ {
@@ -120,11 +135,26 @@
"name": "[CREATE] 추가 정보 입력", "name": "[CREATE] 추가 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "주소", "value": "서울시 강남구 테스트로 123"}, {
{"name": "전화번호", "value": "02-1234-5678"}, "name": "주소",
{"name": "이메일", "value": "e2e-test@example.com"}, "value": "서울시 강남구 테스트로 123"
{"name": "담당자명", "value": "E2E 담당자"}, },
{"name": "메모", "value": "E2E 자동화 테스트 거래처"} {
"name": "전화번호",
"value": "02-1234-5678"
},
{
"name": "이메일",
"value": "e2e-test@example.com"
},
{
"name": "담당자명",
"value": "E2E 담당자"
},
{
"name": "메모",
"value": "E2E 자동화 테스트 거래처"
}
] ]
}, },
{ {
@@ -201,8 +231,9 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 대표자명 수정", "name": "[UPDATE] 대표자명 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='representative'], input[placeholder*='대표']" "target": "input[name*='representative'], input[placeholder*='대표']",
"value": "E2E_수정_대표"
}, },
{ {
"id": 18, "id": 18,
@@ -229,7 +260,7 @@
"id": 20, "id": 20,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 거래처 삭제", "name": "[DELETE] 거래처 삭제",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제'), button:has-text('제거')", "target": "button:has-text('삭제'), button:has-text('제거')",
"expected": { "expected": {
"confirm_dialog": true "confirm_dialog": true
@@ -239,8 +270,7 @@
"id": 21, "id": 21,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 확인", "name": "[DELETE] 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/sales/clients", "api_call": "DELETE /api/v1/sales/clients",
"toast": "삭제|제거|완료|성공" "toast": "삭제|제거|완료|성공"

View File

@@ -127,11 +127,26 @@
"name": "[CREATE] 수주 정보 입력", "name": "[CREATE] 수주 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "현장명", "value": "E2E_TEST_현장_{timestamp}"}, {
{"name": "담당자", "value": "E2E 담당자"}, "name": "현장명",
{"name": "연락처", "value": "010-1234-5678"}, "value": "E2E_TEST_현장_{timestamp}"
{"name": "수신자", "value": "E2E 수신자"}, },
{"name": "수신처", "value": "E2E_TEST_수신처"} {
"name": "담당자",
"value": "E2E 담당자"
},
{
"name": "연락처",
"value": "010-1234-5678"
},
{
"name": "수신자",
"value": "E2E 수신자"
},
{
"name": "수신처",
"value": "E2E_TEST_수신처"
}
], ],
"note": "combobox(수주처,배송방식,운임비용)는 fill_form 미지원" "note": "combobox(수주처,배송방식,운임비용)는 fill_form 미지원"
}, },
@@ -223,15 +238,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 수량 수정", "name": "[UPDATE] 수량 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='quantity'], input[placeholder*='수량']" "target": "input[name*='quantity'], input[placeholder*='수량']",
"value": "250"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 수주 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -271,7 +288,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -282,8 +299,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/sales-orders/", "api_call": "DELETE /api/v1/sales-orders/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -126,10 +126,22 @@
"name": "[CREATE] 견적 정보 입력", "name": "[CREATE] 견적 정보 입력",
"action": "fill_form", "action": "fill_form",
"fields": [ "fields": [
{"name": "현장명", "value": "E2E_TEST_현장_{timestamp}"}, {
{"name": "담당자", "value": "E2E 담당자"}, "name": "현장명",
{"name": "연락처", "value": "010-1234-5678"}, "value": "E2E_TEST_현장_{timestamp}"
{"name": "비고", "value": "E2E 자동화 테스트 견적"} },
{
"name": "담당자",
"value": "E2E 담당자"
},
{
"name": "연락처",
"value": "010-1234-5678"
},
{
"name": "비고",
"value": "E2E 자동화 테스트 견적"
}
], ],
"note": "combobox(수주처,부가세,제품코드 등)는 fill_form 미지원" "note": "combobox(수주처,부가세,제품코드 등)는 fill_form 미지원"
}, },
@@ -219,15 +231,17 @@
"id": 17, "id": 17,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 수량 수정", "name": "[UPDATE] 수량 수정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='quantity'], input[placeholder*='수량']" "target": "input[name*='quantity'], input[placeholder*='수량']",
"value": "150"
}, },
{ {
"id": 18, "id": 18,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 메모 수정", "name": "[UPDATE] 메모 수정",
"action": "click_if_exists", "action": "fill",
"target": "textarea[name*='memo'], input[placeholder*='메모']" "target": "textarea[name*='memo'], input[placeholder*='메모']",
"value": "E2E 수정된 견적 메모"
}, },
{ {
"id": 19, "id": 19,
@@ -267,7 +281,7 @@
"id": 22, "id": 22,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 삭제 버튼 클릭", "name": "[DELETE] 삭제 버튼 클릭",
"action": "verify_element", "action": "click",
"target": "button:has-text('삭제')", "target": "button:has-text('삭제')",
"expected": { "expected": {
"confirm_dialog": true, "confirm_dialog": true,
@@ -278,8 +292,7 @@
"id": 23, "id": 23,
"phase": "DELETE", "phase": "DELETE",
"name": "[DELETE] 필수 검증 #6: 삭제 확인", "name": "[DELETE] 필수 검증 #6: 삭제 확인",
"action": "verify_element", "action": "click_dialog_confirm",
"target": "button:has-text('삭제'), button:has-text('제거')",
"verify": { "verify": {
"api_call": "DELETE /api/v1/quotations/", "api_call": "DELETE /api/v1/quotations/",
"toast": "삭제|완료|성공", "toast": "삭제|완료|성공",

View File

@@ -115,8 +115,9 @@
"id": 9, "id": 9,
"phase": "UPDATE", "phase": "UPDATE",
"name": "[UPDATE] 휴게 시간 설정", "name": "[UPDATE] 휴게 시간 설정",
"action": "click_if_exists", "action": "fill",
"target": "input[name*='break'], input[placeholder*='휴게']" "target": "input[name*='break'], input[placeholder*='휴게']",
"value": "60"
}, },
{ {
"id": 10, "id": 10,