transpec 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -985,9 +985,9 @@ module Transpec
985
985
  end
986
986
  end
987
987
 
988
- describe '#remove_allowance_for_no_message!' do
988
+ describe '#remove_no_message_allowance!' do
989
989
  before do
990
- method_stub_object.remove_allowance_for_no_message!
990
+ method_stub_object.remove_no_message_allowance!
991
991
  end
992
992
 
993
993
  context 'when it is `subject.stub(:method).any_number_of_times` form' do
@@ -1014,6 +1014,12 @@ module Transpec
1014
1014
  it 'removes `.any_number_of_times`' do
1015
1015
  rewritten_source.should == expected_source
1016
1016
  end
1017
+
1018
+ it 'adds record ' \
1019
+ '`obj.stub(:message).any_number_of_times` -> `obj.stub(:message)`' do
1020
+ record.original_syntax.should == 'obj.stub(:message).any_number_of_times'
1021
+ record.converted_syntax.should == 'obj.stub(:message)'
1022
+ end
1017
1023
  end
1018
1024
 
1019
1025
  context 'when it is `subject.stub(:method).at_least(0)` form' do
@@ -1040,6 +1046,12 @@ module Transpec
1040
1046
  it 'removes `.at_least(0)`' do
1041
1047
  rewritten_source.should == expected_source
1042
1048
  end
1049
+
1050
+ it 'adds record ' \
1051
+ '`obj.stub(:message).at_least(0)` -> `obj.stub(:message)`' do
1052
+ record.original_syntax.should == 'obj.stub(:message).at_least(0)'
1053
+ record.converted_syntax.should == 'obj.stub(:message)'
1054
+ end
1043
1055
  end
1044
1056
 
1045
1057
  context 'when it is `subject.stub(:method)` form' do
@@ -1059,6 +1071,91 @@ module Transpec
1059
1071
  end
1060
1072
  end
1061
1073
 
1074
+ describe '#remove_useless_and_return!' do
1075
+ before do
1076
+ method_stub_object.remove_useless_and_return!
1077
+ end
1078
+
1079
+ context 'when it is `subject.stub(:method).and_return { value }` form' do
1080
+ let(:source) do
1081
+ <<-END
1082
+ describe 'example' do
1083
+ it 'responds to #foo and returns 1' do
1084
+ subject.stub(:foo).and_return { 1 }
1085
+ end
1086
+ end
1087
+ END
1088
+ end
1089
+
1090
+ let(:expected_source) do
1091
+ <<-END
1092
+ describe 'example' do
1093
+ it 'responds to #foo and returns 1' do
1094
+ subject.stub(:foo) { 1 }
1095
+ end
1096
+ end
1097
+ END
1098
+ end
1099
+
1100
+ it 'converts into `subject.stub(:method) { value }` form' do
1101
+ rewritten_source.should == expected_source
1102
+ end
1103
+
1104
+ it 'adds record `obj.stub(:message).and_return { value }` -> `obj.stub(:message) { value }`' do
1105
+ record.original_syntax.should == 'obj.stub(:message).and_return { value }'
1106
+ record.converted_syntax.should == 'obj.stub(:message) { value }'
1107
+ end
1108
+ end
1109
+
1110
+ context 'when it is `subject.stub(:method).and_return` form' do
1111
+ let(:source) do
1112
+ <<-END
1113
+ describe 'example' do
1114
+ it 'responds to #foo' do
1115
+ subject.stub(:foo).and_return
1116
+ end
1117
+ end
1118
+ END
1119
+ end
1120
+
1121
+ let(:expected_source) do
1122
+ <<-END
1123
+ describe 'example' do
1124
+ it 'responds to #foo' do
1125
+ subject.stub(:foo)
1126
+ end
1127
+ end
1128
+ END
1129
+ end
1130
+
1131
+ it 'converts into `subject.stub(:method)` form' do
1132
+ rewritten_source.should == expected_source
1133
+ end
1134
+
1135
+ it 'adds record `obj.stub(:message).and_return` -> `obj.stub(:message)`' do
1136
+ record.original_syntax.should == 'obj.stub(:message).and_return'
1137
+ record.converted_syntax.should == 'obj.stub(:message)'
1138
+ end
1139
+ end
1140
+
1141
+ context 'when it is `subject.stub(:method).and_return(value)` form' do
1142
+ let(:source) do
1143
+ <<-END
1144
+ describe 'example' do
1145
+ it 'responds to #foo and returns 1' do
1146
+ subject.stub(:foo).and_return(1)
1147
+ end
1148
+ end
1149
+ END
1150
+ end
1151
+
1152
+ it 'does nothing' do
1153
+ rewritten_source.should == source
1154
+ record.should be_nil
1155
+ end
1156
+ end
1157
+ end
1158
+
1062
1159
  describe '#add_receiver_arg_to_any_instance_implementation_block!' do
