From 5d33f308bcf11ca906e517f6c4310efa22b6a325 Mon Sep 17 00:00:00 2001 From: Feng Yu Date: Mon, 14 Nov 2022 00:46:15 +0800 Subject: [PATCH] fix: get correct env from npm config `npm config set VAR VAL` will inject `npm_config_var=val` environment variable. This commit will solve this issue Closes: #24556 --- cli/lib/util.js | 5 +++++ cli/test/lib/util_spec.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/cli/lib/util.js b/cli/lib/util.js index 6c42b3f58780..1a5e54899018 100644 --- a/cli/lib/util.js +++ b/cli/lib/util.js @@ -533,6 +533,7 @@ const util = { la(is.unemptyString(varName), 'expected environment variable name, not', varName) const configVarName = `npm_config_${varName}` + const configVarNameLower = configVarName.toLowerCase() const packageConfigVarName = `npm_package_config_${varName}` let result @@ -545,6 +546,10 @@ const util = { debug(`Using ${varName} from npm config`) result = process.env[configVarName] + } else if (process.env.hasOwnProperty(configVarNameLower)) { + debug(`Using ${varName.toLowerCase()} from npm config`) + + result = process.env[configVarNameLower] } else if (process.env.hasOwnProperty(packageConfigVarName)) { debug(`Using ${varName} from package.json config`) diff --git a/cli/test/lib/util_spec.js b/cli/test/lib/util_spec.js index 7a347e11294a..008f4719e2fa 100644 --- a/cli/test/lib/util_spec.js +++ b/cli/test/lib/util_spec.js @@ -543,6 +543,11 @@ describe('util', () => { expect(util.getEnv('CYPRESS_FOO')).to.eql('') }) + it('npm config set should work', () => { + process.env.npm_config_cypress_foo_foo = 'bazz' + expect(util.getEnv('CYPRESS_FOO_FOO')).to.eql('bazz') + }) + it('throws on non-string name', () => { expect(() => { util.getEnv()