import { test, expect } from "@playwright/test"; test.describe("Backtest", () => { test.beforeEach(async ({ page }) => { // Mock login await page.addInitScript(() => { localStorage.setItem("token", "test-token"); }); }); test("should show backtest page", async ({ page }) => { await page.goto("/backtest"); // Check page title await expect(page.locator("h1")).toContainText("백테스트"); }); test("should show backtest form", async ({ page }) => { await page.goto("/backtest"); // Check for strategy selection await expect( page.locator('select, [role="combobox"], input[type="radio"]').first() ).toBeVisible(); }); test("should show date inputs", async ({ page }) => { await page.goto("/backtest"); // Check for date inputs await expect( page.locator('input[type="date"], input[placeholder*="날짜"]').first() ).toBeVisible(); }); test("should show initial capital input", async ({ page }) => { await page.goto("/backtest"); // Check for capital input await expect( page .locator('input[name*="capital"], input[placeholder*="자본"]') .first() ).toBeVisible(); }); test("should show rebalance period selection", async ({ page }) => { await page.goto("/backtest"); // Check for period selection const periodText = await page.locator( 'text=월별, text=분기별, text=리밸런싱, select' ); await expect(periodText.first()).toBeVisible(); }); test("should have submit button", async ({ page }) => { await page.goto("/backtest"); // Check for submit button await expect( page .locator( 'button[type="submit"], button:has-text("실행"), button:has-text("시작")' ) .first() ).toBeVisible(); }); test("should navigate to backtest result page", async ({ page }) => { // Assuming backtest with ID 1 exists await page.goto("/backtest/1"); // Should show result page or error await expect(page.locator("body")).toBeVisible(); }); });