summaryrefslogtreecommitdiff
path: root/spec/ruby/core/env/except_spec.rb
blob: cfe5865abe36e1fa7254b4ae235bfe91273676ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require_relative 'spec_helper'
require_relative 'shared/to_hash'

ruby_version_is "3.0" do
  describe "ENV.except" do
    before do
      @orig_hash = ENV.to_hash
    end

    after do
      ENV.replace @orig_hash
    end

    # Testing the method without arguments is covered via
    it_behaves_like :env_to_hash, :except

    it "returns a hash without the requested subset" do
      ENV.clear

      ENV['one'] = '1'
      ENV['two'] = '2'
      ENV['three'] = '3'

      ENV.except('one', 'three').should == { 'two' => '2' }
    end

    it "ignores keys not present in the original hash" do
      ENV.clear

      ENV['one'] = '1'
      ENV['two'] = '2'

      ENV.except('one', 'three').should == { 'two' => '2' }
    end
  end
end