import { test, expect, Page } from "@playwright/test"; test("TUTOR dashboard - final verification", async ({ page }) => { const errors: string[] = []; page.on("pageerror", (err) => errors.push(err.message)); await page.goto("http://localhost:3000/"); await page.waitForLoadState("networkidle"); const loginRes = await page.request.post("http://localhost:3000/api/auth/login", { data: { email: "testtutora2026@example.com", password: "Test1234!" }, headers: { "Content-Type": "application/json", Accept: "application/json" }, }); const loginData = await loginRes.json(); const token = loginData.access_token; const role = loginData.user?.active_role || "TUTOR"; await page.evaluate( ({ token, role }) => { const payload = { email: "testtutora2026@example.com", fullName: "Test User", name: "Test User", roleKey: role.toLowerCase(), role: role.toLowerCase(), active_role: role, selectedProfessionalRole: role, user: { id: "test-id", email: "testtutora2026@example.com", full_name: "Test User", active_role: role }, }; window.sessionStorage.setItem("nxtgauge_access_token", token); window.sessionStorage.setItem("nxtgauge_frontend_access_token", token); window.localStorage.setItem("nxtgauge_auth_user", JSON.stringify(payload)); window.localStorage.setItem("nxtgauge_user", JSON.stringify(payload)); window.localStorage.setItem("nxtgauge_signup_profile_v1", JSON.stringify(payload)); }, { token, role } ); await page.goto(`http://localhost:3000/dashboard?role=${role}`, { timeout: 10000 }); await page.waitForLoadState("domcontentloaded"); await page.waitForTimeout(5000); await page.screenshot({ path: "test-results/dashboard-tutor-final.png", fullPage: true }); // Check URL console.log("URL:", page.url()); // Check for errors if (errors.length > 0) { console.log("Page errors:", errors.slice(0, 3)); } // Assertions expect(page.url()).toContain("dashboard"); });