|
8 | 8 | from reactpy_router import browser_router, link, navigate, route, use_params, use_search_params
|
9 | 9 |
|
10 | 10 | GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS", "").lower() == "true"
|
11 |
| -CLICK_DELAY = 350 if GITHUB_ACTIONS else 25 # Delay in miliseconds. |
| 11 | +CLICK_DELAY = 400 if GITHUB_ACTIONS else 25 # Delay in miliseconds. |
12 | 12 |
|
13 | 13 |
|
14 | 14 | async def test_simple_router(display: DisplayFixture):
|
@@ -334,3 +334,30 @@ def sample():
|
334 | 334 | await display.page.wait_for_selector("#b")
|
335 | 335 | await display.page.go_back()
|
336 | 336 | await display.page.wait_for_selector("#nav-a")
|
| 337 | + |
| 338 | + |
| 339 | +async def test_navigate_component_to_current_url(display: DisplayFixture): |
| 340 | + @component |
| 341 | + def navigate_btn(to: str, html_id: str, replace: bool = False): |
| 342 | + nav_url, set_nav_url = use_state("") |
| 343 | + |
| 344 | + return html.button( |
| 345 | + {"onClick": lambda _: set_nav_url(to), "id": html_id}, |
| 346 | + navigate(nav_url, replace) if nav_url else f"Navigate to {to}", |
| 347 | + ) |
| 348 | + |
| 349 | + @component |
| 350 | + def sample(): |
| 351 | + return browser_router( |
| 352 | + route("/", navigate_btn("/a", "root-a")), |
| 353 | + route("/a", navigate_btn("/a", "nav-a")), |
| 354 | + ) |
| 355 | + |
| 356 | + await display.show(sample) |
| 357 | + _button = await display.page.wait_for_selector("#root-a") |
| 358 | + await _button.click(delay=CLICK_DELAY) |
| 359 | + _button = await display.page.wait_for_selector("#nav-a") |
| 360 | + await _button.click(delay=CLICK_DELAY) |
| 361 | + await display.page.wait_for_selector("#nav-a") |
| 362 | + await display.page.go_back() |
| 363 | + await display.page.wait_for_selector("#root-a") |
0 commit comments