Skip to content

Commit 8fad735

Browse files
authored
fix(cli): parse --silent values properly (#8055)
1 parent 3bdf05d commit 8fad735

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

packages/vitest/src/node/cli/cli-config.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,19 @@ export const cliOptionsConfig: VitestCLIOptions = {
155155
silent: {
156156
description: 'Silent console output from tests. Use `\'passed-only\'` to see logs from failing tests only.',
157157
argument: '[value]',
158+
transform(value) {
159+
if (value === 'true' || value === 'yes' || value === true) {
160+
return true
161+
}
162+
if (value === 'false' || value === 'no' || value === false) {
163+
return false
164+
}
165+
if (value === 'passed-only') {
166+
return value
167+
}
168+
169+
throw new TypeError(`Unexpected value "--silent=${value}". Use "--silent=true ${value}" instead.`)
170+
},
158171
},
159172
hideSkippedTests: {
160173
description: 'Hide logs for skipped tests',

test/core/test/cli-test.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,20 @@ test('configure expect', () => {
342342
})
343343
})
344344

345+
test('silent', () => {
346+
expect(getCLIOptions('--silent')).toEqual({ silent: true })
347+
expect(getCLIOptions('--silent=true')).toEqual({ silent: true })
348+
expect(getCLIOptions('--silent=yes')).toEqual({ silent: true })
349+
350+
expect(getCLIOptions('--silent=false')).toEqual({ silent: false })
351+
expect(getCLIOptions('--silent=no')).toEqual({ silent: false })
352+
353+
expect(getCLIOptions('--silent=passed-only')).toEqual({ silent: 'passed-only' })
354+
expect(getCLIOptions('--silent=true example.test.ts')).toEqual({ silent: true })
355+
356+
expect(() => getCLIOptions('--silent example.test.ts')).toThrowErrorMatchingInlineSnapshot(`[TypeError: Unexpected value "--silent=example.test.ts". Use "--silent=true example.test.ts" instead.]`)
357+
})
358+
345359
test('public parseCLI works correctly', () => {
346360
expect(parseCLI('vitest dev')).toEqual({
347361
filter: [],

0 commit comments

Comments
 (0)