|
|
@@ -781,6 +781,92 @@ describe('订单管理集成测试', () => {
|
|
|
expect(screen.getByTestId('batch-add-persons-dialog-title')).toBeInTheDocument();
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ it.skip('应该成功批量添加人员到已存在订单', async () => {
|
|
|
+ renderOrderManagement();
|
|
|
+
|
|
|
+ // 等待数据加载
|
|
|
+ await waitFor(() => {
|
|
|
+ expect(screen.getByTestId('order-row-1')).toBeInTheDocument();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 先打开下拉菜单,然后点击添加人员按钮
|
|
|
+ const menuTrigger = screen.getByTestId('order-menu-trigger-1');
|
|
|
+ expect(menuTrigger).toBeInTheDocument();
|
|
|
+ await userEvent.click(menuTrigger);
|
|
|
+
|
|
|
+ // 等待下拉菜单打开,然后点击添加人员按钮
|
|
|
+ await waitFor(() => {
|
|
|
+ const addPersonsButton = screen.getByTestId('add-persons-button-1');
|
|
|
+ expect(addPersonsButton).toBeInTheDocument();
|
|
|
+ });
|
|
|
+
|
|
|
+ const addPersonsButton = screen.getByTestId('add-persons-button-1');
|
|
|
+ await userEvent.click(addPersonsButton);
|
|
|
+
|
|
|
+ // 验证人员选择器模态框打开
|
|
|
+ await waitFor(() => {
|
|
|
+ expect(screen.getByTestId('batch-add-persons-dialog-title')).toBeInTheDocument();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 点击选择残疾人按钮 - 使用role和文本查找
|
|
|
+ const selectPersonsButtons = screen.getAllByRole('button', { name: /选择残疾人/ });
|
|
|
+ const selectPersonsButton = selectPersonsButtons[0]; // 第一个是PersonSelector中的按钮
|
|
|
+ await userEvent.click(selectPersonsButton);
|
|
|
+
|
|
|
+ // 验证残疾人选择器打开
|
|
|
+ await waitFor(() => {
|
|
|
+ expect(screen.getByTestId('disabled-person-selector-mock')).toBeInTheDocument();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 选择人员
|
|
|
+ const selectPersonButton = screen.getByTestId('select-person-button');
|
|
|
+ await userEvent.click(selectPersonButton);
|
|
|
+
|
|
|
+ // 等待残疾人选择器关闭(选择人员后会自动关闭)
|
|
|
+ await waitFor(() => {
|
|
|
+ expect(screen.queryByTestId('disabled-person-selector-mock')).not.toBeInTheDocument();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 验证人员被添加到列表
|
|
|
+ await waitFor(() => {
|
|
|
+ const personElements = screen.getAllByText('测试残疾人');
|
|
|
+ expect(personElements.length).toBeGreaterThan(0);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 填写人员详情
|
|
|
+ const joinDateInput = screen.getByTestId('join-date-input-1');
|
|
|
+ fireEvent.change(joinDateInput, { target: { value: '2024-01-01T00:00' } });
|
|
|
+
|
|
|
+ const salaryInput = screen.getByTestId('salary-detail-input-1');
|
|
|
+ fireEvent.change(salaryInput, { target: { value: '5000元/月' } });
|
|
|
+
|
|
|
+ const workStatusSelect = screen.getByTestId('work-status-input-1');
|
|
|
+ await userEvent.selectOptions(workStatusSelect, 'WORKING');
|
|
|
+
|
|
|
+ // 提交表单
|
|
|
+ const submitButton = screen.getByRole('button', { name: /添加/ });
|
|
|
+ fireEvent.click(submitButton);
|
|
|
+
|
|
|
+ // 验证API调用
|
|
|
+ await waitFor(() => {
|
|
|
+ const mockOrderClient = orderClientManager.get();
|
|
|
+ // 验证批量添加人员API被调用
|
|
|
+ expect(mockOrderClient[':orderId'].persons.batch.$post).toHaveBeenCalledWith({
|
|
|
+ param: { orderId: 1 },
|
|
|
+ json: {
|
|
|
+ persons: expect.arrayContaining([
|
|
|
+ expect.objectContaining({
|
|
|
+ personId: 1,
|
|
|
+ joinDate: '2024-01-01T00:00:00.000Z',
|
|
|
+ salaryDetail: '5000元/月',
|
|
|
+ workStatus: 'WORKING'
|
|
|
+ })
|
|
|
+ ])
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
describe('搜索和筛选测试', () => {
|