From 05dc4a5ecdffbb30b49e100857c4bffe36f86d16 Mon Sep 17 00:00:00 2001 From: Feng Yu Date: Fri, 2 Dec 2022 05:43:24 +0800 Subject: [PATCH] fix: get correct env from npm config (#24664) * 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 * Disable commercial recommendations for system tests. * Disable commercial recommendations * Update system-tests/lib/system-tests.ts * Revert changes * Update cli/test/lib/util_spec.js * Update cli/test/lib/util_spec.js Co-authored-by: Matt Henkes --- 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 6c42b3f587..1a5e548990 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 7a347e1129..008f4719e2 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()