From 41621061349017b7a32507665f011aae1f66e8be Mon Sep 17 00:00:00 2001 From: Albert Chmilevski Date: Sat, 22 Oct 2022 11:58:01 +0300 Subject: [PATCH] Make sure to take into account setting to false arguments that are true by default. --- packages/arg-parser/src/arg-mapper.spec.ts | 10 ++++++++++ packages/arg-parser/src/arg-mapper.ts | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/arg-parser/src/arg-mapper.spec.ts b/packages/arg-parser/src/arg-mapper.spec.ts index 2752cb45dd..7aa593b55c 100644 --- a/packages/arg-parser/src/arg-mapper.spec.ts +++ b/packages/arg-parser/src/arg-mapper.spec.ts @@ -105,6 +105,16 @@ describe('arg-mapper.mapCliToDriver', () => { }); }); + context('when cli args have retryWrites set to false', () => { + const cliOptions: CliOptions = { retryWrites: false }; + + it('maps the same argument', () => { + expect(optionsTest(cliOptions)).to.deep.equal({ + cs: 'mongodb://localhost/?retryWrites=false' + }); + }); + }); + context('when cli args have tls', () => { const cliOptions: CliOptions = { tls: true }; diff --git a/packages/arg-parser/src/arg-mapper.ts b/packages/arg-parser/src/arg-mapper.ts index 2db78037bd..463987dcbf 100644 --- a/packages/arg-parser/src/arg-mapper.ts +++ b/packages/arg-parser/src/arg-mapper.ts @@ -147,7 +147,7 @@ function mapOption( export function mapCliToDriver(options: Readonly, i: Readonly): ConnectionInfo { for (const cliOption of Object.keys(options) as (keyof CliOptions)[]) { const optionValue = options[cliOption]; - if (optionValue) { + if (optionValue !== null && optionValue !== undefined && optionValue !== '') { i = mapOption(i, cliOption, optionValue); } }