diff --git a/frontend/tests/e2e/users.spec.ts b/frontend/tests/e2e/users.spec.ts new file mode 100644 index 0000000..9cc8945 --- /dev/null +++ b/frontend/tests/e2e/users.spec.ts @@ -0,0 +1,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` + * - 后端 sys_user 表至少含 admin (SUPER_ADMIN) + alice 两个用户(seeder 或手工 seed) + * + * 本 plan Task 9 当前 .fixme(),FE 完成 review 时纳入手工验收; + * 由开发者手动 unfix + 启 backend + 跑 `npm run e2e`。 + */ + +test.fixme('listUsers_rendersAtLeastSeededUsers', async ({ page }) => { + await page.goto('/login'); + await page.getByPlaceholder('请输入你的用户名').fill('admin'); + await page.getByPlaceholder('请输入你的密码').fill('Password1!'); + await page.getByTestId('login-submit').click(); + + await expect(page).toHaveURL(/.*\/users/); + await expect(page.getByText('alice')).toBeVisible(); + await expect(page.getByText('admin')).toBeVisible(); +}); + +test.fixme('createUser_returnsToListAndShowsNewUser', async ({ page }) => { + await page.goto('/users/new'); + await page.getByLabel('用户名').fill('e2e_newbie'); + await page.getByLabel('用户号').fill('UE2E1'); + await page.getByTestId('form-save').click(); + await expect(page).toHaveURL(/.*\/users$/); + await expect(page.getByText('e2e_newbie')).toBeVisible(); +}); + +test.fixme('editUser_updatesUserCodeSuccessfully', async ({ page }) => { + await page.goto('/users/1'); + await page.getByLabel('用户号').fill('U_E2E_NEW'); + await page.getByTestId('form-save').click(); + await expect(page).toHaveURL(/.*\/users$/); +});