@cainiaofe/cn-ui-m
Version:
65 lines (64 loc) • 2.66 kB
JavaScript
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();
});
});