summaryrefslogtreecommitdiff
path: root/spec/ruby/language
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2020-09-30 12:21:48 +0200
committerBenoit Daloze <eregontp@gmail.com>2020-09-30 12:21:48 +0200
commit201d50164016bc519041af302f47d92f314abac5 (patch)
tree688544ac063d8a3825d96474055f5c11ad471972 /spec/ruby/language
parentce986b41caa1f23b6d07914b8eca62fdff24e034 (diff)
Update to ruby/spec@9277d27
Diffstat (limited to 'spec/ruby/language')
-rw-r--r--spec/ruby/language/def_spec.rb39
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