@@ -428,9 +428,57 @@ test('should work with relative formatter path', async () => {
428
428
expect ( actual . exitCode ) . toBe ( 0 ) ;
429
429
} ) ;
430
430
431
+ test ( 'should print help' , async ( ) => {
432
+ const cwd = await gitBootstrap ( 'fixtures/default' ) ;
433
+ const actual = await cli ( [ '--help' ] , { cwd} ) ( ) ;
434
+ expect ( escapeCwd ( actual . stdout , cwd ) ) . toMatchInlineSnapshot ( `
435
+ "@commitlint/[email protected] - Lint your commit messages
436
+
437
+ [input] reads from stdin if --edit, --env, --from and --to are omitted
438
+
439
+ Options:
440
+ --color, -c toggle colored output [boolean] [default: true]
441
+ --config, -g path to the config file [string]
442
+ --cwd, -d directory to execute in
443
+ [string] [default: \\"__CWD__\\"]
444
+ --edit, -e read last commit message from the specified file or
445
+ fallbacks to ./.git/COMMIT_EDITMSG
446
+ [string] [default: false]
447
+ --env, -E check message in the file at path given by environment
448
+ variable value [string]
449
+ --extends, -x array of shareable configurations to extend [array]
450
+ --help-url, -H help url in error message [string]
451
+ --from, -f lower end of the commit range to lint; applies if
452
+ edit=false [string]
453
+ --format, -o output format of the results [string]
454
+ --parser-preset, -p configuration preset to use for
455
+ conventional-commits-parser [string]
456
+ --quiet, -q toggle console output [boolean] [default: false]
457
+ --to, -t upper end of the commit range to lint; applies if
458
+ edit=false [string]
459
+ --verbose, -V enable verbose output for reports without problems
460
+ [boolean]
461
+ -v, --version display version information [boolean]
462
+ -h, --help Show help [boolean]"
463
+ ` ) ;
464
+ } ) ;
465
+
466
+ test ( 'should print version' , async ( ) => {
467
+ const cwd = await gitBootstrap ( 'fixtures/default' ) ;
468
+ const pkg = require ( '../package.json' ) ;
469
+ const actual = await cli ( [ '--version' ] , { cwd} ) ( ) ;
470
+ expect ( actual . stdout ) . toMatch ( `@commitlint/cli@${ pkg . version } ` ) ;
471
+ } ) ;
472
+
431
473
async function writePkg ( payload : unknown , options : TestOptions ) {
432
474
const pkgPath = path . join ( options . cwd , 'package.json' ) ;
433
475
const pkg = JSON . parse ( await fs . readFile ( pkgPath , 'utf-8' ) ) ;
434
476
const result = merge ( pkg , payload ) ;
435
477
await fs . writeFile ( pkgPath , JSON . stringify ( result , null , ' ' ) ) ;
436
478
}
479
+
480
+ function escapeCwd ( value : string , cwd : string ) : string {
481
+ return value
482
+ . replace ( cwd , '__CWD__' )
483
+ . replace ( / \n [ ] + ( .+ _ _ C W D _ _ ) / , `\n${ ' ' . repeat ( cwd . length - 7 ) } $1` ) ;
484
+ }
0 commit comments