import {test,expect} from '@playwright/test';import fs from 'node:fs';import {getRuntimeQaEnv} from '../../../../src/qa/env';
test.use({channel:'chrome',trace:'on',video:'off'});
test('[dev] / [ADMIN] role / Q07 4월30일 양방향 거래의 원본 정산대상 부재 범위',async({browser},info)=>{test.setTimeout(60000);const env=getRuntimeQaEnv('dev','admin','QA4373_ADMIN'),ctx=await browser.newContext({storageState:env.storageState,viewport:{width:2200,height:1100}}),page=await ctx.newPage();page.setDefaultTimeout(10000);await page.route('**/api/**',async route=>{if(['POST','PUT','PATCH','DELETE'].includes(route.request().method()))return route.abort('blockedbyclient');return route.continue();});try{await page.goto(`${env.baseUrl}/master-accounting/disbursement-accounts?tenantId=redacted}`);const a=page.locator('[data-route-keep-alive-active=true]');await a.getByRole('button',{name:'이체 ▾',exact:true}).click();await page.getByText('법인계좌 이체',{exact:true}).click();const form=page.getByRole('dialog');await form.getByRole('combobox',{name:'지급계좌를 선택하세요',exact:true}).fill('테스트 지급계좌');await page.getByRole('option').filter({hasText:'테스트 지급계좌'}).first().click();await form.getByRole('button',{name:'거래내역',exact:true}).click();const panel=form.locator('div.absolute.right-0.top-0').filter({has:page.getByRole('button',{name:'엑셀 다운로드',exact:true})});const wait=page.waitForResponse(r=>r.request().method()==='GET'&&new URL(r.url()).pathname.endsWith('/disbursement-accounts/148/corporation-accounts/settlements')&&new URL(r.url()).searchParams.get('date')==='2026-05-01');await panel.locator('input[type=date]').fill('2026-05-01');const response=await wait;expect(response.status()).toBe(200);const raw=await response.json();fs.mkdirSync('qa-results/issues/4403/dev/private/ADMIN/april-precondition',{recursive:true});fs.writeFileSync('qa-results/issues/4403/dev/private/ADMIN/april-precondition/get.json',JSON.stringify(raw,null,2));await info.attach('april-precondition.json',{body:JSON.stringify({sourceTids:['T260430889911','T260430890196'],tradeDate:'2026-04-30',aggregationDate:'2026-05-01',originalSettlementTargets:0,reason:'기존 원거래 두 건에 연결된 정산대상 데이터가 DB에 없어 대상 계좌·분배금 기대값을 산출할 수 없음. 거래내역·검색·엑셀 검증과 구분. 추가 결제나 정산대상 생성 안 함.',readStatus:response.status(),syncExecuted:false}),contentType:'application/json'});await info.attach('april-panel.png',{body:await panel.screenshot(),contentType:'image/png'});test.skip(true,'BLOCKED: T260430889911·T260430890196의 원본 정산대상이 없어 Q07 해당 두 거래 계좌·분배금 검증 불가');}finally{await page.unrouteAll({behavior:'ignoreErrors'});await ctx.close();}});
