11import * as React from 'react' ;
22import { ScrollView , ScrollViewProps , View } from 'react-native' ;
33import { EventEntry , createEventLogger } from '../../../test-utils' ;
4- import { render , screen } from '../../..' ;
4+ import { fireEvent , render , screen } from '../../..' ;
55import { userEvent } from '../..' ;
66
77function mapEventsToShortForm ( events : EventEntry [ ] ) {
@@ -103,7 +103,7 @@ describe('scrollTo()', () => {
103103 ] ) ;
104104 } ) ;
105105
106- test ( 'remembers previous scroll position ' , async ( ) => {
106+ test ( 'remembers previous scroll offset ' , async ( ) => {
107107 const { events } = renderScrollViewWithToolkit ( ) ;
108108 const user = userEvent . setup ( ) ;
109109
@@ -123,6 +123,24 @@ describe('scrollTo()', () => {
123123 ] ) ;
124124 } ) ;
125125
126+ test ( 'remembers previous scroll offset from "fireEvent.scroll"' , async ( ) => {
127+ const { events } = renderScrollViewWithToolkit ( ) ;
128+ const user = userEvent . setup ( ) ;
129+
130+ fireEvent . scroll ( screen . getByTestId ( 'scrollView' ) , {
131+ nativeEvent : { contentOffset : { y : 100 } } ,
132+ } ) ;
133+ await user . scrollTo ( screen . getByTestId ( 'scrollView' ) , { y : 200 } ) ;
134+ expect ( mapEventsToShortForm ( events ) ) . toEqual ( [
135+ [ 'scroll' , 100 , undefined ] ,
136+ [ 'scrollBeginDrag' , 100 , 0 ] ,
137+ [ 'scroll' , 125 , 0 ] ,
138+ [ 'scroll' , 150 , 0 ] ,
139+ [ 'scroll' , 175 , 0 ] ,
140+ [ 'scrollEndDrag' , 200 , 0 ] ,
141+ ] ) ;
142+ } ) ;
143+
126144 it ( 'validates vertical scroll direction' , async ( ) => {
127145 renderScrollViewWithToolkit ( ) ;
128146 const user = userEvent . setup ( ) ;
0 commit comments