From fb9be80282f31240a4660860fb2050c359cbd664 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Sat, 25 Feb 2017 00:06:41 -0600 Subject: [PATCH] fix: context should override parsed argv (#786) BREAKING CHANGE: context now takes precedence over argv and defaults --- test/yargs.js | 8 ++++++++ yargs.js | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/test/yargs.js b/test/yargs.js index 5d5771df8..6b50ae1c0 100644 --- a/test/yargs.js +++ b/test/yargs.js @@ -768,6 +768,14 @@ describe('yargs dsl tests', function () { a1.foo.should.equal('bar') a1.context.should.equal('look at me go!') }) + + // see https://github.com/yargs/yargs/issues/724 + it('overrides parsed value of argv with context object', function () { + var a1 = yargs.parse('-x=33', { + x: 42 + }) + a1.x.should.equal(42) + }) }) // yargs.parse(['foo', '--bar'], function (err, argv, output) {} diff --git a/yargs.js b/yargs.js index f39150db3..acaaa4461 100644 --- a/yargs.js +++ b/yargs.js @@ -935,7 +935,7 @@ function Yargs (processArgs, cwd, parentRequire) { options.configuration = pkgUp()['yargs'] || {} const parsed = Parser.detailed(args, options) var argv = parsed.argv - if (parseContext) argv = assign(parseContext, argv) + if (parseContext) argv = assign(argv, parseContext) var aliases = parsed.aliases argv.$0 = self.$0