1+ import { test , expect } from '@playwright/test' ;
2+
3+ test . beforeEach ( async ( { page } ) => {
4+ await page . goto ( '/testpage' ) ;
5+ } ) ;
6+
7+ [
8+ { selector : '.widget_mslswidget' , firstLink : { name : 'de_DE Deutsch' } , secondLink : { name : 'en_GB English' } } ,
9+ { selector : '.msls-menu' , firstLink : { name : 'de_DE' , exact : true } , secondLink : { name : 'en_GB' , exact : true } } ,
10+ ] . forEach ( ( { selector, firstLink, secondLink } ) => {
11+ test . describe ( ( ) => {
12+ test ( `testing with ${ selector } ${ firstLink . name } ${ secondLink . name } ` , async ( { page} ) => {
13+ const section = page . locator ( selector ) ;
14+
15+ let element = section . getByRole ( 'link' , firstLink ) . first ( ) ;
16+ await element . click ( ) ;
17+ await expect ( element ) . toHaveClass ( [ 'current_language' ] ) ;
18+
19+ element = section . getByRole ( 'link' , secondLink ) . first ( ) ;
20+ await element . click ( ) ;
21+ await expect ( element ) . toHaveClass ( [ 'current_language' ] ) ;
22+ } )
23+ } )
24+ } ) ;
25+
26+ [ 0 , 1 , 2 ] . forEach ( ( index ) => {
27+ test . describe ( ( ) => {
28+ test ( `testing with link nth(${ index } )` , async ( { page } ) => {
29+ let section = page . locator ( '.entry-content' ) ;
30+
31+ let element = section . getByRole ( 'link' , { name : 'de_DE Deutsch' } ) . nth ( index ) ;
32+ await element . click ( ) ;
33+ await expect ( element ) . toHaveClass ( [ 'current_language' ] ) ;
34+
35+ element = section . getByRole ( 'link' , { name : 'en_GB English' } ) . nth ( index ) ;
36+ await element . click ( ) ;
37+ await expect ( element ) . toHaveClass ( [ 'current_language' ] ) ;
38+ } )
39+ } )
40+ } ) ;
41+
42+ test ( `testing translation hint` , async ( { page } ) => {
43+ let section = page . locator ( '.entry-content' ) ;
44+
45+ await section . getByRole ( 'link' , { name : 'Deutsch' , exact : true } ) . click ( ) ;
46+ await expect ( section . getByRole ( 'link' , { name : 'English' , exact : true } ) ) . toHaveCount ( 0 ) ;
47+
48+ await section . getByRole ( 'link' , { name : 'English' , exact : true } ) . click ( ) ;
49+ await expect ( section . getByRole ( 'link' , { name : 'English' , exact : true } ) ) . toHaveCount ( 0 ) ;
50+ } ) ;
0 commit comments