@@ -80,6 +80,102 @@ describe('CLI help output', () => {
8080 changed : 'HEAD' ,
8181 } ) ;
8282 } ) ;
83+
84+ it ( 'preserves nested coverage options when followed by --coverage' , ( ) => {
85+ const parsed = createCli ( ) . parse (
86+ [ 'node' , 'rstest' , 'run' , '--coverage.changed=HEAD' , '--coverage' ] ,
87+ { run : false } ,
88+ ) ;
89+
90+ expect ( parsed . options . coverage ) . toEqual ( {
91+ changed : 'HEAD' ,
92+ enabled : true ,
93+ } ) ;
94+ } ) ;
95+
96+ it ( 'allows --coverage=false to be mixed with nested coverage options' , ( ) => {
97+ const parsed = createCli ( ) . parse (
98+ [ 'node' , 'rstest' , 'run' , '--coverage=false' , '--coverage.changed=HEAD' ] ,
99+ { run : false } ,
100+ ) ;
101+
102+ expect ( parsed . options . coverage ) . toEqual ( {
103+ enabled : 'false' ,
104+ changed : 'HEAD' ,
105+ } ) ;
106+ } ) ;
107+
108+ it ( 'allows --pool shorthand to be mixed with nested pool options' , ( ) => {
109+ const parsed = createCli ( ) . parse (
110+ [ 'node' , 'rstest' , 'run' , '--pool' , 'forks' , '--pool.maxWorkers' , '1' ] ,
111+ { run : false } ,
112+ ) ;
113+
114+ expect ( parsed . options . pool ) . toEqual ( {
115+ type : 'forks' ,
116+ maxWorkers : 1 ,
117+ } ) ;
118+ } ) ;
119+
120+ it ( 'preserves nested pool options when followed by --pool shorthand' , ( ) => {
121+ const parsed = createCli ( ) . parse (
122+ [ 'node' , 'rstest' , 'run' , '--pool.maxWorkers' , '1' , '--pool' , 'forks' ] ,
123+ { run : false } ,
124+ ) ;
125+
126+ expect ( parsed . options . pool ) . toEqual ( {
127+ maxWorkers : 1 ,
128+ type : 'forks' ,
129+ } ) ;
130+ } ) ;
131+
132+ it ( 'allows --pool= shorthand to be mixed with nested pool options' , ( ) => {
133+ const parsed = createCli ( ) . parse (
134+ [ 'node' , 'rstest' , 'run' , '--pool=forks' , '--pool.maxWorkers=1' ] ,
135+ { run : false } ,
136+ ) ;
137+
138+ expect ( parsed . options . pool ) . toEqual ( {
139+ type : 'forks' ,
140+ maxWorkers : 1 ,
141+ } ) ;
142+ } ) ;
143+
144+ it ( 'allows --browser shorthand to be mixed with nested browser options' , ( ) => {
145+ const parsed = createCli ( ) . parse (
146+ [ 'node' , 'rstest' , 'run' , '--browser' , '--browser.name' , 'chromium' ] ,
147+ { run : false } ,
148+ ) ;
149+
150+ expect ( parsed . options . browser ) . toEqual ( {
151+ enabled : true ,
152+ name : 'chromium' ,
153+ } ) ;
154+ } ) ;
155+
156+ it ( 'preserves nested browser options when followed by --browser' , ( ) => {
157+ const parsed = createCli ( ) . parse (
158+ [ 'node' , 'rstest' , 'run' , '--browser.name' , 'chromium' , '--browser' ] ,
159+ { run : false } ,
160+ ) ;
161+
162+ expect ( parsed . options . browser ) . toEqual ( {
163+ name : 'chromium' ,
164+ enabled : true ,
165+ } ) ;
166+ } ) ;
167+
168+ it ( 'allows browser disabling shorthand to be mixed with nested browser options' , ( ) => {
169+ const parsed = createCli ( ) . parse (
170+ [ 'node' , 'rstest' , 'run' , '--no-browser' , '--browser.name' , 'chromium' ] ,
171+ { run : false } ,
172+ ) ;
173+
174+ expect ( parsed . options . browser ) . toEqual ( {
175+ enabled : false ,
176+ name : 'chromium' ,
177+ } ) ;
178+ } ) ;
83179} ) ;
84180
85181describe ( 'normalizeCliFilters' , ( ) => {
0 commit comments