Skip to content

Commit 1fa58d5

Browse files
committed
PLAYWRIGHT WORKS
1 parent 6a3de97 commit 1fa58d5

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed

tests/playwright/shiny/components/dynamic_navs/app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
),
1313
ui.navset_tab(
1414
ui.nav_panel("Hello", "This is the hello tab", value="Hello"),
15-
ui.nav_panel("Foo", "Foo", value="Foo"),
15+
ui.nav_panel("Foo", "This is the Foo tab", value="Foo"),
1616
ui.nav_menu(
17-
"Static",
18-
ui.nav_panel("Static 1", "Static 1", value="s1"),
19-
ui.nav_panel("Static 2", "Static 2", value="s2"),
17+
"Menu",
18+
ui.nav_panel("Static1", "Static1", value="s1"),
19+
ui.nav_panel("Static2", "Static2", value="s2"),
2020
value="Menu",
2121
),
2222
id="tabs",

tests/playwright/shiny/components/dynamic_navs/test_navs_dynamic.py

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,61 +17,76 @@ def test_dynamic_navs(page: Page, local_app: ShinyAppProc) -> None:
1717
addfoo = controller.InputActionButton(page, "addFoo")
1818
addfoo.click()
1919
controller.NavsetTab(page, "tabs").expect_nav_titles(
20-
["Hello", "Foo", "Foo-1", "Static 1", "Static 2"]
20+
["Hello", "Foo", "Foo-1", "Static1", "Static2"]
2121
)
22+
# Test Foo-1 tab is added
23+
navpanel = controller.NavPanel(page, "tabs", "Foo").loc.filter(has_text="Foo-1")
24+
expect(navpanel).to_have_text("Foo-1")
2225

2326
# Click hide-tab to hide the Foo tabs
2427
hidetab = controller.InputActionButton(page, "hideTab")
2528
hidetab.click()
2629

2730
# Expect the Foo tabs to be hidden
28-
expect(
29-
page.get_by_role("presentation").filter(has_text="This is the Foo tab")
30-
).to_be_hidden()
31-
expect(page.get_by_role("presentation").filter(has_text="Foo-")).to_be_hidden()
31+
navpanel = controller.NavPanel(page, "tabs", "Foo").loc.filter(has_text="Foo-1")
32+
expect(navpanel).to_be_hidden()
33+
navpanel = controller.NavPanel(page, "tabs", "Foo").loc.filter(
34+
has_text="This is the Foo tab"
35+
)
36+
expect(navpanel).to_be_hidden()
3237

3338
# Click show-tab to show the Foo tabs again
3439
showtab = controller.InputActionButton(page, "showTab")
3540
showtab.click()
3641

3742
# Expect the Foo tabs to be visible again
38-
expect(
39-
page.get_by_role("presentation").filter(has_text="This is the Foo tab")
40-
).not_to_be_hidden()
41-
expect(page.get_by_role("presentation").filter(has_text="Foo-")).not_to_be_hidden()
43+
navpanel2 = controller.NavPanel(page, "tabs", "Foo").loc.first
44+
expect(navpanel2).to_be_visible(timeout=10000)
45+
navpanel3 = controller.NavPanel(page, "tabs", "Foo").loc.last
46+
expect(navpanel3).to_be_visible(timeout=10000)
4247

4348
# Click remove-foo to remove the Foo tabs
4449
removefoo = controller.InputActionButton(page, "removeFoo")
4550
removefoo.click()
4651
controller.NavsetTab(page, "tabs").expect_nav_titles(
47-
["Hello", "Static 1", "Static 2"]
52+
["Hello", "Static1", "Static2"]
4853
)
4954

5055
# Click add to add a dynamic tab
5156
add = controller.InputActionButton(page, "add")
5257
add.click()
5358
controller.NavsetTab(page, "tabs").expect_nav_titles(
54-
["Hello", "Static 1", "Dynamic-1", "Static 2"]
59+
["Hello", "Static1", "Dynamic-1", "Static2"]
5560
)
5661

5762
# Click add again to add another dynamic tab
5863
add.click()
5964
controller.NavsetTab(page, "tabs").expect_nav_titles(
60-
["Hello", "Static 1", "Dynamic-1", "Dynamic-2", "Static 2"]
65+
["Hello", "Static1", "Dynamic-1", "Dynamic-2", "Static2"]
6166
)
6267

68+
page.get_by_role("button", name="Menu", exact=True).click()
69+
70+
navpanel3 = controller.NavPanel(page, "tabs", "s1").loc
71+
expect(navpanel3).to_be_visible(timeout=20000)
72+
6373
# Click hide-menu to hide the static menu
6474
hidemenu = controller.InputActionButton(page, "hideMenu")
6575
hidemenu.click()
6676

6777
# Expect the Menu to be hidden
68-
expect(page.get_by_role("presentation").filter(has_text="Static")).to_be_hidden()
78+
navpanel3 = controller.NavPanel(page, "tabs", "s1").loc
79+
expect(navpanel3).to_be_hidden()
6980

7081
# Click show-menu to show the static menu again
7182
showmenu = controller.InputActionButton(page, "showMenu")
7283
showmenu.click()
7384

7485
# Expect the Menu to be visible again
75-
expect(
76-
page.get_by_role("presentation").filter(has_text="Static")
77-
).not_to_be_hidden()
86+
expect(page.get_by_role("button", name="Menu", exact=True)).to_be_visible(
87+
timeout=10000
88+
)
89+
# Click the Menu button to show the static menu
90+
page.get_by_role("button", name="Menu", exact=True).click()
91+
navpanel3 = controller.NavPanel(page, "tabs", "s1").loc
92+
expect(navpanel3).to_be_visible(timeout=20000)

0 commit comments

Comments
 (0)