import * as React from "react"; import { render } from "reakit-test-utils"; import { CompositeGroupProps, CompositeGroup } from "../CompositeGroup"; const props: CompositeGroupProps = { registerGroup: jest.fn(), unregisterGroup: jest.fn(), }; test("render", () => { const { container } = render(); expect(container).toMatchInlineSnapshot(`
`); }); test("render without state props", () => { // @ts-ignore const { container } = render(); expect(container).toMatchInlineSnapshot(`
`); }); test("do not re-render if group is not the current or the previous active one", () => { const onRender = jest.fn(); const items = [ { id: "item-1", groupId: "group-1", ref: React.createRef() }, { id: "item-2", groupId: "group-2", ref: React.createRef() }, { id: "item-3", groupId: "group-3", ref: React.createRef() }, ]; const Test = React.memo((groupProps: CompositeGroupProps) => { React.useEffect(onRender); return ; }, CompositeGroup.unstable_propsAreEqual); const { rerender } = render(); expect(onRender).toHaveBeenCalledTimes(1); rerender(); expect(onRender).toHaveBeenCalledTimes(2); rerender(); expect(onRender).toHaveBeenCalledTimes(3); rerender(); expect(onRender).toHaveBeenCalledTimes(3); rerender(); expect(onRender).toHaveBeenCalledTimes(4); rerender(); expect(onRender).toHaveBeenCalledTimes(5); });