login.spec.ts
1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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();
});