import { renderHook } from '@testing-library/react-hooks'; import { useShowUploadPreviewIcon } from '../use-show-upload-preview-icon'; describe('useShowUploadPreviewIcon', () => { it('当 showPreview 为布尔值 false,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: false, file: { status: 'idle', key: 'file' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 false,等待上传中,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ file: { status: 'idle', key: 'file' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 false,正在上传中,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ file: { status: 'uploading', key: 'file' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 true,等待上传中,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, file: { status: 'idle', key: 'file1' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 true,正在上传中,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, file: { status: 'idle', key: 'file1' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 true,已上传完成,同时文件包含 url 链接,返回值为 true', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, file: { status: 'done', url: 'http://example.com', key: 'file1' }, }), ); expect(result.current).toBe(true); }); it('当 showPreview 为布尔值 true,已上传完成,onPreview 不存在,文件不包含 url 链接,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, file: { status: 'done', key: 'file1' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为布尔值 true,已上传完成,onPreview 存在,文件不包含 url 链接,返回值为 true', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, onPreview: () => {}, file: { status: 'done', key: 'file1' }, }), ); expect(result.current).toBe(true); }); it('当 showPreview 为布尔值 true,已上传完成,onPreview 存在,文件包含 url 链接,返回值为 true', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: true, onPreview: () => {}, file: { status: 'done', url: 'http://example.com', key: 'file1' }, }), ); expect(result.current).toBe(true); }); it('当 showPreview 为函数返回 false,返回值为 false', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: () => false, file: { status: 'idle', key: 'file' }, }), ); expect(result.current).toBe(false); }); it('当 showPreview 为函数返回 true,返回值为 true', () => { const { result } = renderHook(() => useShowUploadPreviewIcon({ showPreview: () => true, file: { status: 'idle', key: 'file' }, }), ); expect(result.current).toBe(true); }); });