@@ -54,52 +54,63 @@ module Mocks
54
54
receiver . foo ( 1.1 )
55
55
end
56
56
57
- it 'allows a `do...end` block implementation to be provided' do
58
- wrapped . to receive ( :foo ) do
59
- 4
57
+ context 'without yielding receiver' do
58
+ # when `yield_receiver_to_any_instance_implementation_blocks` is `true`
59
+ # the block arguments are different for `expect` and `expect_any_instance_of`
60
+ around do |example |
61
+ previous_value = RSpec ::Mocks . configuration . yield_receiver_to_any_instance_implementation_blocks?
62
+ RSpec ::Mocks . configuration . yield_receiver_to_any_instance_implementation_blocks = false
63
+ example . run
64
+ RSpec ::Mocks . configuration . yield_receiver_to_any_instance_implementation_blocks = previous_value
65
+ end
66
+
67
+ it 'allows a `do...end` block implementation to be provided' do
68
+ wrapped . to receive ( :foo ) do
69
+ 4
70
+ end
71
+
72
+ expect ( receiver . foo ) . to eq ( 4 )
60
73
end
61
74
62
- expect ( receiver . foo ) . to eq ( 4 )
63
- end
75
+ if RSpec ::Support ::RubyFeatures . kw_args_supported?
76
+ binding . eval ( <<-RUBY , __FILE__ , __LINE__ )
77
+ it 'allows a `do...end` block implementation with keyword args to be provided' do
78
+ wrapped.to receive(:foo) do |**kwargs|
79
+ kwargs[:kw]
80
+ end
64
81
65
- if RSpec ::Support ::RubyFeatures . kw_args_supported?
66
- binding . eval ( <<-RUBY , __FILE__ , __LINE__ )
67
- it 'allows a `do...end` block implementation with keyword args to be provided' do
68
- wrapped.to receive(:foo) do |**kwargs|
69
- kwargs[:kw]
82
+ expect(receiver.foo(kw: :arg)).to eq(:arg)
70
83
end
71
84
72
- expect(receiver.foo(kw: :arg)).to eq(:arg)
73
- end
85
+ it 'allows a `do...end` block implementation with optional keyword args to be provided' do
86
+ wrapped.to receive(:foo) do |kw: :arg|
87
+ kw
88
+ end
74
89
75
- it 'allows a `do...end` block implementation with optional keyword args to be provided' do
76
- wrapped.to receive(:foo) do |kw: :arg|
77
- kw
90
+ expect(receiver.foo(kw: 1)).to eq(1)
78
91
end
79
92
80
- expect(receiver.foo(kw: 1)).to eq(1)
81
- end
93
+ it 'allows a `do...end` block implementation with optional keyword args to be provided' do
94
+ wrapped.to receive(:foo) do |kw: :arg|
95
+ kw
96
+ end
82
97
83
- it 'allows a `do...end` block implementation with optional keyword args to be provided' do
84
- wrapped.to receive(:foo) do |kw: :arg|
85
- kw
98
+ expect(receiver.foo).to eq(:arg)
86
99
end
87
-
88
- expect(receiver.foo).to eq(:arg)
100
+ RUBY
89
101
end
90
- RUBY
91
- end
92
102
93
- if RSpec ::Support ::RubyFeatures . required_kw_args_supported?
94
- binding . eval ( <<-RUBY , __FILE__ , __LINE__ )
95
- it 'allows a `do...end` block implementation with required keyword args' do
96
- wrapped.to receive(:foo) do |kw:|
97
- kw
98
- end
103
+ if RSpec ::Support ::RubyFeatures . required_kw_args_supported?
104
+ binding . eval ( <<-RUBY , __FILE__ , __LINE__ )
105
+ it 'allows a `do...end` block implementation with required keyword args' do
106
+ wrapped.to receive(:foo) do |kw:|
107
+ kw
108
+ end
99
109
100
- expect(receiver.foo(kw: :arg)).to eq(:arg)
110
+ expect(receiver.foo(kw: :arg)).to eq(:arg)
111
+ end
112
+ RUBY
101
113
end
102
- RUBY
103
114
end
104
115
105
116
it 'allows chaining off a `do...end` block implementation to be provided' do
0 commit comments