1063
1160
  before do
1064
1161
  method_stub_object.add_receiver_arg_to_any_instance_implementation_block!
@@ -11,61 +11,22 @@ module Transpec
11
11
  include_context 'parsed objects'
12
12
  include_context 'syntax object', Should, :should_object
13
13
 
14
- subject(:matcher) do
15
- OperatorMatcher.new(should_object.matcher_node, source_rewriter, runtime_data)
16
- end
17
-
14
+ subject(:matcher) { should_object.operator_matcher }
18
15
  let(:record) { matcher.report.records.first }
19
16
 
20
17
  describe '#method_name' do
21
- context 'when it is operator matcher' do
22
- let(:source) do
23
- <<-END
24
- describe 'example' do
25
- it 'is 1' do
26
- subject.should == 1
27
- end
18
+ let(:source) do
19
+ <<-END
20
+ describe 'example' do
21
+ it 'is 1' do
22
+ subject.should == 1
28
23
  end
29
- END
30
- end
31
-
32
- # (block
33
- # (send nil :it
34
- # (str "is 1"))
35
- # (args)
36
- # (send
37
- # (send
38
- # (send nil :subject) :should) :==
39
- # (int 1)))
40
-
41
- it 'returns the method name' do
42
- matcher.method_name.should == :==
43
- end
24
+ end
25
+ END
44
26
  end
45
27
 
46
- context 'when it is non-operator matcher' do
47
- let(:source) do
48
- <<-END
49
- describe 'example' do
50
- it 'is 1' do
51
- subject.should eq(1)
52
- end
53
- end
54
- END
55
- end
56
-
57
- # (block
58
- # (send nil :it
59
- # (str "is 1"))
60
- # (args)
61
- # (send
62
- # (send nil :subject) :should
63
- # (send nil :eq
64
- # (int 1))))
65
-
66
- it 'returns the method name' do
67
- matcher.method_name.should == :eq
68
- end
28
+ it 'returns the method name' do
29
+ matcher.method_name.should == :==
69
30
  end
70
31
  end
71
32
 
@@ -665,7 +626,7 @@ module Transpec
665
626
  <<-END
666
627
  describe 'example' do
667
628
  it 'is 1' do
668
- subject.should eq(1)
629
+ subject.should ==(1)
669
630
  end
670
631
  end
671
632
  END
@@ -681,7 +642,7 @@ module Transpec
681
642
  <<-END
682
643
  describe 'example' do
683
644
  it 'is 1' do
684
- subject.should eq 1
645
+ subject.should == 1
685
646
  end
686
647
  end
687
648
  END
@@ -694,7 +655,7 @@ module Transpec
694
655
  <<-END
695
656
  describe 'example' do
696
657
  it 'is 1' do
697
- subject.should eq(1)
658
+ subject.should ==(1)
698
659
  end
699
660
  end
700
661
  END
@@ -712,7 +673,7 @@ module Transpec
712
673
  <<-END
713
674
  describe 'example' do
714
675
  it 'is 1' do
715
- subject.should eq 1
676
+ subject.should == 1
716
677
  end
717
678
  end
718
679
  END
@@ -724,38 +685,12 @@ module Transpec
724
685
  end
725
686
  end
726
687
 
727
- context 'when its multiple arguments are not in parentheses' do
728
- let(:source) do
729
- <<-END
730
- describe 'example' do
731
- it 'contains 1 and 2' do
732
- subject.should include 1, 2
733
- end
734
- end
735
- END
736
- end
737
-
738
- let(:expected_source) do
739
- <<-END
740
- describe 'example' do
741
- it 'contains 1 and 2' do
742
- subject.should include(1, 2)
743
- end
744
- end
745
- END
746
- end
747
-
748
- it 'inserts parentheses' do
749
- rewritten_source.should == expected_source
750
- end
751
- end
752
-
753
688
  context 'when its argument is a string literal' do
754
689
  let(:source) do
755
690
  <<-END
756
691
  describe 'example' do
757
692
  it "is 'string'" do
758
- subject.should eq 'string'
693
+ subject.should == 'string'
759
694
  end
760
695
  end
761
696
  END
@@ -765,7 +700,7 @@ module Transpec
765
700
  <<-END
766
701
  describe 'example' do
767
702
  it "is 'string'" do
768
- subject.should eq('string')
703
+ subject.should ==('string')
769
704
  end
770
705
  end
771
706
  END
@@ -781,7 +716,7 @@ module Transpec
781
716
  <<-END
782
717
  describe 'example' do
783
718
  it 'returns the document' do
784
- subject.should eq <<-HEREDOC
719
+ subject.should == <<-HEREDOC
785
720
  foo
786
721
  HEREDOC
787
722
  end
