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()
})
})