From a8b97200b66483c53adf1a96f641cadceb79983d Mon Sep 17 00:00:00 2001 From: kevin9327 <5299031+kevin9327@users.noreply.github.com> Date: Mon, 5 Oct 2026 12:36:04 +0900 Subject: [PATCH] fix: parse debug and override in populate like config does --- lib/main.js | 4 ++-- tests/test-populate.js | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/main.js b/lib/main.js index 68d57475..ba87000c 100644 --- a/lib/main.js +++ b/lib/main.js @@ -351,8 +351,8 @@ function config (options) { // Populate process.env with parsed values function populate (processEnv, parsed, options = {}) { - const debug = Boolean(options && options.debug) - const override = Boolean(options && options.override) + const debug = parseBoolean(options && options.debug) + const override = parseBoolean(options && options.override) const populated = {} if (processEnv === null || typeof processEnv !== 'object' || parsed === null || typeof parsed !== 'object') { diff --git a/tests/test-populate.js b/tests/test-populate.js index 157f0af4..c72edc19 100644 --- a/tests/test-populate.js +++ b/tests/test-populate.js @@ -56,6 +56,32 @@ t.test('does write over keys already in processEnv if override turned on', ct => ct.equal(process.env.test, parsed.test) }) +t.test('does not write over keys already in processEnv if override is the string false', ct => { + ct.plan(1) + + const processEnv = { test: 'bar' } + const parsed = { test: 'test' } + + dotenv.populate(processEnv, parsed, { override: 'false' }) + + ct.equal(processEnv.test, 'bar') +}) + +t.test('does not log when debug is the string false', ct => { + ct.plan(1) + + const logStub = sinon.stub(console, 'log') + + const processEnv = { test: 'bar' } + const parsed = { test: 'test' } + + dotenv.populate(processEnv, parsed, { debug: 'false' }) + + ct.notOk(logStub.called) + + logStub.restore() +}) + t.test('logs any errors populating when in debug mode but override turned off', ct => { ct.plan(2)