[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
12

Configure Feed

Select the types of activity you want to include in your feed.

fix(cli): parse `--browser=<name>` correctly (#5179)

authored by

Ari Perkkiö and committed by
GitHub
(Feb 12, 2024, 3:55 PM +0100) 656e210b 828858f8

+39 -8
+36 -7
test/core/test/cli-test.test.ts
··· 3 3 4 4 const vitestCli = createCLI() 5 5 6 - function parseArguments(commands: string, full = false) { 6 + function parseArguments(commands: string, full = false, includeArgs = false) { 7 7 const cliArgs = commands.trim().replace(/\s+/g, ' ').split(' ') 8 - const { options } = vitestCli.parse(['node', '/index.js', ...cliArgs], { 8 + const { options, args } = vitestCli.parse(['node', '/index.js', ...cliArgs], { 9 9 run: false, 10 10 }) 11 11 // remove -- and color from the options since they are always present ··· 13 13 delete options['--'] 14 14 delete options.color 15 15 } 16 + 17 + if (includeArgs) 18 + return { options, args } 19 + 16 20 return options 17 21 } 18 22 ··· 149 153 `) 150 154 151 155 expect(parseArguments(` 152 - --reporter json 153 - --reporter=default 154 - --coverage.reporter=json 155 - --coverage.reporter html 156 - --coverage.extension=ts 156 + --reporter json 157 + --reporter=default 158 + --coverage.reporter=json 159 + --coverage.reporter html 160 + --coverage.extension=ts 157 161 --coverage.extension=tsx 158 162 `)).toMatchInlineSnapshot(` 159 163 { ··· 216 220 expect(parseArguments('--cache.dir .\\test\\cache.json')).toEqual({ 217 221 cache: { dir: 'test/cache.json' }, 218 222 }) 223 + }) 224 + 225 + test('browser as implicit boolean', () => { 226 + const { options, args } = parseArguments('--browser', false, true) 227 + expect(options).toEqual({ browser: { enabled: true } }) 228 + expect(args).toEqual([]) 229 + }) 230 + 231 + test('browser as explicit boolean', () => { 232 + const { options, args } = parseArguments('--browser=true', false, true) 233 + expect(options).toEqual({ browser: { enabled: true } }) 234 + expect(args).toEqual([]) 235 + }) 236 + 237 + test('browser as explicit boolean with space', () => { 238 + const { options, args } = parseArguments('--browser true', false, true) 239 + expect(options).toEqual({ browser: { enabled: true } }) 240 + expect(args).toEqual([]) 241 + }) 242 + 243 + test('browser by name', () => { 244 + const { options, args } = parseArguments('--browser=firefox', false, true) 245 + 246 + expect(args).toEqual([]) 247 + expect(options).toEqual({ browser: { enabled: true, name: 'firefox' } }) 219 248 })
+3 -1
packages/vitest/src/node/cli/cli-config.ts
··· 303 303 }, 304 304 browser: { 305 305 description: 'Run tests in the browser. Equivalent to --browser.enabled (default: false)', 306 - argument: '', // allow boolean 306 + argument: '<name>', 307 307 transform(browser) { 308 308 if (typeof browser === 'boolean') 309 309 return { enabled: browser } 310 + if (browser === 'true' || browser === 'false') 311 + return { enabled: browser !== 'false' } 310 312 if (typeof browser === 'string') 311 313 return { enabled: true, name: browser } 312 314 return browser