@@ -74,14 +74,54 @@ test.describe('html links', () => {
7474 } )
7575
7676 test ( 'should preserve hash' , async ( { page } ) => {
77- await page . locator ( '#html-links + p > a' ) . nth ( 4 ) . click ( )
77+ await page . locator ( selector ) . nth ( 4 ) . click ( )
7878 await expect ( page ) . toHaveURL ( `${ BASE } 404.html#_404` )
7979 await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
8080 } )
8181
82- test ( 'should preserve hash and query ' , async ( { page } ) => {
82+ test ( 'should preserve complex hash ' , async ( { page } ) => {
8383 await page . locator ( '#html-links + p > a' ) . nth ( 5 ) . click ( )
84- await expect ( page ) . toHaveURL ( `${ BASE } 404.html#_404?notFound=true` )
84+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html#/404?lang=en` )
85+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
86+ } )
87+ } )
88+
89+ test . describe ( 'html clean links' , ( ) => {
90+ const selector = '#html-clean-links + p > a'
91+
92+ test ( 'should navigate to home correctly' , async ( { page } ) => {
93+ await page . locator ( selector ) . nth ( 0 ) . click ( )
94+ await expect ( page ) . toHaveURL ( BASE )
95+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
96+ } )
97+
98+ test ( 'should navigate to 404 page correctly' , async ( { page } ) => {
99+ await page . locator ( selector ) . nth ( 1 ) . click ( )
100+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html` )
101+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
102+ } )
103+
104+ test ( 'should preserve query' , async ( { page } ) => {
105+ await page . locator ( selector ) . nth ( 2 ) . click ( )
106+ await expect ( page ) . toHaveURL ( `${ BASE } ?home=true` )
107+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
108+ } )
109+
110+ test ( 'should preserve query and hash' , async ( { page } ) => {
111+ await page . locator ( selector ) . nth ( 3 ) . click ( )
112+ await expect ( page ) . toHaveURL ( `${ BASE } ?home=true#home` )
113+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
114+ } )
115+
116+ test ( 'should preserve hash' , async ( { page } ) => {
117+ await page . locator ( selector ) . nth ( 4 ) . click ( )
118+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html#_404` )
119+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
120+ } )
121+
122+ test ( 'should preserve complex hash' , async ( { page } ) => {
123+ await page . locator ( '#html-links + p > a' ) . nth ( 5 ) . click ( )
124+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html#/404?lang=en` )
85125 await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
86126 } )
87127} )
@@ -149,7 +189,7 @@ test.describe('markdown links with html paths', () => {
149189 await expect ( page ) . toHaveURL ( `${ BASE } 404.html#_404` )
150190 await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
151191 } else {
152- await expect ( locator ) . toHaveAttribute ( 'href' , '/404.html#404 ' )
192+ await expect ( locator ) . toHaveAttribute ( 'href' , '/404.html#_404 ' )
153193 await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
154194 }
155195 } )
@@ -167,3 +207,85 @@ test.describe('markdown links with html paths', () => {
167207 }
168208 } )
169209} )
210+
211+ test . describe ( 'markdown clean links' , ( ) => {
212+ const selector = '#markdown-clean-links + ul > li > a'
213+
214+ test ( 'should navigate to home correctly' , async ( { page } ) => {
215+ const locator = page . locator ( selector ) . nth ( 0 )
216+
217+ if ( BASE === '/' ) {
218+ await locator . click ( )
219+ await expect ( page ) . toHaveURL ( '/' )
220+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
221+ } else {
222+ await expect ( locator ) . toHaveAttribute ( 'href' , '/' )
223+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
224+ }
225+ } )
226+
227+ test ( 'should navigate to 404 page correctly' , async ( { page } ) => {
228+ const locator = page . locator ( selector ) . nth ( 1 )
229+
230+ if ( BASE === '/' ) {
231+ await locator . click ( )
232+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html` )
233+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
234+ } else {
235+ await expect ( locator ) . toHaveAttribute ( 'href' , '/404' )
236+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
237+ }
238+ } )
239+
240+ test ( 'should preserve query' , async ( { page } ) => {
241+ const locator = page . locator ( selector ) . nth ( 2 )
242+
243+ if ( BASE === '/' ) {
244+ await locator . click ( )
245+ await expect ( page ) . toHaveURL ( `${ BASE } ?home=true` )
246+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
247+ } else {
248+ await expect ( locator ) . toHaveAttribute ( 'href' , '/?home=true' )
249+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
250+ }
251+ } )
252+
253+ test ( 'should preserve query and hash' , async ( { page } ) => {
254+ const locator = page . locator ( selector ) . nth ( 3 )
255+
256+ if ( BASE === '/' ) {
257+ await locator . click ( )
258+ await expect ( page ) . toHaveURL ( `${ BASE } ?home=true#home` )
259+ await expect ( page . locator ( '#home-h2' ) ) . toHaveText ( 'Home H2' )
260+ } else {
261+ await expect ( locator ) . toHaveAttribute ( 'href' , '/?home=true#home' )
262+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
263+ }
264+ } )
265+
266+ test ( 'should preserve hash' , async ( { page } ) => {
267+ const locator = page . locator ( selector ) . nth ( 4 )
268+
269+ if ( BASE === '/' ) {
270+ await locator . click ( )
271+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html#_404` )
272+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
273+ } else {
274+ await expect ( locator ) . toHaveAttribute ( 'href' , '/404#_404' )
275+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
276+ }
277+ } )
278+
279+ test ( 'should preserve complex hash' , async ( { page } ) => {
280+ const locator = page . locator ( selector ) . nth ( 5 )
281+
282+ if ( BASE === '/' ) {
283+ await locator . click ( )
284+ await expect ( page ) . toHaveURL ( `${ BASE } 404.html#/404?lang=en` )
285+ await expect ( page . locator ( '#notfound-h2' ) ) . toHaveText ( 'NotFound H2' )
286+ } else {
287+ await expect ( locator ) . toHaveAttribute ( 'href' , '/404#/404?lang=en' )
288+ await expect ( locator ) . toHaveAttribute ( 'target' , '_blank' )
289+ }
290+ } )
291+ } )
0 commit comments