import { test, expect } from '@playwright/test'; /** * E2E 测试需要: * - 后端运行在 :9090(cd backend && mvn spring-boot:run) * - 前端 dev server :5173 由 playwright.config webServer 自动起 * - `npx playwright install chromium` 完成浏览器 binary 下载 * * 本 plan Task 10 当前 .fixme(),FE 完成 review 时纳入 nice-to-have; * 由开发者手动 `npx playwright install && npm run e2e` 跑一次完整链路验收。 */ test.fixme('successLogin_redirectsToUsers', async ({ page }) => { await page.goto('/login'); await page.getByPlaceholder('请输入你的用户名').fill('alice'); await page.getByPlaceholder('请输入你的密码').fill('Password1!'); await page.getByTestId('login-submit').click(); await expect(page).toHaveURL(/.*\/users/); }); test.fixme('badPassword_showsError', async ({ page }) => { await page.goto('/login'); await page.getByPlaceholder('请输入你的用户名').fill('alice'); await page.getByPlaceholder('请输入你的密码').fill('WRONG'); await page.getByTestId('login-submit').click(); await expect(page.getByText('用户名或密码错误')).toBeVisible(); }); test.fixme('unknownCompany_showsError', async ({ page }) => { await page.goto('/login'); // 通过 evaluate 把 form value 改成不存在的 companyCode await page.evaluate(() => { // 实际 UI 操作:通过 AntD Select 选不存在的项;这里 spec 留 placeholder }); await page.getByPlaceholder('请输入你的用户名').fill('alice'); await page.getByPlaceholder('请输入你的密码').fill('Password1!'); await page.getByTestId('login-submit').click(); await expect(page.getByText('公司不存在或已删除')).toBeVisible(); });