import { fireEvent, render, screen } from '@testing-library/react' import TaskReferenceFields from '@/components/upload/TaskReferenceFields' describe('TaskReferenceFields', () => { test('任务号与钉钉审批编号使用响应式双列布局', () => { const { container } = render( , ) expect(container.firstChild).toHaveClass('grid-cols-1', 'md:grid-cols-2') expect(screen.getByLabelText('任务号')).toBeInTheDocument() expect(screen.getByLabelText('钉钉审批编号')).toBeInTheDocument() }) test('任务号输入会统一转为大写', () => { const onTaskNoChange = jest.fn() render( , ) fireEvent.change(screen.getByLabelText('任务号'), { target: { value: 'task202601030184' }, }) expect(onTaskNoChange).toHaveBeenCalledWith('TASK202601030184') }) test('非法审批编号应显示紧邻输入框的错误状态', () => { render( , ) const input = screen.getByLabelText('钉钉审批编号') fireEvent.blur(input) expect(input).toHaveAttribute('aria-invalid', 'true') expect(screen.getByText('钉钉审批编号前8位不是有效日期')).toBeInTheDocument() }) })