diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e390c2d84d..0897a8de8e03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Fixes +- `[jest-validate]` Show suggestion only when unrecognized cli param length is greater than 1 ([#10604](https://github.com/facebook/jest/pull/10604)) + ### Chore & Maintenance ### Performance diff --git a/packages/jest-validate/src/__tests__/__snapshots__/validateCLIOptions.test.js.snap b/packages/jest-validate/src/__tests__/__snapshots__/validateCLIOptions.test.js.snap index dc3b83921154..8de327977105 100644 --- a/packages/jest-validate/src/__tests__/__snapshots__/validateCLIOptions.test.js.snap +++ b/packages/jest-validate/src/__tests__/__snapshots__/validateCLIOptions.test.js.snap @@ -1,5 +1,15 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`does not show suggestion when unrecognized cli param length <= 1 1`] = ` +" Unrecognized CLI Parameter: + + Unrecognized option \\"l\\". + + CLI Options Documentation: + https://jestjs.io/docs/en/cli.html +" +`; + exports[`fails for multiple unknown options 1`] = ` " Unrecognized CLI Parameters: @@ -20,3 +30,13 @@ exports[`fails for unknown option 1`] = ` https://jestjs.io/docs/en/cli.html " `; + +exports[`shows suggestion when unrecognized cli param length > 1 1`] = ` +" Unrecognized CLI Parameter: + + Unrecognized option \\"hell\\". Did you mean \\"help\\"? + + CLI Options Documentation: + https://jestjs.io/docs/en/cli.html +" +`; diff --git a/packages/jest-validate/src/__tests__/validateCLIOptions.test.js b/packages/jest-validate/src/__tests__/validateCLIOptions.test.js index 5a4dabfbcf9c..05b06762b9d8 100644 --- a/packages/jest-validate/src/__tests__/validateCLIOptions.test.js +++ b/packages/jest-validate/src/__tests__/validateCLIOptions.test.js @@ -41,3 +41,25 @@ test('fails for multiple unknown options', () => { validateCLIOptions(argv, options), ).toThrowErrorMatchingSnapshot(); }); + +test('does not show suggestion when unrecognized cli param length <= 1', () => { + const options = ['$0', '_', 'help', 'h']; + const argv = { + $0: true, + l: true, + }; + expect(() => + validateCLIOptions(argv, options), + ).toThrowErrorMatchingSnapshot(); +}); + +test('shows suggestion when unrecognized cli param length > 1', () => { + const options = ['$0', '_', 'help', 'h']; + const argv = { + $0: true, + hell: true, + }; + expect(() => + validateCLIOptions(argv, options), + ).toThrowErrorMatchingSnapshot(); +}); diff --git a/packages/jest-validate/src/validateCLIOptions.ts b/packages/jest-validate/src/validateCLIOptions.ts index 72ad11aef1c9..875194ae798f 100644 --- a/packages/jest-validate/src/validateCLIOptions.ts +++ b/packages/jest-validate/src/validateCLIOptions.ts @@ -31,10 +31,10 @@ const createCLIValidationError = ( if (unrecognizedOptions.length === 1) { const unrecognized = unrecognizedOptions[0]; - const didYouMeanMessage = createDidYouMeanMessage( - unrecognized, - Array.from(allowedOptions), - ); + const didYouMeanMessage = + unrecognized.length > 1 + ? createDidYouMeanMessage(unrecognized, Array.from(allowedOptions)) + : ''; message = ` Unrecognized option ${chalk.bold(format(unrecognized))}.` + (didYouMeanMessage ? ` ${didYouMeanMessage}` : '');