@@ -183,3 +183,43 @@ def sample():
183
183
184
184
await display .page .go_back ()
185
185
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