1
1
import * as React from 'react' ;
2
2
import { ScrollView , ScrollViewProps , View } from 'react-native' ;
3
3
import { EventEntry , createEventLogger } from '../../../test-utils' ;
4
- import { render , screen } from '../../..' ;
4
+ import { fireEvent , render , screen } from '../../..' ;
5
5
import { userEvent } from '../..' ;
6
6
7
7
function mapEventsToShortForm ( events : EventEntry [ ] ) {
@@ -103,7 +103,7 @@ describe('scrollTo()', () => {
103
103
] ) ;
104
104
} ) ;
105
105
106
- test ( 'remembers previous scroll position ' , async ( ) => {
106
+ test ( 'remembers previous scroll offset ' , async ( ) => {
107
107
const { events } = renderScrollViewWithToolkit ( ) ;
108
108
const user = userEvent . setup ( ) ;
109
109
@@ -123,6 +123,24 @@ describe('scrollTo()', () => {
123
123
] ) ;
124
124
} ) ;
125
125
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
+
126
144
it ( 'validates vertical scroll direction' , async ( ) => {
127
145
renderScrollViewWithToolkit ( ) ;
128
146
const user = userEvent . setup ( ) ;
0 commit comments