Sha256: 4f14b2ce92edc9c2b582d446f9b1e48c041e0d8117611a38e609c83edaaef774

Contents?: true

Size: 1.34 KB

Versions: 12

Compression:

Stored size: 1.34 KB

Contents

require 'spec_helper'

describe FeduxOrg::Stdlib::Environment do
  context '#isolated_environment' do
    it 'runs command in isolated environment' do
      klass = Class.new do
        include FeduxOrg::Stdlib::Environment 

        def test_env
          isolated_environment 'TEST_VAR' => 'this is a test' do
            ENV['TEST_VAR']
          end
        end
      end

      expect( klass.new.test_env ).to eq( 'this is a test' )
    end

    it 'let you define an environment before running a command' do
      klass = Class.new do
        include FeduxOrg::Stdlib::Environment 

        def test_env
          isolated_environment( {}, { clear: true } ) do

            #are set by the terminal and can hardly be cleared
            ENV.delete( 'COLUMNS' )
            ENV.delete( 'LINES' )

            ENV.to_hash
          end
        end
      end

      expect( klass.new.test_env ).to eq( {} )
    end

    it 'restores environment although an exception occured' do
      klass = Class.new do
        include FeduxOrg::Stdlib::Environment 

        def test_env
          ENV['TEST_VAR'] = 'TEST'

          begin
            isolated_environment( {}, { clear: true } ) do
              raise
            end
          rescue
          end

          ENV['TEST_VAR']
        end
      end

      expect( klass.new.test_env ).to eq( 'TEST' )
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
fedux_org-stdlib-0.3.2 spec/environment_spec.rb
fedux_org-stdlib-0.3.0 spec/environment_spec.rb
fedux_org-stdlib-0.2.1 spec/environment_spec.rb
fedux_org-stdlib-0.1.3 spec/environment_spec.rb
fedux_org-stdlib-0.1.2 spec/environment_spec.rb
fedux_org-stdlib-0.1.1 spec/environment_spec.rb
fedux_org-stdlib-0.1.0 spec/environment_spec.rb
fedux_org-stdlib-0.0.39 spec/environment_spec.rb
fedux_org-stdlib-0.0.38 spec/environment_spec.rb
fedux_org-stdlib-0.0.37 spec/environment_spec.rb
fedux_org-stdlib-0.0.36 spec/environment_spec.rb
fedux_org-stdlib-0.0.35 spec/environment_spec.rb