@@ -808,7 +743,7 @@ module Transpec
808
743
  <<-END
809
744
  describe 'example' do
810
745
  it 'returns the document' do
811
- subject.should eq <<-HEREDOC.gsub('foo', 'bar')
746
+ subject.should == <<-HEREDOC.gsub('foo', 'bar')
812
747
  foo
813
748
  HEREDOC
814
749
  end
@@ -838,7 +773,7 @@ module Transpec
838
773
  <<-'END'
839
774
  it 'returns the document' do
840
775
  string = 'foo'
841
- subject.should eq <<-HEREDOC
776
+ subject.should == <<-HEREDOC
842
777
  #{string}
843
778
  HEREDOC
844
779
  end
@@ -12,9 +12,203 @@ module Transpec
12
12
  include_context 'syntax object', Expect, :expect_object
13
13
  include_context 'syntax object', Allow, :allow_object
14
14
 
15
- describe '#add_receiver_arg_to_any_instance_implementation_block!' do
16
- let(:record) { receive_object.report.records.last }
15
+ let(:record) { receive_object.report.records.last }
17
16
 
17
+ describe '#remove_useless_and_return!' do
18
+ before do
19
+ receive_object.remove_useless_and_return!
20
+ end
21
+
22
+ context 'with #expect' do
23
+ let(:receive_object) { expect_object.receive_matcher }
24
+
25
+ context 'when it is `expect(obj).to receive(:method).and_return { value }` form' do
26
+ let(:source) do
27
+ <<-END
28
+ describe 'example' do
29
+ it 'receives #foo and returns 1' do
30
+ expect(subject).to receive(:foo).and_return { 1 }
31
+ end
32
+ end
33
+ END
34
+ end
35
+
36
+ let(:expected_source) do
37
+ <<-END
38
+ describe 'example' do
39
+ it 'receives #foo and returns 1' do
40
+ expect(subject).to receive(:foo) { 1 }
41
+ end
42
+ end
43
+ END
44
+ end
45
+
46
+ it 'converts into `expect(obj).to receive(:method) { value }` form' do
47
+ rewritten_source.should == expected_source
48
+ end
49
+
50
+ it 'adds record `expect(obj).to receive(:message).and_return { value }` ' \
51
+ '-> `expect(obj).to receive(:message) { value }`' do
52
+ record.original_syntax.should == 'expect(obj).to receive(:message).and_return { value }'
53
+ record.converted_syntax.should == 'expect(obj).to receive(:message) { value }'
54
+ end
55
+ end
56
+
57
+ context 'when it is `expect(obj).to receive(:method).and_return do value end` form' do
58
+ let(:source) do
59
+ <<-END
60
+ describe 'example' do
61
+ it 'receives #foo and returns 1' do
62
+ expect(subject).to receive(:foo).and_return do
63
+ 1
64
+ end
65
+ end
66
+ end
67
+ END
68
+ end
69
+
70
+ let(:expected_source) do
71
+ <<-END
72
+ describe 'example' do
73
+ it 'receives #foo and returns 1' do
74
+ expect(subject).to receive(:foo) do
75
+ 1
76
+ end
77
+ end
78
+ end
79
+ END
80
+ end
81
+
82
+ it 'converts into `expect(obj).to receive(:method) do value end` form' do
83
+ rewritten_source.should == expected_source
84
+ end
85
+
86
+ it 'adds record `expect(obj).to receive(:message).and_return` ' \
87
+ '-> `expect(obj).to receive(:message)`' do
88
+ record.original_syntax.should == 'expect(obj).to receive(:message).and_return'
89
+ record.converted_syntax.should == 'expect(obj).to receive(:message)'
90
+ end
91
+ end
92
+
93
+ context 'when it is `expect_any_instance_of(Klass).to receive(:method).and_return { value }` form' do
94
+ let(:source) do
95
+ <<-END
96
+ describe 'example' do
97
+ it 'receives #foo and returns 1' do
98
+ expect_any_instance_of(Klass).to receive(:foo).and_return { 1 }
99
+ end
100
+ end
101
+ END
102
+ end
103
+
104
+ let(:expected_source) do
105
+ <<-END
106
+ describe 'example' do
107
+ it 'receives #foo and returns 1' do
108
+ expect_any_instance_of(Klass).to receive(:foo) { 1 }
109
+ end
110
+ end
111
+ END
112
+ end
113
+
114
+ it 'converts into `expect_any_instance_of(Klass).to receive(:method) { value }` form' do
115
+ rewritten_source.should == expected_source
116
+ end
117
+
118
+ it 'adds record `expect(obj).to receive(:message).and_return` ' \
119
+ '-> `expect(obj).to receive(:message)`' do
120
+ record.original_syntax.should == 'expect(obj).to receive(:message).and_return { value }'
121
+ record.converted_syntax.should == 'expect(obj).to receive(:message) { value }'
122
+ end
123
+ end
124
+
125
+ context 'when it is `expect(obj).to receive(:method).and_return` form' do
126
+ let(:source) do
127
+ <<-END
128
+ describe 'example' do
129
+ it 'responds to #foo' do
130
+ expect(subject).to receive(:foo).and_return
131
+ end
132
+ end
133
+ END
134
+ end
135
+
136
+ let(:expected_source) do
137
+ <<-END
138
+ describe 'example' do
139
+ it 'responds to #foo' do
140
+ expect(subject).to receive(:foo)
141
+ end
142
+ end
143
+ END
144
+ end
145
+
146
+ it 'converts into `expect(obj).to receive(:method)` form' do
147
+ rewritten_source.should == expected_source
148
+ end
149
+
150
+ it 'adds record `expect(obj).to receive(:message).and_return` -> `expect(obj).to receive(:message)`' do
151
+ record.original_syntax.should == 'expect(obj).to receive(:message).and_return'
152
+ record.converted_syntax.should == 'expect(obj).to receive(:message)'
153
+ end
154
+ end
155
+
156
+ context 'when it is `expect(obj).to receive(:message).and_return(value)` form' do
157
+ let(:source) do
158
+ <<-END
159
+ describe 'example' do
160
+ it 'responds to #foo and returns 1' do
161
+ expect(obj).to receive(:message).and_return(1)
162
+ end
163
+ end
164
+ END
165
+ end
166
+
167
+ it 'does nothing' do
168
+ rewritten_source.should == source
169
+ record.should be_nil
170
+ end
171
+ end
172
+ end
173
+
174
+ context 'with #allow' do
175
+ let(:receive_object) { allow_object.receive_matcher }
176
+
177
+ context 'when it is `allow(obj).to receive(:method).and_return { value }` form' do
178
+ let(:source) do
179
+ <<-END
180
+ describe 'example' do
181
+ it 'responds to #foo and returns 1' do
182
+ allow(subject).to receive(:foo).and_return { 1 }
183
+ end
184
+ end
185
+ END
186
+ end
187
+
188
+ let(:expected_source) do
189
+ <<-END
190
+ describe 'example' do
191
+ it 'responds to #foo and returns 1' do
192
+ allow(subject).to receive(:foo) { 1 }
193
+ end
194
+ end
195
+ END
196
+ end
197
+
198
+ it 'converts into `allow(obj).to receive(:method) { value }` form' do
199
+ rewritten_source.should == expected_source
200
+ end
201
+
202
+ it 'adds record `allow(obj).to receive(:message).and_return { value }` ' \
203
+ '-> `allow(obj).to receive(:message) { value }`' do
204
+ record.original_syntax.should == 'allow(obj).to receive(:message).and_return { value }'
205
+ record.converted_syntax.should == 'allow(obj).to receive(:message) { value }'
206
+ end
207
+ end
208
+ end
209
+ end
210
+
211
+ describe '#add_receiver_arg_to_any_instance_implementation_block!' do
18
212
  before do
