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')
+ })
})