From 3926b50eecb7d36e34fb21aa9894b69af47bc21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Augustin=20Le=20F=C3=A8vre?= Date: Tue, 13 Sep 2022 11:41:53 +0200 Subject: [PATCH] Add test to ensure it is possible to trigger native event --- src/__tests__/fireEvent.test.tsx | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/__tests__/fireEvent.test.tsx b/src/__tests__/fireEvent.test.tsx index a8a7dca84..88613e015 100644 --- a/src/__tests__/fireEvent.test.tsx +++ b/src/__tests__/fireEvent.test.tsx @@ -475,3 +475,53 @@ test('has only onMove', () => { }); expect(handleDrag).toHaveBeenCalled(); }); + +// Those events ideally should be triggered through `fireEvent.scroll`, but they are handled at the +// native level, so we need to support manually triggering them +describe('native events', () => { + test('triggers onScrollBeginDrag', () => { + const onScrollBeginDragSpy = jest.fn(); + const { getByTestId } = render( + + ); + + fireEvent(getByTestId('test-id'), 'onScrollBeginDrag'); + expect(onScrollBeginDragSpy).toHaveBeenCalled(); + }); + + test('triggers onScrollEndDrag', () => { + const onScrollEndDragSpy = jest.fn(); + const { getByTestId } = render( + + ); + + fireEvent(getByTestId('test-id'), 'onScrollEndDrag'); + expect(onScrollEndDragSpy).toHaveBeenCalled(); + }); + + test('triggers onMomentumScrollBegin', () => { + const onMomentumScrollBeginSpy = jest.fn(); + const { getByTestId } = render( + + ); + + fireEvent(getByTestId('test-id'), 'onMomentumScrollBegin'); + expect(onMomentumScrollBeginSpy).toHaveBeenCalled(); + }); + + test('triggers onMomentumScrollEnd', () => { + const onMomentumScrollEndSpy = jest.fn(); + const { getByTestId } = render( + + ); + + fireEvent(getByTestId('test-id'), 'onMomentumScrollEnd'); + expect(onMomentumScrollEndSpy).toHaveBeenCalled(); + }); +});