import { expect, test } from '@playwright/test' test('核心业务流可通过真实表单操作', async ({ page }) => { await page.goto('/login') await page.getByTestId('username').fill('sys_admin') await page.getByTestId('password').fill('ChangeMe123!') await page.getByTestId('login-button').click() await expect(page.getByText('工作台')).toBeVisible() await page.getByText('员工档案').click() await page.getByTestId('new-employee').click() await page.getByTestId('employee-no').fill(`E${Date.now().toString().slice(-6)}`) await page.getByTestId('employee-name').fill('员工自动化') await page.getByTestId('save-employee').click() await expect(page.getByText('员工已保存')).toBeVisible() await page.getByText('招聘管理').click() await page.getByTestId('new-candidate').click() await page.getByTestId('candidate-name').fill('候选人自动化') await page.getByTestId('candidate-email').fill(`candidate${Date.now()}@example.local`) await page.getByTestId('candidate-phone').fill('13900000001') await page.getByTestId('save-candidate').click() await expect(page.getByText('候选人已保存')).toBeVisible() await page.getByText('候选人').click() await page.getByRole('button', { name: '安排面试' }).first().click() await page.getByTestId('submit-interview').click() await expect(page.getByText('面试已安排')).toBeVisible() await page.getByTestId('candidate-more').first().click() await page.getByText('面试结果').click() await page.getByTestId('save-interview-result').click() await expect(page.getByText('面试结果已保存')).toBeVisible() await page.getByTestId('candidate-more').first().click() await page.getByText('发 Offer').click() await expect(page.getByText('Offer 已发放')).toBeVisible() await page.getByTestId('candidate-more').first().click() await page.getByText('接受 Offer').click() await expect(page.getByText('Offer 已接受')).toBeVisible() await page.getByTestId('candidate-more').first().click() await page.getByTestId('convert-onboarding').click() await expect(page.getByText('已转入职')).toBeVisible() await page.getByText('入离职').click() await page.getByRole('button', { name: '编辑清单' }).first().click() await page.getByRole('checkbox', { name: /资料确认/ }).check() await page.getByRole('checkbox', { name: /账号准备/ }).check() await page.getByRole('checkbox', { name: /岗位确认/ }).check() await page.getByRole('button', { name: '保存' }).click() await expect(page.getByText('入职单已保存')).toBeVisible() await page.getByTestId('complete-onboarding').first().click() await page.getByRole('button', { name: '确认' }).click() await expect(page.getByText('入职流程已完成')).toBeVisible() await page.getByText('考勤请假').click() await page.getByTestId('new-leave').click() await page.getByRole('button', { name: '提交' }).click() await expect(page.getByText('请假申请已提交')).toBeVisible() await page.getByTestId('approve-leave').first().click() await expect(page.getByText('请假申请已同意')).toBeVisible() await page.getByText('薪酬工资').click() await page.getByTestId('submit-payroll').click() await expect(page.getByText('核算已提交')).toBeVisible() await page.getByText('绩效管理').click() await page.getByTestId('new-cycle').click() await page.getByRole('button', { name: '保存' }).click() await expect(page.getByText('绩效周期已保存')).toBeVisible() await page.getByText('报表导出').click() await page.getByTestId('export-headcount').click() await expect(page.getByText('导出任务已创建')).toBeVisible() })