summaryrefslogtreecommitdiff
path: root/spec/ruby/core/env/shared/key.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/env/shared/key.rb')
-rw-r--r--spec/ruby/core/env/shared/key.rb16
1 files changed, 14 insertions, 2 deletions
diff --git a/spec/ruby/core/env/shared/key.rb b/spec/ruby/core/env/shared/key.rb
index 43299beadb..fcb3a9b8c5 100644
--- a/spec/ruby/core/env/shared/key.rb
+++ b/spec/ruby/core/env/shared/key.rb
@@ -1,11 +1,23 @@
describe :env_key, shared: true do
+ before :each do
+ @saved_foo = ENV["foo"]
+ end
+
+ after :each do
+ ENV["foo"] = @saved_foo
+ end
+
it "returns the index associated with the passed value" do
ENV["foo"] = "bar"
ENV.send(@method, "bar").should == "foo"
- ENV.delete "foo"
end
it "returns nil if the passed value is not found" do
- ENV.send(@method, "should_never_be_set").should be_nil
+ ENV.delete("foo")
+ ENV.send(@method, "foo").should be_nil
+ end
+
+ it "raises TypeError if the argument is not a String and does not respond to #to_str" do
+ -> { ENV.send(@method, Object.new) }.should raise_error(TypeError, "no implicit conversion of Object into String")
end
end