From d62631d468131487e5ba55424e1d15e257cc7c08 Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Sat, 18 Feb 2017 10:38:27 -0800 Subject: [PATCH] fix: context should override parsed argv --- 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 b36812e5a..e0cadbde9 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