import { shallow } from 'enzyme'; import { UncontrolledTooltip } from 'reactstrap'; import { Placement } from '@popperjs/core'; import { InfoTooltip } from '../../src/utils/InfoTooltip'; describe('<InfoTooltip />', () => { it.each([ [undefined], ['foo'], ['bar'], ])('renders expected className on span', (className) => { const wrapper = shallow(<InfoTooltip placement="right" className={className} />); const span = wrapper.find('span'); expect(span.prop('className')).toEqual(className ?? ''); }); it.each([ [<span key={1} />], ['Foo'], ['Hello'], [['One', 'Two', <span key={3} />]], ])('passes children down to the nested tooltip component', (children) => { const wrapper = shallow(<InfoTooltip placement="right">{children}</InfoTooltip>); const tooltip = wrapper.find(UncontrolledTooltip); expect(tooltip.prop('children')).toEqual(children); }); it.each([ ['right' as Placement], ['left' as Placement], ['top' as Placement], ['bottom' as Placement], ])('places tooltip where requested', (placement) => { const wrapper = shallow(<InfoTooltip placement={placement} />); const tooltip = wrapper.find(UncontrolledTooltip); expect(tooltip.prop('placement')).toEqual(placement); }); });