19
213
  receive_object.add_receiver_arg_to_any_instance_implementation_block!
20
214
  end
@@ -56,6 +250,41 @@ module Transpec
56
250
  end
57
251
  end
58
252
 
253
+ context 'when it is `expect_any_instance_of(Klass).to receive(:method).once do |arg| .. end` form' do
254
+ let(:source) do
255
+ <<-END
256
+ describe 'example' do
257
+ it 'receives #foo' do
258
+ expect_any_instance_of(Klass).to receive(:foo).once do |arg|
259
+ end
260
+ end
261
+ end
262
+ END
263
+ end
264
+
265
+ let(:expected_source) do
266
+ <<-END
267
+ describe 'example' do
268
+ it 'receives #foo' do
269
+ expect_any_instance_of(Klass).to receive(:foo).once do |instance, arg|
270
+ end
271
+ end
272
+ end
273
+ END
274
+ end
275
+
276
+ it 'converts into ' \
277
+ '`expect_any_instance_of(Klass).to receive(:method).once do |instance, arg| .. end` form' do
278
+ rewritten_source.should == expected_source
279
+ end
280
+
281
+ it 'adds record `expect_any_instance_of(Klass).to receive(:message) { |arg| }` ' \
282
+ '-> `Klass.any_instance.should_receive(:message) { |instance, arg| }`' do
283
+ record.original_syntax.should == 'expect_any_instance_of(Klass).to receive(:message) { |arg| }'
284
+ record.converted_syntax.should == 'expect_any_instance_of(Klass).to receive(:message) { |instance, arg| }'
285
+ end
286
+ end
287
+
59
288
  context 'when it is `expect_any_instance_of(Klass).to receive(:method) { |arg| .. }` form' do
60
289
  let(:source) do
61
290
  <<-END