transpec 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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