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