@@ -205,31 +205,33 @@ describe('TextInput Tests', () => {
205205 // Get reference to state display element
206206 const stateText = await app . findElementByTestID ( 'textinput-state-display' ) ;
207207
208- // Position the cursor over the component but don't click yet
209- await component . moveTo ( ) ;
208+ // Verify initial state
209+ const initialText = await stateText . getText ( ) ;
210+ expect ( initialText ) . toBe ( 'PressIn/PressOut message' ) ;
210211
211- // Use a custom approach: try to move and click in one motion to isolate onPressIn
212- // Since touchAction isn't working, we'll modify our test strategy to verify
213- // that the component responds to press events and rely on the final state
212+ // Trigger press interaction - this will fire both onPressIn and onPressOut
214213 await component . click ( ) ;
215214
216- // Since click triggers both onPressIn and onPressOut, we should verify
217- // that the press functionality is working by checking the final state
215+ // After click interaction, verify that:
216+ // 1. The state has changed from the initial state (proving onPressIn fired)
217+ // 2. The final state is the expected onPressOut state (proving onPressOut fired)
218218 await app . waitUntil (
219219 async ( ) => {
220220 const currentText = await stateText . getText ( ) ;
221- // After a complete click, the state should be either the intermediate state
222- // or the final "Released" state depending on timing
223- return currentText === 'Released click/touch' || currentText === 'Holding down the click/touch' ;
221+ return currentText === 'Released click/touch' ;
224222 } ,
225223 {
226224 timeout : 5000 ,
227- timeoutMsg : 'State text not updated after press interaction.' ,
225+ timeoutMsg : 'State text not updated to final onPressOut state after press interaction.' ,
228226 } ,
229227 ) ;
230228
231- // Final assertion - the component should be responsive to press events
232- expect ( [ 'Released click/touch' , 'Holding down the click/touch' ] ) . toContain ( await stateText . getText ( ) ) ;
229+ // Final assertion - verify the complete press/release cycle worked
230+ const finalText = await stateText . getText ( ) ;
231+ expect ( finalText ) . toBe ( 'Released click/touch' ) ;
232+
233+ // Verify that the state changed from initial, proving onPressIn fired
234+ expect ( finalText ) . not . toBe ( initialText ) ;
233235
234236 // This step helps avoid UI lock by unfocusing the input
235237 const search = await app . findElementByTestID ( 'example_search' ) ;
@@ -246,6 +248,10 @@ describe('TextInput Tests', () => {
246248 // Get reference to state display element
247249 const stateText = await app . findElementByTestID ( 'textinput-state-display' ) ;
248250
251+ // Verify initial state before interaction
252+ const initialText = await stateText . getText ( ) ;
253+ expect ( initialText ) . toBe ( 'PressIn/PressOut message' ) ;
254+
249255 // Use click() which triggers both onPressIn and onPressOut in sequence
250256 // This should result in the final state being "Released click/touch"
251257 await component . click ( ) ;
@@ -258,11 +264,11 @@ describe('TextInput Tests', () => {
258264 } ,
259265 {
260266 timeout : 5000 ,
261- timeoutMsg : 'State text not updated after onPressOut.' ,
267+ timeoutMsg : 'State text not updated to final onPressOut state .' ,
262268 } ,
263269 ) ;
264270
265- // Assertion
271+ // Verify that onPressOut event fired and set the final state correctly
266272 expect ( await stateText . getText ( ) ) . toBe ( 'Released click/touch' ) ;
267273
268274 // Clean up by unfocusing the input
0 commit comments