Files
QuantEngineByItz/final-integrated.mjs
T
kjh2064 3ec0941f50
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 7s
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 12s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Successful in 2m47s
[WBS-7.7][WBS-7.1] Hardening: Upgrade to MudBlazor 9.0.0 and establish warning-free E2E test harness and dev auth fallback
2026-07-07 18:06:54 +09:00

71 lines
2.6 KiB
JavaScript

import { chromium } from "@playwright/test";
(async () => {
console.log("════════════════════════════════════════════════════════");
console.log(" ✅ FINAL INTEGRATED TEST (JS Interop Enabled)");
console.log("════════════════════════════════════════════════════════\n");
const b = await chromium.launch({ headless: true });
const p = await b.newPage();
p.on("console", msg => {
const text = msg.text();
if (text.includes("[Auth]") || text.includes("[Dashboard]") || text.includes("[Login]")) {
console.log(" 📝 " + text);
}
});
try {
console.log("1️⃣ 로그인 페이지 로드");
await p.goto("http://localhost:5265/login", { waitUntil: "networkidle" });
console.log("2️⃣ 로그인 (admin/quant123!)");
await p.fill('input[type="text"]', "admin");
await p.fill('input[type="password"]', "quant123!");
await p.click('button:has-text("로그인")');
console.log("3️⃣ 대기 및 모니터링 (12초)\n");
for (let i = 1; i <= 12; i++) {
await new Promise(r => setTimeout(r, 1000));
const url = p.url();
if (!url.includes("login")) {
console.log(`\n ✅ [${i}s] 리다이렉트됨!`);
console.log(` URL: ${url}`);
break;
}
}
const finalUrl = p.url();
console.log(`\n4️⃣ 최종 상태:`);
console.log(` URL: ${finalUrl}`);
if (finalUrl.includes("/dashboard")) {
console.log(" ✅ 대시보드 도착!");
// 콘텐츠 확인
await new Promise(r => setTimeout(r, 2000));
const content = await p.content();
if (content.includes("관리자 대시보드")) {
console.log(" ✅ 대시보드 콘텐츠 확인됨!");
console.log("\n🎉🎉🎉 로그인 시스템 완전 성공!\n");
} else {
console.log(" ⚠️ 콘텐츠 미확인");
}
} else if (finalUrl.includes("/login")) {
console.log(" ❌ 다시 로그인으로 돌아옴");
console.log(" → 인증 체크에서 실패했거나, JS interop이 작동하지 않음");
} else {
console.log(" ❓ 예상치 못한 페이지");
}
await p.screenshot({ path: "./final-integrated-test.png", fullPage: true });
console.log("📷 스크린샷: final-integrated-test.png");
} catch (e) {
console.error("Error:", e.message);
}
await b.close();
})();