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(); + }); +});