Sha256: 476b8140701ca9910953543c2ae03c0468dc7db5e996e7dde4967646ce6d0ad1

Contents?: true

Size: 1.7 KB

Versions: 16

Compression:

Stored size: 1.7 KB

Contents

require 'dply/env'

module Dply
  describe Env do

    ORIGINAL_ENV = { "O1" => "1", "O2" => "2" }
    CURRENT_ENV = { "C1" => "1", "C2" => "2" }
    EXTRA_ENV = { "O1" => "E", "C1" => "E" }

    def stub_env(with_bundler:)
      allow(ENV).to receive(:to_h).and_return(CURRENT_ENV)
      if with_bundler
        stub_const("Bundler", "bundler")
        allow(Bundler).to receive(:original_env).and_return(ORIGINAL_ENV)
      else
        hide_const("Bundler")
      end
    end

    describe '.build_env (extra_env, bundled_env:)' do
      context "when bundler is defined and bundled_env: true" do
        it "merges current_env with extra_env" do
          stub_env with_bundler: true
          env = Env.build_env(EXTRA_ENV, bundled_env: true)
          expect(env).to eq(CURRENT_ENV.merge(EXTRA_ENV))
        end
      end

      context "when bundler is defined and bundled_env: false" do
        it "merges original_env with extra_env" do
          stub_env with_bundler: true
          env = Env.build_env(EXTRA_ENV, bundled_env: false)
          expect(env).to eq(ORIGINAL_ENV.merge(EXTRA_ENV))
        end
      end

      context "when bundler is not defined and bundled_env: true" do
        it "merges current_env with extra_env" do
          stub_env with_bundler: false
          env = Env.build_env(EXTRA_ENV, bundled_env: true)
          expect(env).to eq(CURRENT_ENV.merge(EXTRA_ENV))
        end
      end

      context "when bundler is defined and bundled_env: false" do
        it "merges current_env with extra_env" do
          stub_env with_bundler: false
          env = Env.build_env(EXTRA_ENV, bundled_env: true)
          expect(env).to eq(CURRENT_ENV.merge(EXTRA_ENV))
        end
      end

    end
  end
end


Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
dply-0.3.15 spec/dply/env_spec.rb
dply-0.3.14 spec/dply/env_spec.rb
dply-0.3.13 spec/dply/env_spec.rb
dply-0.3.12 spec/dply/env_spec.rb
dply-0.3.11 spec/dply/env_spec.rb
dply-0.3.10 spec/dply/env_spec.rb
dply-0.3.9 spec/dply/env_spec.rb
dply-0.3.8 spec/dply/env_spec.rb
dply-0.3.7 spec/dply/env_spec.rb
dply-0.3.6 spec/dply/env_spec.rb
dply-0.3.5 spec/dply/env_spec.rb
dply-0.3.4 spec/dply/env_spec.rb
dply-0.3.3 spec/dply/env_spec.rb
dply-0.3.2 spec/dply/env_spec.rb
dply-0.3.1 spec/dply/env_spec.rb
dply-0.3.0 spec/dply/env_spec.rb