fix: deprecated window.__API_LOGS__ → window.__E2E__.getApiLogs() 패턴 수정 (17개 파일)

- approval-box, edge-rapid-click-acc-sales, full-crud-* (4개)
- hr-salary-long-term-care, production-work-order
- quality-inspection, quality-performance-report
- reload-persist-acc-deposit, sales-management
- sales-order-bulk-delete, sales-order, sales-quotation
- system-dashboard, vendor-management
- 전체 209/209 ALL PASS 검증 완료

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-03-04 11:42:23 +09:00
parent ed9e6270cc
commit f42cf4ab7d
17 changed files with 43 additions and 43 deletions

View File

@@ -24,7 +24,7 @@
"id": 2,
"name": "[게시판 > 자유게시판] ts 초기화 + sessionStorage 연동",
"action": "evaluate",
"script": "(()=>{try{sessionStorage.removeItem('__E2E_TS__');}catch(e){}delete window.__E2E_TS__;window.__API_LOGS__=window.__API_LOGS__||[];return JSON.stringify({ok:true,cleared:true});})()",
"script": "(()=>{try{sessionStorage.removeItem('__E2E_TS__');}catch(e){}delete window.__E2E_TS__;return JSON.stringify({ok:true,cleared:true});})()",
"timeout": 3000
},
{
@@ -45,7 +45,7 @@
"id": 5,
"name": "[게시판 > 자유게시판] [CREATE] API POST 검증",
"action": "evaluate",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_POST_CHECK'};const logs=window.__API_LOGS__||[];const postLogs=logs.filter(l=>l.method==='POST'&&l.status>=200&&l.status<300);R.postCount=postLogs.length;R.found=postLogs.length>0;if(postLogs.length>0){const last=postLogs[postLogs.length-1];R.lastPost={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'POST API '+R.lastPost.status+' ('+R.lastPost.duration+'ms)':'POST API 미감지 (모니터 타이밍 이슈 가능)';return JSON.stringify(R);})()",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_POST_CHECK'};const logs=(window.__E2E__?window.__E2E__.getApiLogs().logs:[]);const postLogs=logs.filter(l=>l.method==='POST'&&l.status>=200&&l.status<300);R.postCount=postLogs.length;R.found=postLogs.length>0;if(postLogs.length>0){const last=postLogs[postLogs.length-1];R.lastPost={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'POST API '+R.lastPost.status+' ('+R.lastPost.duration+'ms)':'POST API 미감지 (모니터 타이밍 이슈 가능)';return JSON.stringify(R);})()",
"timeout": 10000,
"phase": "VERIFY"
},
@@ -119,7 +119,7 @@
"id": 15,
"name": "[게시판 > 자유게시판] [UPDATE] API PUT 검증",
"action": "evaluate",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_PUT_CHECK'};const logs=window.__API_LOGS__||[];const putLogs=logs.filter(l=>(l.method==='PUT'||l.method==='PATCH')&&l.status>=200&&l.status<300);R.putCount=putLogs.length;R.found=putLogs.length>0;if(putLogs.length>0){const last=putLogs[putLogs.length-1];R.lastPut={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'PUT/PATCH API '+R.lastPut.status+' ('+R.lastPut.duration+'ms)':'PUT/PATCH API 미감지';return JSON.stringify(R);})()",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_PUT_CHECK'};const logs=(window.__E2E__?window.__E2E__.getApiLogs().logs:[]);const putLogs=logs.filter(l=>(l.method==='PUT'||l.method==='PATCH')&&l.status>=200&&l.status<300);R.putCount=putLogs.length;R.found=putLogs.length>0;if(putLogs.length>0){const last=putLogs[putLogs.length-1];R.lastPut={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'PUT/PATCH API '+R.lastPut.status+' ('+R.lastPut.duration+'ms)':'PUT/PATCH API 미감지';return JSON.stringify(R);})()",
"timeout": 10000,
"phase": "VERIFY"
},
@@ -194,7 +194,7 @@
"id": 25,
"name": "[게시판 > 자유게시판] [DELETE] API DELETE 검증",
"action": "evaluate",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_DELETE_CHECK'};const logs=window.__API_LOGS__||[];const delLogs=logs.filter(l=>l.method==='DELETE'&&l.status>=200&&l.status<300);R.delCount=delLogs.length;R.found=delLogs.length>0;if(delLogs.length>0){const last=delLogs[delLogs.length-1];R.lastDelete={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'DELETE API '+R.lastDelete.status+' ('+R.lastDelete.duration+'ms)':'DELETE API 미감지';return JSON.stringify(R);})()",
"script": "(async()=>{const w=ms=>new Promise(r=>setTimeout(r,ms));await w(500);const R={phase:'API_DELETE_CHECK'};const logs=(window.__E2E__?window.__E2E__.getApiLogs().logs:[]);const delLogs=logs.filter(l=>l.method==='DELETE'&&l.status>=200&&l.status<300);R.delCount=delLogs.length;R.found=delLogs.length>0;if(delLogs.length>0){const last=delLogs[delLogs.length-1];R.lastDelete={url:last.url?.substring(0,80),status:last.status,duration:last.duration};}R.ok=true;R.info=R.found?'DELETE API '+R.lastDelete.status+' ('+R.lastDelete.duration+'ms)':'DELETE API 미감지';return JSON.stringify(R);})()",
"timeout": 10000,
"phase": "VERIFY"
},
@@ -248,7 +248,7 @@
"id": 33,
"name": "[게시판 > 자유게시판] [SUMMARY] API 호출 통계",
"action": "evaluate",
"script": "(async()=>{const R={phase:'API_SUMMARY'};const logs=window.__API_LOGS__||[];R.totalCalls=logs.length;R.successCalls=logs.filter(l=>l.status>=200&&l.status<300).length;R.failedCalls=logs.filter(l=>l.status>=400).length;R.avgResponseTime=logs.length>0?Math.round(logs.reduce((s,l)=>s+(l.duration||0),0)/logs.length):0;R.slowCalls=logs.filter(l=>(l.duration||0)>2000).length;R.methods={GET:logs.filter(l=>l.method==='GET').length,POST:logs.filter(l=>l.method==='POST').length,PUT:logs.filter(l=>l.method==='PUT').length,PATCH:logs.filter(l=>l.method==='PATCH').length,DELETE:logs.filter(l=>l.method==='DELETE').length};R.ok=true;R.info='API: '+R.totalCalls+'건 (성공 '+R.successCalls+', 실패 '+R.failedCalls+', 평균 '+R.avgResponseTime+'ms, 느린호출 '+R.slowCalls+'건)';return JSON.stringify(R);})()",
"script": "(async()=>{const R={phase:'API_SUMMARY'};const logs=(window.__E2E__?window.__E2E__.getApiLogs().logs:[]);R.totalCalls=logs.length;R.successCalls=logs.filter(l=>l.status>=200&&l.status<300).length;R.failedCalls=logs.filter(l=>l.status>=400).length;R.avgResponseTime=logs.length>0?Math.round(logs.reduce((s,l)=>s+(l.duration||0),0)/logs.length):0;R.slowCalls=logs.filter(l=>(l.duration||0)>2000).length;R.methods={GET:logs.filter(l=>l.method==='GET').length,POST:logs.filter(l=>l.method==='POST').length,PUT:logs.filter(l=>l.method==='PUT').length,PATCH:logs.filter(l=>l.method==='PATCH').length,DELETE:logs.filter(l=>l.method==='DELETE').length};R.ok=true;R.info='API: '+R.totalCalls+'건 (성공 '+R.successCalls+', 실패 '+R.failedCalls+', 평균 '+R.avgResponseTime+'ms, 느린호출 '+R.slowCalls+'건)';return JSON.stringify(R);})()",
"timeout": 10000,
"phase": "VERIFY"
}