transpec 0.1.3 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +35 -3
- data/README.md.erb +35 -3
- data/lib/transpec/cli.rb +50 -4
- data/lib/transpec/commit_message.rb +25 -0
- data/lib/transpec/git.rb +18 -0
- data/lib/transpec/record.rb +28 -0
- data/lib/transpec/report.rb +109 -0
- data/lib/transpec/rewriter.rb +17 -8
- data/lib/transpec/syntax.rb +25 -22
- data/lib/transpec/syntax/be_close.rb +6 -0
- data/lib/transpec/syntax/double.rb +5 -0
- data/lib/transpec/syntax/matcher.rb +17 -1
- data/lib/transpec/syntax/method_stub.rb +40 -8
- data/lib/transpec/syntax/raise_error.rb +17 -0
- data/lib/transpec/syntax/send_node_syntax.rb +4 -0
- data/lib/transpec/syntax/should.rb +23 -2
- data/lib/transpec/syntax/should_receive.rb +54 -2
- data/lib/transpec/version.rb +2 -2
- data/spec/.rubocop.yml +1 -1
- data/spec/support/shared_context.rb +10 -0
- data/spec/transpec/cli_spec.rb +76 -29
- data/spec/transpec/commit_message_spec.rb +63 -0
- data/spec/transpec/configuration_spec.rb +1 -1
- data/spec/transpec/git_spec.rb +114 -38
- data/spec/transpec/record_spec.rb +18 -0
- data/spec/transpec/report_spec.rb +89 -0
- data/spec/transpec/rewriter_spec.rb +5 -0
- data/spec/transpec/syntax/be_close_spec.rb +10 -1
- data/spec/transpec/syntax/double_spec.rb +10 -0
- data/spec/transpec/syntax/matcher_spec.rb +31 -0
- data/spec/transpec/syntax/method_stub_spec.rb +53 -44
- data/spec/transpec/syntax/raise_error_spec.rb +64 -24
- data/spec/transpec/syntax/should_receive_spec.rb +67 -7
- data/spec/transpec/syntax/should_spec.rb +26 -0
- data/tasks/test.rake +27 -12
- metadata +11 -2
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'transpec/record'
|
5
|
+
|
6
|
+
module Transpec
|
7
|
+
describe Record do
|
8
|
+
subject(:report) { Record.new(original_syntax, converted_syntax) }
|
9
|
+
let(:original_syntax) { 'obj.should' }
|
10
|
+
let(:converted_syntax) { 'expect(obj).to' }
|
11
|
+
|
12
|
+
describe '#to_s' do
|
13
|
+
it 'returns "`original syntax` -> `converted syntax`"' do
|
14
|
+
report.to_s.should == '`obj.should` -> `expect(obj).to`'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'transpec/report'
|
5
|
+
require 'transpec/record'
|
6
|
+
require 'transpec/syntax'
|
7
|
+
|
8
|
+
module Transpec
|
9
|
+
describe Report do
|
10
|
+
subject(:report) { Report.new }
|
11
|
+
|
12
|
+
before do
|
13
|
+
report.records << Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)')
|
14
|
+
report.records << Record.new('obj.should', 'expect(obj).to')
|
15
|
+
report.records << Record.new('obj.should', 'expect(obj).to')
|
16
|
+
report.invalid_context_errors <<
|
17
|
+
Syntax::InvalidContextError.new(double('range'), '#should', '#expect')
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#unique_record_counts' do
|
21
|
+
subject(:unique_record_counts) { report.unique_record_counts }
|
22
|
+
|
23
|
+
it 'returns counts for unique records' do
|
24
|
+
unique_record_counts.size.should == 2
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'returns hash with record as key and count as value' do
|
28
|
+
unique_record_counts.each do |record, count|
|
29
|
+
case record
|
30
|
+
when Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)')
|
31
|
+
count.should == 1
|
32
|
+
when Record.new('obj.should', 'expect(obj).to')
|
33
|
+
count.should == 2
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'is sorted by count in descending order' do
|
39
|
+
unique_record_counts.values.should == [2, 1]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#summary' do
|
44
|
+
it 'returns summary string' do
|
45
|
+
report.summary.should == <<-END.gsub(/^\s+\|/, '')
|
46
|
+
|2 conversions
|
47
|
+
| from: obj.should
|
48
|
+
| to: expect(obj).to
|
49
|
+
|1 conversion
|
50
|
+
| from: obj.stub(:message)
|
51
|
+
| to: allow(obj).to receive(:message)
|
52
|
+
END
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when :separate_by_blank_line option is enabled' do
|
56
|
+
it 'separates conversion entries by blank line' do
|
57
|
+
report.summary(separate_by_blank_line: true).should == <<-END.gsub(/^\s+\|/, '')
|
58
|
+
|2 conversions
|
59
|
+
| from: obj.should
|
60
|
+
| to: expect(obj).to
|
61
|
+
|
|
62
|
+
|1 conversion
|
63
|
+
| from: obj.stub(:message)
|
64
|
+
| to: allow(obj).to receive(:message)
|
65
|
+
END
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'when :bullet option is specified' do
|
70
|
+
it 'adds the bullet for each conversion entry' do
|
71
|
+
report.summary(bullet: '-').should == <<-END.gsub(/^\s+\|/, '')
|
72
|
+
|- 2 conversions
|
73
|
+
| from: obj.should
|
74
|
+
| to: expect(obj).to
|
75
|
+
|- 1 conversion
|
76
|
+
| from: obj.stub(:message)
|
77
|
+
| to: allow(obj).to receive(:message)
|
78
|
+
END
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '#stats' do
|
84
|
+
it 'returns stats string' do
|
85
|
+
report.stats.should == '3 conversions, 1 incomplete, 0 errors'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -68,6 +68,11 @@ module Transpec
|
|
68
68
|
it 'rewrites all targets properly' do
|
69
69
|
should == expected_source
|
70
70
|
end
|
71
|
+
|
72
|
+
it 'adds records for only completed conversions' do
|
73
|
+
rewriter.rewrite(source)
|
74
|
+
rewriter.report.records.count.should == 2
|
75
|
+
end
|
71
76
|
end
|
72
77
|
|
73
78
|
context 'when the source has a monkey-patched expectation outside of example group context' do
|
@@ -21,6 +21,10 @@ module Transpec
|
|
21
21
|
end
|
22
22
|
|
23
23
|
describe '#convert_to_be_within!' do
|
24
|
+
before do
|
25
|
+
be_close_object.convert_to_be_within!
|
26
|
+
end
|
27
|
+
|
24
28
|
context 'when it is `be_close(expected, delta)` form' do
|
25
29
|
let(:source) do
|
26
30
|
<<-END
|
@@ -39,9 +43,14 @@ module Transpec
|
|
39
43
|
end
|
40
44
|
|
41
45
|
it 'converts into `be_within(delta).of(expected)` form' do
|
42
|
-
be_close_object.convert_to_be_within!
|
43
46
|
rewritten_source.should == expected_source
|
44
47
|
end
|
48
|
+
|
49
|
+
it 'adds record "`be_close(expected, delta)` -> `be_within(delta).of(expected)`"' do
|
50
|
+
record = be_close_object.report.records.first
|
51
|
+
record.original_syntax.should == 'be_close(expected, delta)'
|
52
|
+
record.converted_syntax.should == 'be_within(delta).of(expected)'
|
53
|
+
end
|
45
54
|
end
|
46
55
|
end
|
47
56
|
end
|
@@ -63,6 +63,12 @@ module Transpec
|
|
63
63
|
it 'replaces with #double' do
|
64
64
|
rewritten_source.should == expected_source
|
65
65
|
end
|
66
|
+
|
67
|
+
it "adds record \"`#{method}('something')` -> `double('something')`\"" do
|
68
|
+
record = double_object.report.records.first
|
69
|
+
record.original_syntax.should == "#{method}('something')"
|
70
|
+
record.converted_syntax.should == "double('something')"
|
71
|
+
end
|
66
72
|
end
|
67
73
|
end
|
68
74
|
|
@@ -79,6 +85,10 @@ module Transpec
|
|
79
85
|
it 'does nothing' do
|
80
86
|
rewritten_source.should == source
|
81
87
|
end
|
88
|
+
|
89
|
+
it 'reports nothing' do
|
90
|
+
double_object.report.records.should be_empty
|
91
|
+
end
|
82
92
|
end
|
83
93
|
end
|
84
94
|
end
|
@@ -13,6 +13,8 @@ module Transpec
|
|
13
13
|
Matcher.new(should_object.matcher_node, source_rewriter)
|
14
14
|
end
|
15
15
|
|
16
|
+
let(:record) { matcher.report.records.first }
|
17
|
+
|
16
18
|
describe '#method_name' do
|
17
19
|
context 'when it is operator matcher' do
|
18
20
|
let(:source) do
|
@@ -89,6 +91,11 @@ module Transpec
|
|
89
91
|
rewritten_source.should == expected_source
|
90
92
|
end
|
91
93
|
|
94
|
+
it 'adds record "`== expected` -> `eq(expected)`"' do
|
95
|
+
record.original_syntax.should == '== expected'
|
96
|
+
record.converted_syntax.should == 'eq(expected)'
|
97
|
+
end
|
98
|
+
|
92
99
|
# Operator methods allow their argument to be in the next line,
|
93
100
|
# but non-operator methods do not.
|
94
101
|
#
|
@@ -189,6 +196,11 @@ module Transpec
|
|
189
196
|
it 'converts into `eq(1)` form' do
|
190
197
|
rewritten_source.should == expected_source
|
191
198
|
end
|
199
|
+
|
200
|
+
it 'adds record "`== expected` -> `eq(expected)`"' do
|
201
|
+
record.original_syntax.should == '== expected'
|
202
|
+
record.converted_syntax.should == 'eq(expected)'
|
203
|
+
end
|
192
204
|
end
|
193
205
|
|
194
206
|
context 'when it is `be.==(1)` form' do
|
@@ -314,6 +326,11 @@ module Transpec
|
|
314
326
|
it "converts into `be #{operator} 1` form" do
|
315
327
|
rewritten_source.should == expected_source
|
316
328
|
end
|
329
|
+
|
330
|
+
it "adds record \"`#{operator} expected` -> `be #{operator} expected`\"" do
|
331
|
+
record.original_syntax.should == "#{operator} expected"
|
332
|
+
record.converted_syntax.should == "be #{operator} expected"
|
333
|
+
end
|
317
334
|
end
|
318
335
|
|
319
336
|
context "when it is `be #{operator} 1` form" do
|
@@ -328,6 +345,10 @@ module Transpec
|
|
328
345
|
it 'does nothing' do
|
329
346
|
rewritten_source.should == source
|
330
347
|
end
|
348
|
+
|
349
|
+
it 'reports nothing' do
|
350
|
+
matcher.report.records.should be_empty
|
351
|
+
end
|
331
352
|
end
|
332
353
|
end
|
333
354
|
|
@@ -351,6 +372,11 @@ module Transpec
|
|
351
372
|
it 'converts into `match(/pattern/)` form' do
|
352
373
|
rewritten_source.should == expected_source
|
353
374
|
end
|
375
|
+
|
376
|
+
it 'adds record "`=~ /pattern/` -> `match(/pattern/)`"' do
|
377
|
+
record.original_syntax.should == '=~ /pattern/'
|
378
|
+
record.converted_syntax.should == 'match(/pattern/)'
|
379
|
+
end
|
354
380
|
end
|
355
381
|
|
356
382
|
context 'when it is `=~/pattern/` form' do
|
@@ -417,6 +443,11 @@ module Transpec
|
|
417
443
|
it 'converts into `match_array([1, 2])` form' do
|
418
444
|
rewritten_source.should == expected_source
|
419
445
|
end
|
446
|
+
|
447
|
+
it 'adds record "`=~ [1, 2]` -> `match_array([1, 2])`"' do
|
448
|
+
record.original_syntax.should == '=~ [1, 2]'
|
449
|
+
record.converted_syntax.should == 'match_array([1, 2])'
|
450
|
+
end
|
420
451
|
end
|
421
452
|
|
422
453
|
context 'when it is `=~[1, 2]` form' do
|
@@ -20,6 +20,8 @@ module Transpec
|
|
20
20
|
fail 'No method stub node is found!'
|
21
21
|
end
|
22
22
|
|
23
|
+
let(:record) { method_stub_object.report.records.first }
|
24
|
+
|
23
25
|
describe '.target_node?' do
|
24
26
|
let(:send_node) do
|
25
27
|
ast.each_descendent_node do |node|
|
@@ -91,6 +93,7 @@ module Transpec
|
|
91
93
|
describe '#allowize!' do
|
92
94
|
before do
|
93
95
|
method_stub_object.context.stub(:in_example_group?).and_return(true)
|
96
|
+
method_stub_object.allowize!
|
94
97
|
end
|
95
98
|
|
96
99
|
[:stub, :stub!].each do |method|
|
@@ -112,9 +115,13 @@ module Transpec
|
|
112
115
|
end
|
113
116
|
|
114
117
|
it 'converts into `allow(subject).to receive(:method)` form' do
|
115
|
-
method_stub_object.allowize!
|
116
118
|
rewritten_source.should == expected_source
|
117
119
|
end
|
120
|
+
|
121
|
+
it "adds record \"`obj.#{method}(:message)` -> `allow(obj).to receive(:message)`\"" do
|
122
|
+
record.original_syntax.should == "obj.#{method}(:message)"
|
123
|
+
record.converted_syntax.should == 'allow(obj).to receive(:message)'
|
124
|
+
end
|
118
125
|
end
|
119
126
|
|
120
127
|
context "when it is `subject.#{method}(:method).and_return(value)` form" do
|
@@ -135,7 +142,6 @@ module Transpec
|
|
135
142
|
end
|
136
143
|
|
137
144
|
it 'converts into `allow(subject).to receive(:method).and_return(value)` form' do
|
138
|
-
method_stub_object.allowize!
|
139
145
|
rewritten_source.should == expected_source
|
140
146
|
end
|
141
147
|
end
|
@@ -158,7 +164,6 @@ module Transpec
|
|
158
164
|
end
|
159
165
|
|
160
166
|
it 'converts into `allow(subject).to receive(:method).and_raise(RuntimeError)` form' do
|
161
|
-
method_stub_object.allowize!
|
162
167
|
rewritten_source.should == expected_source
|
163
168
|
end
|
164
169
|
end
|
@@ -191,7 +196,6 @@ module Transpec
|
|
191
196
|
end
|
192
197
|
|
193
198
|
it 'keeps the style as far as possible' do
|
194
|
-
method_stub_object.allowize!
|
195
199
|
rewritten_source.should == expected_source
|
196
200
|
end
|
197
201
|
end
|
@@ -214,9 +218,14 @@ module Transpec
|
|
214
218
|
end
|
215
219
|
|
216
220
|
it 'converts into `allow(subject).to receive(:method).and_return(value)` form' do
|
217
|
-
method_stub_object.allowize!
|
218
221
|
rewritten_source.should == expected_source
|
219
222
|
end
|
223
|
+
|
224
|
+
it 'adds record ' +
|
225
|
+
"\"`obj.#{method}(:message => value)` -> `allow(obj).to receive(:message).and_return(value)`\"" do
|
226
|
+
record.original_syntax.should == "obj.#{method}(:message => value)"
|
227
|
+
record.converted_syntax.should == 'allow(obj).to receive(:message).and_return(value)'
|
228
|
+
end
|
220
229
|
end
|
221
230
|
|
222
231
|
context "when it is `subject.#{method}(method: value)` form" do
|
@@ -237,9 +246,14 @@ module Transpec
|
|
237
246
|
end
|
238
247
|
|
239
248
|
it 'converts into `allow(subject).to receive(:method).and_return(value)` form' do
|
240
|
-
method_stub_object.allowize!
|
241
249
|
rewritten_source.should == expected_source
|
242
250
|
end
|
251
|
+
|
252
|
+
it 'adds record ' +
|
253
|
+
"\"`obj.#{method}(:message => value)` -> `allow(obj).to receive(:message).and_return(value)`\"" do
|
254
|
+
record.original_syntax.should == "obj.#{method}(:message => value)"
|
255
|
+
record.converted_syntax.should == 'allow(obj).to receive(:message).and_return(value)'
|
256
|
+
end
|
243
257
|
end
|
244
258
|
|
245
259
|
context "when it is `subject.#{method}(:a_method => a_value, b_method => b_value)` form" do
|
@@ -262,10 +276,15 @@ module Transpec
|
|
262
276
|
|
263
277
|
it 'converts into `allow(subject).to receive(:a_method).and_return(a_value)` ' +
|
264
278
|
'and `allow(subject).to receive(:b_method).and_return(b_value)` form' do
|
265
|
-
method_stub_object.allowize!
|
266
279
|
rewritten_source.should == expected_source
|
267
280
|
end
|
268
281
|
|
282
|
+
it 'adds record ' +
|
283
|
+
"\"`obj.#{method}(:message => value)` -> `allow(obj).to receive(:message).and_return(value)`\"" do
|
284
|
+
record.original_syntax.should == "obj.#{method}(:message => value)"
|
285
|
+
record.converted_syntax.should == 'allow(obj).to receive(:message).and_return(value)'
|
286
|
+
end
|
287
|
+
|
269
288
|
context 'when the statement continues over multi lines' do
|
270
289
|
let(:source) do
|
271
290
|
<<-END
|
@@ -291,7 +310,6 @@ module Transpec
|
|
291
310
|
end
|
292
311
|
|
293
312
|
it 'keeps the style except around the hash' do
|
294
|
-
method_stub_object.allowize!
|
295
313
|
rewritten_source.should == expected_source
|
296
314
|
end
|
297
315
|
end
|
@@ -309,9 +327,12 @@ module Transpec
|
|
309
327
|
end
|
310
328
|
|
311
329
|
it 'does nothing' do
|
312
|
-
method_stub_object.allowize!
|
313
330
|
rewritten_source.should == source
|
314
331
|
end
|
332
|
+
|
333
|
+
it 'reports nothing' do
|
334
|
+
method_stub_object.report.records.should be_empty
|
335
|
+
end
|
315
336
|
end
|
316
337
|
end
|
317
338
|
|
@@ -334,9 +355,14 @@ module Transpec
|
|
334
355
|
end
|
335
356
|
|
336
357
|
it 'converts into `allow_any_instance_of(SomeClass).to receive(:method)` form' do
|
337
|
-
method_stub_object.allowize!
|
338
358
|
rewritten_source.should == expected_source
|
339
359
|
end
|
360
|
+
|
361
|
+
it "adds record \"`SomeClass.any_instance.#{method}(:message)` " +
|
362
|
+
'-> `allow_any_instance_of(obj).to receive(:message)`"' do
|
363
|
+
record.original_syntax.should == "SomeClass.any_instance.#{method}(:message)"
|
364
|
+
record.converted_syntax.should == 'allow_any_instance_of(SomeClass).to receive(:message)'
|
365
|
+
end
|
340
366
|
end
|
341
367
|
end
|
342
368
|
|
@@ -351,24 +377,12 @@ module Transpec
|
|
351
377
|
end
|
352
378
|
|
353
379
|
it 'does nothing' do
|
354
|
-
method_stub_object.allowize!
|
355
380
|
rewritten_source.should == source
|
356
381
|
end
|
357
|
-
end
|
358
|
-
end
|
359
|
-
|
360
|
-
context 'when already replaced deprecated method' do
|
361
|
-
let(:source) do
|
362
|
-
<<-END
|
363
|
-
it 'responds to #foo' do
|
364
|
-
subject.stub!(:foo)
|
365
|
-
end
|
366
|
-
END
|
367
|
-
end
|
368
382
|
|
369
|
-
|
370
|
-
|
371
|
-
|
383
|
+
it 'reports nothing' do
|
384
|
+
method_stub_object.report.records.should be_empty
|
385
|
+
end
|
372
386
|
end
|
373
387
|
end
|
374
388
|
end
|
@@ -376,6 +390,7 @@ module Transpec
|
|
376
390
|
describe '#replace_deprecated_method!' do
|
377
391
|
before do
|
378
392
|
method_stub_object.context.stub(:in_example_group?).and_return(true)
|
393
|
+
method_stub_object.replace_deprecated_method!
|
379
394
|
end
|
380
395
|
|
381
396
|
[
|
@@ -400,9 +415,14 @@ module Transpec
|
|
400
415
|
end
|
401
416
|
|
402
417
|
it "replaces with ##{replacement_method}" do
|
403
|
-
method_stub_object.replace_deprecated_method!
|
404
418
|
rewritten_source.should == expected_source
|
405
419
|
end
|
420
|
+
|
421
|
+
it 'adds record ' +
|
422
|
+
"\"`obj.#{method}(:message)` -> `obj.#{replacement_method}(:message)`\"" do
|
423
|
+
record.original_syntax.should == "obj.#{method}(:message)"
|
424
|
+
record.converted_syntax.should == "obj.#{replacement_method}(:message)"
|
425
|
+
end
|
406
426
|
end
|
407
427
|
end
|
408
428
|
|
@@ -420,24 +440,12 @@ module Transpec
|
|
420
440
|
end
|
421
441
|
|
422
442
|
it 'does nothing' do
|
423
|
-
method_stub_object.replace_deprecated_method!
|
424
443
|
rewritten_source.should == source
|
425
444
|
end
|
426
|
-
end
|
427
|
-
end
|
428
445
|
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
it 'responds to #foo' do
|
433
|
-
subject.stub!(:foo)
|
434
|
-
end
|
435
|
-
END
|
436
|
-
end
|
437
|
-
|
438
|
-
it 'raises error' do
|
439
|
-
method_stub_object.allowize!
|
440
|
-
-> { method_stub_object.replace_deprecated_method! }.should raise_error
|
446
|
+
it 'reports nothing' do
|
447
|
+
method_stub_object.report.records.should be_empty
|
448
|
+
end
|
441
449
|
end
|
442
450
|
end
|
443
451
|
end
|
@@ -495,6 +503,10 @@ module Transpec
|
|
495
503
|
end
|
496
504
|
|
497
505
|
describe '#remove_allowance_for_no_message!' do
|
506
|
+
before do
|
507
|
+
method_stub_object.remove_allowance_for_no_message!
|
508
|
+
end
|
509
|
+
|
498
510
|
context 'when it is `subject.stub(:method).any_number_of_times` form' do
|
499
511
|
let(:source) do
|
500
512
|
<<-END
|
@@ -513,7 +525,6 @@ module Transpec
|
|
513
525
|
end
|
514
526
|
|
515
527
|
it 'removes `.any_number_of_times`' do
|
516
|
-
method_stub_object.remove_allowance_for_no_message!
|
517
528
|
rewritten_source.should == expected_source
|
518
529
|
end
|
519
530
|
end
|
@@ -536,7 +547,6 @@ module Transpec
|
|
536
547
|
end
|
537
548
|
|
538
549
|
it 'removes `.at_least(0)`' do
|
539
|
-
method_stub_object.remove_allowance_for_no_message!
|
540
550
|
rewritten_source.should == expected_source
|
541
551
|
end
|
542
552
|
end
|
@@ -551,7 +561,6 @@ module Transpec
|
|
551
561
|
end
|
552
562
|
|
553
563
|
it 'does nothing' do
|
554
|
-
method_stub_object.remove_allowance_for_no_message!
|
555
564
|
rewritten_source.should == source
|
556
565
|
end
|
557
566
|
end
|