UNPKG

@cainiaofe/cn-ui-m

Version:
65 lines (64 loc) 2.66 kB
import { __assign } from "tslib"; import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import { UploadListItem } from '../upload-list-item'; import { useUploadState } from '@cainiaofe/cn-ui-common'; jest.mock('@cainiaofe/cn-ui-common', function () { var originalModule = jest.requireActual('@cainiaofe/cn-ui-common'); return __assign(__assign({}, originalModule), { useUploadState: jest.fn() }); }); describe('UploadListItem', function () { beforeEach(function () { useUploadState.mockReturnValue({ props: {}, }); }); afterEach(function () { jest.resetAllMocks(); }); it('renders the component correctly', function () { var file = { key: 'test.jpg', name: 'test.jpg', url: 'https://example.com/test.jpg', }; var fileList = [file]; var container = render(React.createElement(UploadListItem, { index: 0, file: file, fileList: fileList })).container; expect(container.querySelector('.cn-ui-m-oss-image-upload-item-img')).toBeInTheDocument(); }); it('calls onPreview and onRemove when clicked', function () { var file = { key: 'test.jpg', name: 'test.jpg', url: 'https://example.com/test.jpg', }; var fileList = [file]; var onPreviewMock = jest.fn(); var onRemoveMock = jest.fn(); useUploadState.mockReturnValue({ props: { showPreview: true, onPreview: onPreviewMock, showRemove: true, }, onRemove: onRemoveMock, }); var container = render(React.createElement(UploadListItem, { index: 0, file: file, fileList: fileList })).container; var imageElement = container.querySelector('.cn-ui-m-oss-image-upload-item-img'); fireEvent.click(imageElement); expect(onPreviewMock).toHaveBeenCalledWith(file); var removeElement = container.querySelector('.cn-ui-m-oss-image-upload-item-remove'); fireEvent.click(removeElement); expect(onRemoveMock).toHaveBeenCalledWith(file); }); it('判断loading状态是否渲染正常', function () { var file = { key: 'test.jpg', name: 'test.jpg', status: 'uploading', url: 'https://example.com/test.jpg', }; var container = render(React.createElement(UploadListItem, { index: 0, file: file, fileList: [file] })).container; expect(container.querySelector('.cn-ui-m-oss-image-upload-item-uploading')).toBeInTheDocument(); }); });