import { describe, it, jest } from '@jest/globals'; import { render } from '@testing-library/react'; import { forwardRef, useImperativeHandle } from 'react'; import { mergeRefs } from './refs'; const refValue = 'minus architecto qui'; const TestComponentWithForwardedRef = forwardRef((_, ref) => { useImperativeHandle(ref, () => refValue); return null; }); TestComponentWithForwardedRef.displayName = 'TestComponentWithForwardedRef'; describe('merge-refs', () => { it('can merge a ref function with a ref object', () => { const refFn = jest.fn(); const refObj = { current: null }; const TestComponent = () => ( ); render(); expect(refFn).toHaveBeenCalledTimes(1); expect(refFn).toHaveBeenLastCalledWith(refValue); expect(refObj.current).toBe(refValue); }); });