diff options
author | Benoit Daloze <eregontp@gmail.com> | 2020-09-30 12:21:48 +0200 |
---|---|---|
committer | Benoit Daloze <eregontp@gmail.com> | 2020-09-30 12:21:48 +0200 |
commit | 201d50164016bc519041af302f47d92f314abac5 (patch) | |
tree | 688544ac063d8a3825d96474055f5c11ad471972 /spec/ruby/language | |
parent | ce986b41caa1f23b6d07914b8eca62fdff24e034 (diff) |
Update to ruby/spec@9277d27
Diffstat (limited to 'spec/ruby/language')
-rw-r--r-- | spec/ruby/language/def_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/ruby/language/def_spec.rb b/spec/ruby/language/def_spec.rb index 00655b2b12..6b0be19d90 100644 --- a/spec/ruby/language/def_spec.rb +++ b/spec/ruby/language/def_spec.rb @@ -89,6 +89,26 @@ describe "An instance method" do def foo(a); end -> { foo 1, 2 }.should raise_error(ArgumentError, 'wrong number of arguments (given 2, expected 1)') end + + it "raises FrozenError with the correct class name" do + -> { + Module.new do + self.freeze + def foo; end + end + }.should raise_error(FrozenError) { |e| + e.message.should.start_with? "can't modify frozen module" + } + + -> { + Class.new do + self.freeze + def foo; end + end + }.should raise_error(FrozenError){ |e| + e.message.should.start_with? "can't modify frozen class" + } + end end describe "An instance method definition with a splat" do @@ -266,6 +286,25 @@ describe "A singleton method definition" do obj.freeze -> { def obj.foo; end }.should raise_error(FrozenError) end + + it "raises FrozenError with the correct class name" do + obj = Object.new + obj.freeze + -> { def obj.foo; end }.should raise_error(FrozenError){ |e| + e.message.should.start_with? "can't modify frozen object" + } + + c = obj.singleton_class + -> { def c.foo; end }.should raise_error(FrozenError){ |e| + e.message.should.start_with? "can't modify frozen Class" + } + + m = Module.new + m.freeze + -> { def m.foo; end }.should raise_error(FrozenError){ |e| + e.message.should.start_with? "can't modify frozen Module" + } + end end describe "Redefining a singleton method" do |