import * as React from 'react'; import { Popper, PositioningProps } from 'src/utils/positioner'; import { mountWithProvider as mount } from 'test/utils'; type ImplementsPopperPropsOptions
= { requiredProps?: Partial
;
};
export const positioningProps: Required (
Component: React.ComponentType ,
options: ImplementsPopperPropsOptions = {},
) {
describe('implements all positioning props for Popper', () => {
Object.entries(positioningProps).forEach(([positioningProp, positioningValue]) => {
test(`"${positioningProp}" is passed to a Popper component`, () => {
const wrapper = mount(
React.createElement(Component, {
...(options.requiredProps as P),
[positioningProp]: positioningValue,
}),
);
const popper = wrapper.find(Popper);
expect(popper.prop(positioningProp)).toBe(positioningValue);
});
});
});
}