diff --git a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx index 6e99f3b62b..04592f3145 100644 --- a/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx +++ b/web/app/components/base/chat/chat/answer/human-input-content/__tests__/content-item.spec.tsx @@ -1,7 +1,9 @@ +import type { FileEntity } from '@/app/components/base/file-uploader/types' import type { FormInputItem } from '@/app/components/workflow/nodes/human-input/types' import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { describe, expect, it, vi } from 'vitest' +import { TransferMethod } from '@/types/app' import ContentItem from '../content-item' vi.mock('@/app/components/base/markdown', () => ({ @@ -118,4 +120,64 @@ describe('ContentItem', () => { expect(mockOnInputChange).toHaveBeenCalledWith('user_bio', 'select') }) + + it('should delegate single-file fields to the shared renderer', async () => { + const user = userEvent.setup() + + render( + , + ) + + await user.click(screen.getByTestId('renderer-file')) + + expect(mockOnInputChange).toHaveBeenCalledWith('attachment', 'file') + }) + + it('should delegate file-list fields to the shared renderer', async () => { + const user = userEvent.setup() + const existingFiles: FileEntity[] = [{ + id: 'file-1', + name: 'brief.pdf', + size: 128, + type: 'document', + progress: 100, + transferMethod: TransferMethod.local_file, + supportFileType: 'document', + }] + + render( + , + ) + + await user.click(screen.getByTestId('renderer-file-list')) + + expect(mockOnInputChange).toHaveBeenCalledWith('attachments', 'file-list') + }) })