diff --git a/tests/escape.integration.test.tsx b/tests/escape.integration.test.tsx new file mode 100644 index 0000000..ac45fab --- /dev/null +++ b/tests/escape.integration.test.tsx @@ -0,0 +1,24 @@ +import { fireEvent, render } from '@testing-library/react'; +import React from 'react'; +import Tooltip from '../src'; + +jest.unmock('@rc-component/trigger'); + +describe('Escape integration', () => { + it('closes an uncontrolled click tooltip through the real Trigger dependency', () => { + const onVisibleChange = jest.fn(); + const { container } = render( + + + , + ); + + fireEvent.click(container.querySelector('button')); + expect(onVisibleChange).toHaveBeenLastCalledWith(true); + expect(document.querySelector('.rc-tooltip')).not.toHaveClass('rc-tooltip-hidden'); + + fireEvent.keyDown(window, { key: 'Escape' }); + expect(onVisibleChange).toHaveBeenLastCalledWith(false); + expect(document.querySelector('.rc-tooltip')).toHaveClass('rc-tooltip-hidden'); + }); +});