diff --git a/spec/atom-environment-spec.coffee b/spec/atom-environment-spec.coffee index 3283b63d6..6271ea5d4 100644 --- a/spec/atom-environment-spec.coffee +++ b/spec/atom-environment-spec.coffee @@ -362,3 +362,16 @@ describe "AtomEnvironment", -> version = '1.7.0-dev-5340c91' expect(atom.getReleaseChannel()).toBe 'dev' + + describe "environment patching", -> + it "patches process.env on startup", -> + configDirPath = temp.mkdirSync() + fakeDocument = { + addEventListener: -> + removeEventListener: -> + head: document.createElement('head') + body: document.createElement('body') + } + atomEnvironment = new AtomEnvironment({applicationDelegate: atom.applicationDelegate, window, document: fakeDocument}) + + expect(process.env).toEqual atomEnvironment.project.getEnv() diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 8c79d66f6..d1e921d54 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -230,6 +230,10 @@ class AtomEnvironment extends Model checkPortableHomeWritable() + # Patch the `process.env` on startup to fix the problem first documented + # in #4126 + process.env = @project.getEnv() + attachSaveStateListeners: -> saveState = => @saveState({isUnloading: false}) unless @unloaded debouncedSaveState = _.debounce(saveState, @saveStateDebounceInterval)