|
| 1 | +from typing import Type |
| 2 | + |
| 3 | +import pytest |
1 | 4 | from playwright.sync_api import Page |
2 | 5 |
|
3 | 6 | from shiny.playwright import controller |
4 | 7 | from shiny.pytest import create_app_fixture |
5 | 8 | from shiny.run import ShinyAppProc |
6 | 9 |
|
7 | | -app = create_app_fixture(["app-express.py"]) |
8 | | - |
9 | | - |
10 | | -def test_navsets_bookmarking_demo(page: Page, app: ShinyAppProc) -> None: |
| 10 | +app = create_app_fixture("app-express.py") |
| 11 | + |
| 12 | + |
| 13 | +@pytest.mark.parametrize( |
| 14 | + "navset_name,navset_variant,navset_controller", |
| 15 | + [ |
| 16 | + ("navset_bar", "default", controller.NavsetBar), |
| 17 | + ("navset_pill", "default", controller.NavsetPill), |
| 18 | + ("navset_underline", "default", controller.NavsetUnderline), |
| 19 | + ("navset_tab", "default", controller.NavsetTab), |
| 20 | + ("navset_pill_list", "default", controller.NavsetPillList), |
| 21 | + ("navset_card_pill", "default", controller.NavsetCardPill), |
| 22 | + ("navset_card_tab", "default", controller.NavsetCardTab), |
| 23 | + ("navset_card_underline", "default", controller.NavsetCardUnderline), |
| 24 | + ], |
| 25 | +) |
| 26 | +def test_navsets_bookmarking_demo( |
| 27 | + page: Page, |
| 28 | + app: ShinyAppProc, |
| 29 | + navset_name: str, |
| 30 | + navset_variant: str, |
| 31 | + navset_controller: Type[controller._navs._NavsetBase], |
| 32 | +) -> None: |
11 | 33 | page.goto(app.url) |
12 | 34 |
|
13 | 35 | # Non-module navsets |
14 | 36 | navset_collection = controller.NavsetTab(page, "navsets_collection") |
15 | | - navset_collection.set("navset_underline") |
16 | | - navset_underline = controller.NavsetUnderline(page, "navset_underline_default") |
17 | | - navset_underline.set("navset_underline_c") |
18 | | - navset_collection.set("navset_card_underline") |
19 | | - navset_card_underline = controller.NavsetCardUnderline( |
20 | | - page, "navset_card_underline_default" |
21 | | - ) |
22 | | - navset_card_underline.set("navset_card_underline_c") |
23 | | - |
24 | | - # module navsets |
| 37 | + navset_collection.set(navset_name) |
| 38 | + navset_cont = navset_controller(page, f"{navset_name}_{navset_variant}") |
| 39 | + navset_cont.set(f"{navset_name}_c") |
| 40 | + |
| 41 | + # Module navsets |
25 | 42 | mod_navset_collection = controller.NavsetTab(page, "first-navsets_collection") |
26 | | - mod_navset_collection.set("navset_underline") |
27 | | - mod_navset_underline = controller.NavsetUnderline( |
28 | | - page, "first-navset_underline_default" |
29 | | - ) |
30 | | - mod_navset_underline.set("navset_underline_c") |
31 | | - mod_navset_collection.set("navset_card_underline") |
32 | | - mod_navset_card_underline = controller.NavsetCardUnderline( |
33 | | - page, "first-navset_card_underline_default" |
34 | | - ) |
35 | | - mod_navset_card_underline.set("navset_card_underline_c") |
36 | | - |
37 | | - # click bookmark button |
38 | | - bookmark_button = controller.InputBookmarkButton(page) |
39 | | - bookmark_button.click() |
40 | | - |
41 | | - # reload page |
| 43 | + mod_navset_collection.set(navset_name) |
| 44 | + mod_navset_cont = navset_controller(page, f"first-{navset_name}_{navset_variant}") |
| 45 | + mod_navset_cont.set(f"{navset_name}_b") |
| 46 | + |
| 47 | + # Click bookmark button |
| 48 | + controller.InputBookmarkButton(page).click() |
| 49 | + |
| 50 | + # Reload page |
42 | 51 | page.reload() |
43 | 52 |
|
44 | | - navset_card_underline.expect_value("navset_card_underline_c") |
45 | | - navset_collection.expect_value("navset_card_underline") |
46 | | - mod_navset_card_underline.expect_value("navset_card_underline_c") |
47 | | - mod_navset_collection.expect_value("navset_card_underline") |
| 53 | + # Assert |
| 54 | + navset_collection.expect_value(navset_name) |
| 55 | + navset_cont.expect_value(f"{navset_name}_c") |
| 56 | + mod_navset_collection.expect_value(navset_name) |
| 57 | + mod_navset_cont.expect_value(f"{navset_name}_b") |
0 commit comments