@@ -2,22 +2,42 @@ import type { Locator, Page } from "@playwright/test";
2
2
import { test as base } from "@playwright/test" ;
3
3
4
4
export class MonacoPage {
5
+ private usingMonaco = true ;
5
6
public readonly monacoEditor : Locator ;
6
7
constructor ( readonly page : Page ) {
7
8
this . monacoEditor = page . locator ( ".monaco-editor" ) . nth ( 0 ) ;
8
9
}
9
10
10
- async clearEditor ( ) {
11
- await this . monacoEditor . click ( ) ;
12
- await this . page . keyboard . press ( "ControlOrMeta+KeyA" ) ;
13
- await this . page . keyboard . press ( "Backspace" ) ;
14
- await this . page . keyboard . press ( "ControlOrMeta+KeyA" ) ;
15
- await this . page . keyboard . press ( "Backspace" ) ;
11
+ async toggleMonaco ( ) {
12
+ await this . page . getByText ( "settings" , { exact : true } ) . click ( ) ;
13
+ await this . page . getByText ( "Use Monaco Editor" ) . click ( ) ;
14
+ await this . page
15
+ . locator ( "header" )
16
+ . filter ( { hasText : / ^ S e t t i n g s $ / } )
17
+ . getByRole ( "link" )
18
+ . click ( ) ;
19
+ this . usingMonaco = ! this . usingMonaco ;
16
20
}
17
21
18
- async write ( text : string ) {
19
- await this . clearEditor ( ) ;
20
- await this . monacoEditor . click ( ) ;
22
+ async clearEditor ( editor : string ) {
23
+ if ( this . usingMonaco ) {
24
+ await this . monacoEditor . click ( ) ;
25
+ await this . page . keyboard . press ( "ControlOrMeta+KeyA" ) ;
26
+ await this . page . keyboard . press ( "Backspace" ) ;
27
+ await this . page . keyboard . press ( "ControlOrMeta+KeyA" ) ;
28
+ await this . page . keyboard . press ( "Backspace" ) ;
29
+ } else {
30
+ await this . page . getByTestId ( `editor-${ editor } ` ) . clear ( ) ;
31
+ }
32
+ }
33
+
34
+ async write ( text : string , editor : string ) {
35
+ await this . clearEditor ( editor ) ;
36
+ if ( this . usingMonaco ) {
37
+ await this . monacoEditor . click ( ) ;
38
+ } else {
39
+ await this . page . getByTestId ( `editor-${ editor } ` ) ;
40
+ }
21
41
for ( const line of text . split ( "\n" ) ) {
22
42
await this . page . keyboard . type ( `${ line } \n` ) ;
23
43
}
0 commit comments