Skip to content

Commit f98f6f1

Browse files
committed
refactor(cli): reuse coerceBooleanValue utility
1 parent 1853385 commit f98f6f1

3 files changed

Lines changed: 5 additions & 46 deletions

File tree

packages/cli/src/lib/implementation/set-verbose.middleware.int.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('setVerboseMiddleware', () => {
1414
[false, false, false],
1515
['True', undefined, true],
1616
['TRUE', undefined, true],
17-
[42, undefined, false],
17+
[0, undefined, false],
1818
[undefined, 'true', true],
1919
[true, 'False', false],
2020
])(
Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { GlobalOptions } from '@code-pushup/core';
22
import type { CoreConfig } from '@code-pushup/models';
3+
import { coerceBooleanValue } from '@code-pushup/utils';
34
import type { FilterOptions } from './filter.model.js';
45
import type { GeneralCliOptions } from './global.model';
56

@@ -21,8 +22,8 @@ import type { GeneralCliOptions } from './global.model';
2122
export function setVerboseMiddleware<
2223
T extends GeneralCliOptions & CoreConfig & FilterOptions & GlobalOptions,
2324
>(originalProcessArgs: T): T {
24-
const envVerbose = getNormalizedOptionValue(process.env['CP_VERBOSE']);
25-
const cliVerbose = getNormalizedOptionValue(originalProcessArgs.verbose);
25+
const envVerbose = coerceBooleanValue(process.env['CP_VERBOSE']);
26+
const cliVerbose = coerceBooleanValue(originalProcessArgs.verbose);
2627
const verboseEffect = cliVerbose ?? envVerbose ?? false;
2728

2829
// eslint-disable-next-line functional/immutable-data
@@ -33,20 +34,3 @@ export function setVerboseMiddleware<
3334
verbose: verboseEffect,
3435
};
3536
}
36-
37-
export function getNormalizedOptionValue(value: unknown): boolean | undefined {
38-
if (typeof value === 'boolean') {
39-
return value;
40-
}
41-
if (typeof value === 'string') {
42-
const lowerCaseValue = value.toLowerCase();
43-
if (lowerCaseValue === 'true') {
44-
return true;
45-
}
46-
if (lowerCaseValue === 'false') {
47-
return false;
48-
}
49-
}
50-
51-
return undefined;
52-
}

packages/cli/src/lib/implementation/set-verbose.middleware.unit.test.ts

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,7 @@
11
import { describe, expect, it, vi } from 'vitest';
2-
import {
3-
getNormalizedOptionValue,
4-
setVerboseMiddleware,
5-
} from './set-verbose.middleware.js';
2+
import { setVerboseMiddleware } from './set-verbose.middleware.js';
63

74
describe('setVerboseMiddleware', () => {
8-
it.each([
9-
[true, true],
10-
['true', true],
11-
['True', true],
12-
['TRUE', true],
13-
[false, false],
14-
['false', false],
15-
['False', false],
16-
['FALSE', false],
17-
[undefined, undefined],
18-
['undefined', undefined],
19-
['Whatever else', undefined],
20-
[0, undefined],
21-
[1, undefined],
22-
[null, undefined],
23-
])(
24-
'should return normalize value of `%j` option set as `%j`',
25-
(value, expected) => {
26-
expect(getNormalizedOptionValue(value)).toBe(expected);
27-
},
28-
);
29-
305
it.each([
316
[true, undefined, true],
327
[false, undefined, false],

0 commit comments

Comments
 (0)