users.spec.ts 1.57 KB
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$/);
});