From 163dd91ecfcb3976084c3a833276ae21d6b8e4b6 Mon Sep 17 00:00:00 2001 From: Dinika Saxena Date: Thu, 5 Dec 2024 13:20:36 +0100 Subject: [PATCH] Revert timeout and slow as string flags so that they can accept human readable values Signed-off-by: Dinika Saxena --- lib/cli/options.js | 8 ++++---- lib/cli/run-option-metadata.js | 15 ++++++++++++--- test/node-unit/cli/options.spec.js | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/cli/options.js b/lib/cli/options.js index 26199093be..09351957b4 100644 --- a/lib/cli/options.js +++ b/lib/cli/options.js @@ -112,8 +112,8 @@ const nargOpts = types.array * @ignore */ const createErrorForNumericPositionalArg = ( - allArgs, numericArg, + allArgs, parsedResult ) => { // A flag for `numericArg` exists if: @@ -124,7 +124,7 @@ const createErrorForNumericPositionalArg = ( return ( isMochaFlag(arg) && allArgs[index + 1] === String(numericArg) && - parsedResult[normalizedArg] !== numericArg + parsedResult[normalizedArg] !== String(numericArg) ); }); @@ -157,7 +157,7 @@ const parse = (args = [], defaultValues = {}, ...configObjects) => { // are ALL boolean flags. // 4. we can then reapply the values after yargs-parser is done. const allArgs = Array.isArray(args) ? args : args.split(' '); - const nodeArgs = allArgs.reduce((acc, arg, index, allArgs) => { + const nodeArgs = allArgs.reduce((acc, arg) => { const pair = arg.split('='); let flag = pair[0]; if (isNodeFlag(flag, false)) { @@ -187,8 +187,8 @@ const parse = (args = [], defaultValues = {}, ...configObjects) => { const numericPositionalArg = result.argv._.find(arg => isNumeric(arg)); if (numericPositionalArg) { createErrorForNumericPositionalArg( - allArgs, numericPositionalArg, + allArgs, result.argv ); } diff --git a/lib/cli/run-option-metadata.js b/lib/cli/run-option-metadata.js index 0aabd2ad93..df967097a7 100644 --- a/lib/cli/run-option-metadata.js +++ b/lib/cli/run-option-metadata.js @@ -50,8 +50,17 @@ const TYPES = (exports.types = { 'sort', 'watch' ], - number: ['retries', 'jobs', 'slow', 'timeout'], - string: ['config', 'fgrep', 'grep', 'package', 'reporter', 'ui'] + number: ['retries', 'jobs'], + string: [ + 'config', + 'fgrep', + 'grep', + 'package', + 'reporter', + 'ui', + 'slow', + 'timeout' + ] }); /** @@ -108,7 +117,7 @@ exports.isMochaFlag = flag => { /** * Returns expected yarg option type for a given mocha flag. - * @param {string} flag - Flag to check (can be with out without leading "--"") + * @param {string} flag - Flag to check (can be with or without leading dashes "--"") * @returns {string | undefined} - If flag is a valid mocha flag, the expected type of argument for this flag is returned, otherwise undefined is returned. * @private */ diff --git a/test/node-unit/cli/options.spec.js b/test/node-unit/cli/options.spec.js index cb456869ae..f5ce73da15 100644 --- a/test/node-unit/cli/options.spec.js +++ b/test/node-unit/cli/options.spec.js @@ -527,7 +527,7 @@ describe('options', function () { loadOptions('--timeout 500'), 'to have property', 'timeout', - 500 + '500' ); });