@@ -16,27 +16,132 @@ test("should switch language and show options for each", async ({ page }) => {
1616
1717 const languageSelect = page . getByRole ( "combobox" , { name : "Language" } ) ;
1818
19- await languageSelect . click ( ) ;
20- await page . getByRole ( "option" , { name : "JSON" } ) . click ( ) ;
21- await expect (
22- page . getByRole ( "switch" , { name : "Allow Trailing Commas" } ) ,
23- ) . toBeVisible ( ) ;
24-
25- await languageSelect . click ( ) ;
26- await page . getByRole ( "option" , { name : "Markdown" } ) . click ( ) ;
27- await expect (
28- page . getByRole ( "combobox" , { name : "Front Matter" } ) ,
29- ) . toBeVisible ( ) ;
30-
31- await languageSelect . click ( ) ;
32- await page . getByRole ( "option" , { name : "CSS" } ) . click ( ) ;
33- await expect (
34- page . getByRole ( "switch" , { name : "Tolerant Parsing" } ) ,
35- ) . toBeVisible ( ) ;
36-
37- await languageSelect . click ( ) ;
38- await page . getByRole ( "option" , { name : "HTML" } ) . click ( ) ;
39- await expect (
40- page . getByRole ( "combobox" , { name : "Template Engine Syntax" } ) ,
41- ) . toBeVisible ( ) ;
19+ // JavaScript
20+ await test . step ( "should show JavaScript options when JavaScript is selected" , async ( ) => {
21+ await languageSelect . click ( ) ;
22+ await page
23+ . getByRole ( "option" , { exact : true , name : "JavaScript" } )
24+ . click ( ) ;
25+
26+ // `Language` Combobox
27+ await expect (
28+ page . getByRole ( "combobox" , { exact : true , name : "Language" } ) ,
29+ ) . toHaveText ( "JavaScript" ) ;
30+
31+ // `Parser` Combobox
32+ await expect (
33+ page . getByRole ( "combobox" , { exact : true , name : "Parser" } ) ,
34+ ) . toHaveText ( "Espree" ) ;
35+
36+ // `Source Type` Combobox
37+ await expect (
38+ page . getByRole ( "combobox" , { exact : true , name : "Source Type" } ) ,
39+ ) . toHaveText ( "Module" ) ;
40+
41+ // `ECMAScript Version` Combobox
42+ await expect (
43+ page . getByRole ( "combobox" , {
44+ exact : true ,
45+ name : "ECMAScript Version" ,
46+ } ) ,
47+ ) . toHaveText ( "Latest" ) ;
48+
49+ // `JSX` Switch
50+ await expect (
51+ page . getByRole ( "switch" , {
52+ exact : true ,
53+ name : "JSX" ,
54+ } ) ,
55+ ) . toBeVisible ( ) ;
56+ } ) ;
57+
58+ // JSON
59+ await test . step ( "should show JSON options when JSON is selected" , async ( ) => {
60+ await languageSelect . click ( ) ;
61+ await page . getByRole ( "option" , { exact : true , name : "JSON" } ) . click ( ) ;
62+
63+ // `Language` Combobox
64+ await expect (
65+ page . getByRole ( "combobox" , { exact : true , name : "Language" } ) ,
66+ ) . toHaveText ( "JSON" ) ;
67+
68+ // `Mode` Combobox
69+ await expect (
70+ page . getByRole ( "combobox" , { exact : true , name : "Mode" } ) ,
71+ ) . toHaveText ( "jsonc" ) ;
72+
73+ // `Allow Trailing Commas` Switch
74+ await expect (
75+ page . getByRole ( "switch" , {
76+ exact : true ,
77+ name : "Allow Trailing Commas" ,
78+ } ) ,
79+ ) . toBeVisible ( ) ;
80+ } ) ;
81+
82+ // Markdown
83+ await test . step ( "should show Markdown options when Markdown is selected" , async ( ) => {
84+ await languageSelect . click ( ) ;
85+ await page
86+ . getByRole ( "option" , { exact : true , name : "Markdown" } )
87+ . click ( ) ;
88+
89+ // `Language` Combobox
90+ await expect (
91+ page . getByRole ( "combobox" , { exact : true , name : "Language" } ) ,
92+ ) . toHaveText ( "Markdown" ) ;
93+
94+ // `Mode` Combobox
95+ await expect (
96+ page . getByRole ( "combobox" , { exact : true , name : "Mode" } ) ,
97+ ) . toHaveText ( "CommonMark" ) ;
98+
99+ // `Front Matter` Combobox
100+ await expect (
101+ page . getByRole ( "combobox" , { exact : true , name : "Front Matter" } ) ,
102+ ) . toBeVisible ( ) ;
103+ } ) ;
104+
105+ // CSS
106+ await test . step ( "should show CSS options when CSS is selected" , async ( ) => {
107+ await languageSelect . click ( ) ;
108+ await page . getByRole ( "option" , { exact : true , name : "CSS" } ) . click ( ) ;
109+
110+ // `Language` Combobox
111+ await expect (
112+ page . getByRole ( "combobox" , { exact : true , name : "Language" } ) ,
113+ ) . toHaveText ( "CSS" ) ;
114+
115+ // `Tolerant Parsing` Switch
116+ await expect (
117+ page . getByRole ( "switch" , { exact : true , name : "Tolerant Parsing" } ) ,
118+ ) . toBeVisible ( ) ;
119+ } ) ;
120+
121+ // HTML
122+ await test . step ( "should show HTML options when HTML is selected" , async ( ) => {
123+ await languageSelect . click ( ) ;
124+ await page . getByRole ( "option" , { exact : true , name : "HTML" } ) . click ( ) ;
125+
126+ // `Language` Combobox
127+ await expect (
128+ page . getByRole ( "combobox" , { exact : true , name : "Language" } ) ,
129+ ) . toHaveText ( "HTML" ) ;
130+
131+ // `Template Engine Syntax` Combobox
132+ await expect (
133+ page . getByRole ( "combobox" , {
134+ exact : true ,
135+ name : "Template Engine Syntax" ,
136+ } ) ,
137+ ) . toBeVisible ( ) ;
138+
139+ // `Front Matter` Switch
140+ await expect (
141+ page . getByRole ( "switch" , {
142+ exact : true ,
143+ name : "Front Matter" ,
144+ } ) ,
145+ ) . toBeVisible ( ) ;
146+ } ) ;
42147} ) ;
0 commit comments