@cainiaofe/cn-ui-m
Version:
30 lines (29 loc) • 1.53 kB
JavaScript
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { CnModal } from '../index';
describe('CnModal', function () {
it('renders the children correctly', function () {
var getByText = render(React.createElement(CnModal, { visible: true },
React.createElement("div", null, "Modal Content"))).getByText;
expect(getByText('Modal Content')).toBeInTheDocument();
});
it('calls onClose when mask is clicked and maskClosable is true', function () {
var onCloseMock = jest.fn();
var getByTestId = render(React.createElement(CnModal, { visible: true, maskClosable: true, onClose: onCloseMock })).getByTestId;
var mask = getByTestId('mask');
fireEvent.click(mask);
expect(onCloseMock).toHaveBeenCalled();
});
it('does not call onClose when mask is clicked and maskClosable is false', function () {
var onCloseMock = jest.fn();
var getByTestId = render(React.createElement(CnModal, { visible: true, maskClosable: false, onClose: onCloseMock })).getByTestId;
var mask = getByTestId('mask');
fireEvent.click(mask);
expect(onCloseMock).not.toHaveBeenCalled();
});
it('hides the modal when visible prop is false', function () {
var queryByText = render(React.createElement(CnModal, { visible: false },
React.createElement("div", null, "Modal Content"))).queryByText;
expect(queryByText('Modal Content')).not.toBeInTheDocument();
});
});