diff --git a/src/frontend/e2e/template-navigation.spec.ts b/src/frontend/e2e/template-navigation.spec.ts index a0ff2e7d..da800d9c 100644 --- a/src/frontend/e2e/template-navigation.spec.ts +++ b/src/frontend/e2e/template-navigation.spec.ts @@ -25,7 +25,33 @@ test.describe('Vite SPA 어드민 템플릿 네비게이션 E2E 테스트', () = console.log('✓ E2E 검증 통과: 9대 CRUD/엑셀/OLAP 프로토타입 카드가 100% 정상 활성화되었습니다.'); console.log(`✓ 스크린샷 증빙 파일 생성 완료: ${screenshotPath}`); }); + + // 9대 프로토타입 개별 라우트 전수 딥 스캔 테스트 + const prototypeRoutes = [ + { name: 'FactorParamDetailLayout', path: '/templates/factor-detail', keyword: '팩터' }, + { name: 'AdvancedAgGridMarketLayout', path: '/templates/ag-grid-market', keyword: '괴리율' }, + { name: 'RebalancePipelineLayout', path: '/templates/rebalance-pipeline', keyword: '파이프라인' }, + { name: 'RealDashboardLayout', path: '/templates/real-dashboard', keyword: '즉시방어' }, + { name: 'WaterfallShadowTreeLayout', path: '/templates/waterfall-tree', keyword: 'Waterfall' }, + { name: 'RealMakerCheckerLayout', path: '/templates/maker-checker', keyword: 'Checker' }, + + { name: 'RealRollbackLayout', path: '/templates/real-rollback', keyword: '롤백' }, + { name: 'RealExcelUploadMapper', path: '/templates/excel-upload', keyword: '엑셀' }, + { name: 'RealOlapExportLayout', path: '/templates/olap-export', keyword: '다차원' } + ]; + + for (const route of prototypeRoutes) { + test(`프로토타입 개별 딥 스캔: ${route.name}`, async ({ page }) => { + await page.goto(`http://localhost:5173${route.path}`); + await expect(page.locator('body')).toContainText(route.keyword); + + const shotPath = path.resolve(__dirname, `../../../../antigravity-cli/brain/4ffb3a8c-b0d4-4610-9caa-b043a85a33af/shot_${route.name}.png`); + await page.screenshot({ path: shotPath }); + console.log(`✓ 딥 스캔 증빙 캡처 완료 [${route.name}]: ${shotPath}`); + }); + } }); +