@cainiaofe/cn-ui-m
Version:
27 lines (26 loc) • 1.51 kB
JavaScript
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { CnPopover } from '../index';
describe('CnPopover', function () {
test('renders CnPopover component', function () {
var getByText = render(React.createElement(CnPopover, { content: "Hello World", placement: "bottom-start", mode: "dark", trigger: "click", visible: true },
React.createElement("div", null, "\u5E38\u9A7B"))).getByText;
expect(getByText('Hello World')).toBeInTheDocument();
});
test('shows popover on click', function () {
var getByText = render(React.createElement(CnPopover, { content: "Hello World", trigger: "click", placement: "right" },
React.createElement("div", null, "Click me"))).getByText;
var targetElement = getByText('Click me');
fireEvent.click(targetElement);
expect(getByText('Hello World')).toBeInTheDocument();
});
test('calls onVisibleChange prop on visibility change', function () {
var onVisibleChange = jest.fn();
var getByText = render(React.createElement(CnPopover, { content: "Hello World", trigger: "click", placement: "right", visible: false, onVisibleChange: onVisibleChange },
React.createElement("div", null, "Click me"))).getByText;
var targetElement = getByText('Click me');
fireEvent.click(targetElement);
// Add assertions to check if onVisibleChange is called
expect(onVisibleChange).toHaveBeenCalled();
});
});