@@ -364,18 +364,24 @@ async def test_navigate_component_go_back(display: DisplayFixture):
364364 def nav_btn ():
365365 nav , set_nav = use_state ("" )
366366
367+ if nav :
368+ return navigate (nav )
369+
367370 return html .button (
368- {"onClick" : lambda _ : set_nav ("/a" )},
369- navigate ( nav ) if nav else "Go to A" ,
371+ {"onClick" : lambda _ : set_nav ("/a" ), "id" : "nav-to-a" },
372+ "Go to A" ,
370373 )
371374
372375 @component
373376 def back_btn ():
374377 delta , set_delta = use_state ("" )
375378
379+ if isinstance (delta , int ):
380+ return navigate (delta )
381+
376382 return html .button (
377- {"onClick" : lambda _ : set_delta (- 1 )},
378- navigate ( delta ) if isinstance ( delta , int ) else "Go back" ,
383+ {"onClick" : lambda _ : set_delta (- 1 ), "id" : "go-back" },
384+ "Go back" ,
379385 )
380386
381387 @component
@@ -387,19 +393,20 @@ def sample():
387393
388394 await display .show (sample )
389395
390- # Navigate to /a using the link
391- btn = await display .page .wait_for_selector ("button" )
392- assert await btn .text_content () == "Go to A"
393- await btn .click ()
396+ # Navigate to /a
397+ await display .page .wait_for_selector ("#nav-to-a" )
398+ await display .page .click ("#nav-to-a" )
399+
400+ # Wait for the go-back button to appear on route /a
401+ await display .page .wait_for_selector ("#go-back" )
402+ assert await display .page .text_content ("#go-back" ) == "Go back"
394403
395404 # Go back using navigate(-1)
396- btn = await display .page .wait_for_selector ("button" )
397- assert await btn .text_content () == "Go back"
398- await btn .click ()
405+ await display .page .click ("#go-back" )
399406
400407 # Verify we're back at the root route
401- btn = await display .page .wait_for_selector ("button " )
402- assert await btn . text_content () == "Go to A"
408+ await display .page .wait_for_selector ("#nav-to-a " )
409+ assert await display . page . text_content ("#nav-to-a" ) == "Go to A"
403410
404411
405412async def test_navigate_component_go_forward (display : DisplayFixture ):
@@ -409,18 +416,24 @@ async def test_navigate_component_go_forward(display: DisplayFixture):
409416 def forward_btn ():
410417 delta , set_delta = use_state ("" )
411418
419+ if isinstance (delta , int ):
420+ return navigate (delta )
421+
412422 return html .button (
413423 {"onClick" : lambda _ : set_delta (1 ), "id" : "go-forward" },
414- navigate ( delta ) if isinstance ( delta , int ) else "Go forward" ,
424+ "Go forward" ,
415425 )
416426
417427 @component
418428 def back_btn ():
419429 delta , set_delta = use_state ("" )
420430
431+ if isinstance (delta , int ):
432+ return navigate (delta )
433+
421434 return html .button (
422435 {"onClick" : lambda _ : set_delta (- 1 ), "id" : "go-back" },
423- navigate ( delta ) if isinstance ( delta , int ) else "Go back" ,
436+ "Go back" ,
424437 )
425438
426439 @component
@@ -434,9 +447,9 @@ def sample():
434447
435448 # Navigate to /a via full page load (builds forward history entry)
436449 await display .goto ("/a" )
437- await display .page .wait_for_selector ("#go-back" )
438450
439451 # Go back to / via navigate(-1)
452+ await display .page .wait_for_selector ("#go-back" )
440453 await display .page .click ("#go-back" )
441454
442455 # Should now be at / with the "Go forward" button
0 commit comments