Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/reactstrap/src/__tests__/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import React from 'react';
import { shallow, mount } from 'enzyme';
import { Popper } from 'react-popper';
import { PopperContent } from '../';
describe('PopperContent', () => {
let element;
let container;
beforeEach(() => {
element = document.createElement('div');
container = document.createElement('div');
element.innerHTML = '<p id="outerTarget">This is the popover <span id="target">target</span>.</p>';
container.setAttribute('id', 'container');
element.appendChild(container);
document.body.appendChild(element);
jest.useFakeTimers();
});
afterEach(() => {
jest.clearAllTimers();
document.body.removeChild(element);
element = null;
});
it('should render a null by default', () => {
const wrapper = shallow(<PopperContent target="target">Yo!</PopperContent>);
expect(wrapper.type()).toBe(null);
});
it('should NOT render children when isOpen is false', () => {
const wrapper = shallow(<PopperContent target="target">Yo!</PopperContent>);
expect(wrapper.type()).toBe(null);
});
it('should render children when isOpen is true and container is inline', () => {
const wrapper = mount(<PopperContent target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.text()).toBe('Yo!');
});
it('should render children when isOpen is true and container is inline and DOM node passed directly for target', () => {
const targetElement = element.querySelector('#target');
const wrapper = mount(<PopperContent target={targetElement} isOpen container="inline">Yo!</PopperContent>);
expect(targetElement).toBeDefined();
expect(wrapper.text()).toBe('Yo!');
});
it('should render an Arrow in the Popper when isOpen is true and container is inline', () => {
const wrapper = mount(<PopperContent target="target" isOpen container="inline" arrowClassName="custom-arrow">Yo!</PopperContent>);
expect(wrapper.containsMatchingElement(<span className="arrow custom-arrow" />)).toBe(true);
});
it('should NOT render an Arrow in the Popper when "hideArrow" is truthy', () => {
const wrapper = mount(<PopperContent target="target" isOpen container="inline" arrowClassName="custom-arrow" hideArrow>Yo!</PopperContent>);
expect(wrapper.containsMatchingElement(<span className="arrow custom-arrow" />)).toBe(false);
});
it('should render with "hideArrow" false by default', () => {
const wrapper = mount(<PopperContent target="target">Yo!</PopperContent>);
expect(wrapper.prop('hideArrow')).toBe(false);
});
it('should render with "hideArrow" true when "hideArrow" prop is truthy', () => {
const wrapper = mount(<PopperContent target="target" hideArrow>Yo!</PopperContent>);
expect(wrapper.prop('hideArrow')).toBe(true);
});
it('should not render children', () => {
const wrapper = shallow(<PopperContent target="target">Yo!</PopperContent>);
expect(wrapper.type()).toBe(null);
});
it('should pass additional classNames to the popper', () => {
const wrapper = shallow(<PopperContent className="extra" target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.hasClass('extra')).toBe(true);
});
it('should allow custom modifiers and even allow overriding of default modifiers', () => {
const wrapper = mount(
<PopperContent
className="extra"
target="target"
isOpen
container="inline"
modifiers={{
preventOverflow: { boundariesElement: 'viewport' },
offset: { offset: 2 },
}}
>Yo!</PopperContent>
);
expect(wrapper.find(Popper).props().modifiers).toMatchObject({
// remaining default modifiers
flip: { enabled: true, behavior: 'flip' },
// additional modifiers
preventOverflow: { boundariesElement: 'viewport' },
// override modifiers
offset: { offset: 2 },
});
wrapper.unmount();
});
it('should have x-placement of auto by default', () => {
const wrapper = mount(<PopperContent target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.find('div[x-placement="auto"]').exists()).toBe(true);
});
it('should override x-placement', () => {
const wrapper = mount(<PopperContent placement="top" target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.find('div[x-placement="auto"]').exists()).toBe(false);
expect(wrapper.find('div[x-placement="top"]').exists()).toBe(true);
});
it('should allow for a placement prefix', () => {
const wrapper = mount(<PopperContent placementPrefix="dropdown" target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.find('.dropdown-auto').exists()).toBe(true);
});
it('should allow for a placement prefix with custom placement', () => {
const wrapper = mount(<PopperContent placementPrefix="dropdown" placement="top" target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.find('.dropdown-auto').exists()).toBe(true);
expect(wrapper.find('div[x-placement="top"]').exists()).toBe(true);
});
it('should render custom tag for the popper', () => {
const wrapper = mount(<PopperContent tag="main" target="target" isOpen container="inline">Yo!</PopperContent>);
expect(wrapper.getDOMNode().tagName.toLowerCase()).toBe('main');
});
});
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]-- |