@@ -183,3 +183,43 @@ def sample():
183183
184184 await display .page .go_back ()
185185 await display .page .wait_for_selector ("#root" )
186+
187+
188+ async def test_relative_links (display : DisplayFixture ):
189+ @component
190+ def sample ():
191+ return simple .router (
192+ route ("/" , link ("Root" , to = "/a" , id = "root" )),
193+ route ("/a" , link ("A" , to = "/a/b" , id = "a" )),
194+ route ("/a/b" , link ("B" , to = "../a/b/c" , id = "b" )),
195+ route ("/a/b/c" , link ("C" , to = "../d" , id = "c" )),
196+ route ("/a/d" , link ("D" , to = "e" , id = "d" )),
197+ route ("/a/e" , link ("E" , to = "../default" , id = "e" )),
198+ route ("*" , html .h1 ({"id" : "default" }, "Default" )),
199+ )
200+
201+ await display .show (sample )
202+
203+ for link_selector in ["#root" , "#a" , "#b" , "#c" , "#d" , "#e" ]:
204+ lnk = await display .page .wait_for_selector (link_selector )
205+ await lnk .click ()
206+
207+ await display .page .wait_for_selector ("#default" )
208+
209+ await display .page .go_back ()
210+ await display .page .wait_for_selector ("#e" )
211+
212+ await display .page .go_back ()
213+ await display .page .wait_for_selector ("#d" )
214+
215+ await display .page .go_back ()
216+ await display .page .wait_for_selector ("#c" )
217+
218+ await display .page .go_back ()
219+ await display .page .wait_for_selector ("#b" )
220+
221+ await display .page .go_back ()
222+ await display .page .wait_for_selector ("#a" )
223+
224+ await display .page .go_back ()
225+ await display .page .wait_for_selector ("#root" )
0 commit comments