67 lines
2.6 KiB
Diff
67 lines
2.6 KiB
Diff
|
From 871eb31e3bfe50705ca57e754771aa1e0164f12d Mon Sep 17 00:00:00 2001
|
||
|
From: Myron Marston <myron.marston@gmail.com>
|
||
|
Date: Sat, 30 Dec 2017 17:45:43 -0800
|
||
|
Subject: [PATCH 1/2] Skip spec that does not apply to Ruby 2.5.
|
||
|
|
||
|
Ruby 2.5 has removed the ability to access top-level constants
|
||
|
via a confusing nested form (e.g. `MyClass::Hash`), so we no
|
||
|
longer need this spec there.
|
||
|
|
||
|
For #1192.
|
||
|
---
|
||
|
spec/rspec/mocks/mutate_const_spec.rb | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/spec/rspec/mocks/mutate_const_spec.rb b/spec/rspec/mocks/mutate_const_spec.rb
|
||
|
index fe8d4128..9d80dd73 100644
|
||
|
--- a/spec/rspec/mocks/mutate_const_spec.rb
|
||
|
+++ b/spec/rspec/mocks/mutate_const_spec.rb
|
||
|
@@ -170,7 +170,7 @@ def change_const_value_to(value)
|
||
|
expect(::Hash).to equal(top_level_hash)
|
||
|
end
|
||
|
|
||
|
- it 'does not affect the ability to access the top-level constant from nested contexts', :silence_warnings do
|
||
|
+ it 'does not affect the ability to access the top-level constant from nested contexts', :silence_warnings, :if => RUBY_VERSION < '2.5' do
|
||
|
top_level_hash = ::Hash
|
||
|
|
||
|
hide_const("TestClass::Hash")
|
||
|
|
||
|
From 783923d6879a2f9df9fee8ef24cecca6ac21136e Mon Sep 17 00:00:00 2001
|
||
|
From: Myron Marston <myron.marston@gmail.com>
|
||
|
Date: Sat, 30 Dec 2017 23:35:27 -0800
|
||
|
Subject: [PATCH 2/2] Make spec less brittle.
|
||
|
|
||
|
On Ruby 2.5, this spec failed, apparently due to the fact that
|
||
|
Method equality has changed on 2.5 slightly. The method instances
|
||
|
have always been different but 2.4 and before considered them
|
||
|
equivalent. Instead, we can show that the two method objects
|
||
|
_behave_ the same, which is what we really care about.
|
||
|
|
||
|
Fixes #1192.
|
||
|
---
|
||
|
spec/rspec/mocks/and_wrap_original_spec.rb | 9 +++++----
|
||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/spec/rspec/mocks/and_wrap_original_spec.rb b/spec/rspec/mocks/and_wrap_original_spec.rb
|
||
|
index df9cae46..2d4d0a8b 100644
|
||
|
--- a/spec/rspec/mocks/and_wrap_original_spec.rb
|
||
|
+++ b/spec/rspec/mocks/and_wrap_original_spec.rb
|
||
|
@@ -26,12 +26,13 @@ def results
|
||
|
}.to raise_error NameError
|
||
|
end
|
||
|
|
||
|
- it "passes in the original method" do
|
||
|
- value = nil
|
||
|
+ it "passes along the original method" do
|
||
|
+ passed_method = nil
|
||
|
original_method = instance.method(:results)
|
||
|
- allow_it.to receive(:results).and_wrap_original { |m| value = m }
|
||
|
+ allow_it.to receive(:results).and_wrap_original { |m| passed_method = m }
|
||
|
instance.results
|
||
|
- expect(value).to eq original_method
|
||
|
+
|
||
|
+ expect(passed_method.call).to eq(original_method.call)
|
||
|
end
|
||
|
|
||
|
it "passes along the message arguments" do
|