transpec 3.0.0 → 3.0.1

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/CHANGELOG.md +4 -0
  4. data/lib/transpec/version.rb +1 -1
  5. data/transpec.gemspec +4 -3
  6. metadata +3 -97
  7. data/spec/.rubocop.yml +0 -23
  8. data/spec/integration/configuration_modification_spec.rb +0 -186
  9. data/spec/integration/conversion_spec.rb +0 -145
  10. data/spec/spec_helper.rb +0 -52
  11. data/spec/support/cache_helper.rb +0 -62
  12. data/spec/support/file_helper.rb +0 -25
  13. data/spec/support/shared_context.rb +0 -84
  14. data/spec/transpec/cli_spec.rb +0 -341
  15. data/spec/transpec/commit_message_spec.rb +0 -81
  16. data/spec/transpec/config_spec.rb +0 -99
  17. data/spec/transpec/converter_spec.rb +0 -1374
  18. data/spec/transpec/directory_cloner_spec.rb +0 -74
  19. data/spec/transpec/dynamic_analyzer/rewriter_spec.rb +0 -143
  20. data/spec/transpec/dynamic_analyzer_spec.rb +0 -329
  21. data/spec/transpec/git_spec.rb +0 -151
  22. data/spec/transpec/option_parser_spec.rb +0 -275
  23. data/spec/transpec/processed_source_spec.rb +0 -93
  24. data/spec/transpec/project_spec.rb +0 -194
  25. data/spec/transpec/record_spec.rb +0 -128
  26. data/spec/transpec/report_spec.rb +0 -126
  27. data/spec/transpec/rspec_version_spec.rb +0 -129
  28. data/spec/transpec/spec_file_finder_spec.rb +0 -118
  29. data/spec/transpec/spec_suite_spec.rb +0 -108
  30. data/spec/transpec/static_context_inspector_spec.rb +0 -713
  31. data/spec/transpec/syntax/allow_spec.rb +0 -122
  32. data/spec/transpec/syntax/be_boolean_spec.rb +0 -176
  33. data/spec/transpec/syntax/be_close_spec.rb +0 -51
  34. data/spec/transpec/syntax/current_example_spec.rb +0 -319
  35. data/spec/transpec/syntax/double_spec.rb +0 -175
  36. data/spec/transpec/syntax/example_group_spec.rb +0 -716
  37. data/spec/transpec/syntax/example_spec.rb +0 -301
  38. data/spec/transpec/syntax/expect_spec.rb +0 -313
  39. data/spec/transpec/syntax/have_spec.rb +0 -1276
  40. data/spec/transpec/syntax/hook_spec.rb +0 -215
  41. data/spec/transpec/syntax/its_spec.rb +0 -448
  42. data/spec/transpec/syntax/matcher_definition_spec.rb +0 -59
  43. data/spec/transpec/syntax/method_stub_spec.rb +0 -1301
  44. data/spec/transpec/syntax/oneliner_should_spec.rb +0 -628
  45. data/spec/transpec/syntax/operator_spec.rb +0 -871
  46. data/spec/transpec/syntax/pending_spec.rb +0 -415
  47. data/spec/transpec/syntax/raise_error_spec.rb +0 -354
  48. data/spec/transpec/syntax/receive_spec.rb +0 -499
  49. data/spec/transpec/syntax/rspec_configure_spec.rb +0 -870
  50. data/spec/transpec/syntax/should_receive_spec.rb +0 -1108
  51. data/spec/transpec/syntax/should_spec.rb +0 -497
  52. data/spec/transpec/util_spec.rb +0 -115
  53. data/spec/transpec_spec.rb +0 -22
@@ -1,194 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'transpec/project'
5
- require 'active_support/core_ext/string/strip.rb'
6
-
7
- module Transpec
8
- describe Project do
9
- include FileHelper
10
- include CacheHelper
11
-
12
- subject(:project) { Project.new }
13
-
14
- describe '#using_bundler?' do
15
- include_context 'isolated environment'
16
-
17
- subject { project.using_bundler? }
18
-
19
- context 'when the project has a Gemfile.lock' do
20
- before do
21
- create_file('Gemfile.lock', '')
22
- end
23
-
24
- it { should be_true }
25
- end
26
-
27
- context 'when the project have no Gemfile.lock' do
28
- it { should be_false }
29
- end
30
- end
31
-
32
- describe '#depend_on_rspec_rails?' do
33
- include_context 'isolated environment'
34
-
35
- subject { project.depend_on_rspec_rails? }
36
-
37
- context 'when the project has a Gemfile.lock' do
38
- before do
39
- create_file('Gemfile.lock', gemfile_content)
40
- end
41
-
42
- context 'and rspec-rails is bundled' do
43
- let(:gemfile_content) do
44
- <<-END.strip_heredoc
45
- GEM
46
- remote: https://rubygems.org/
47
- specs:
48
- actionpack (4.1.7)
49
- actionview (= 4.1.7)
50
- activesupport (= 4.1.7)
51
- rack (~> 1.5.2)
52
- rack-test (~> 0.6.2)
53
- actionview (4.1.7)
54
- activesupport (= 4.1.7)
55
- builder (~> 3.1)
56
- erubis (~> 2.7.0)
57
- activemodel (4.1.7)
58
- activesupport (= 4.1.7)
59
- builder (~> 3.1)
60
- activesupport (4.1.7)
61
- i18n (~> 0.6, >= 0.6.9)
62
- json (~> 1.7, >= 1.7.7)
63
- minitest (~> 5.1)
64
- thread_safe (~> 0.1)
65
- tzinfo (~> 1.1)
66
- builder (3.2.2)
67
- diff-lcs (1.2.5)
68
- erubis (2.7.0)
69
- i18n (0.6.11)
70
- json (1.8.1)
71
- minitest (5.4.3)
72
- rack (1.5.2)
73
- rack-test (0.6.2)
74
- rack (>= 1.0)
75
- railties (4.1.7)
76
- actionpack (= 4.1.7)
77
- activesupport (= 4.1.7)
78
- rake (>= 0.8.7)
79
- thor (>= 0.18.1, < 2.0)
80
- rake (10.4.0)
81
- rspec-core (2.14.8)
82
- rspec-expectations (2.14.5)
83
- diff-lcs (>= 1.1.3, < 2.0)
84
- rspec-mocks (2.14.6)
85
- rspec-rails (2.14.2)
86
- actionpack (>= 3.0)
87
- activemodel (>= 3.0)
88
- activesupport (>= 3.0)
89
- railties (>= 3.0)
90
- rspec-core (~> 2.14.0)
91
- rspec-expectations (~> 2.14.0)
92
- rspec-mocks (~> 2.14.0)
93
- thor (0.19.1)
94
- thread_safe (0.3.4)
95
- tzinfo (1.2.2)
96
- thread_safe (~> 0.1)
97
-
98
- PLATFORMS
99
- ruby
100
-
101
- DEPENDENCIES
102
- rspec-rails (~> 2.14.0)
103
- END
104
- end
105
-
106
- it { should be_true }
107
- end
108
-
109
- context 'and rspec-rails is not bundled' do
110
- let(:gemfile_content) do
111
- <<-END.strip_heredoc
112
- GEM
113
- remote: https://rubygems.org/
114
- specs:
115
- diff-lcs (1.2.5)
116
- rspec (2.14.1)
117
- rspec-core (~> 2.14.0)
118
- rspec-expectations (~> 2.14.0)
119
- rspec-mocks (~> 2.14.0)
120
- rspec-core (2.14.8)
121
- rspec-expectations (2.14.5)
122
- diff-lcs (>= 1.1.3, < 2.0)
123
- rspec-mocks (2.14.6)
124
-
125
- PLATFORMS
126
- ruby
127
-
128
- DEPENDENCIES
129
- rspec (~> 2.14.0)
130
- END
131
- end
132
-
133
- it { should be_false }
134
- end
135
- end
136
-
137
- context 'when the project have no Gemfile.lock' do
138
- it { should be_false }
139
- end
140
- end
141
-
142
- describe '#rspec_version' do
143
- subject(:rspec_version) { project.rspec_version }
144
-
145
- it 'returns an instance of RSpecVersion' do
146
- should be_a(RSpecVersion)
147
- end
148
-
149
- context 'when the project has a Gemfile' do
150
- context 'and depends on RSpec 2.13.0' do
151
- around do |example|
152
- with_cached_dir('rspec-2.13.0-project') do |cached|
153
- unless cached
154
- create_file('Gemfile', [
155
- "source 'https://rubygems.org'",
156
- "gem 'rspec-core', '2.13.0'"
157
- ])
158
-
159
- Bundler.with_clean_env do
160
- `bundle install --path vendor/bundle`
161
- end
162
- end
163
-
164
- example.run
165
- end
166
- end
167
-
168
- it 'returns the version' do
169
- rspec_version.to_s.should == '2.13.0'
170
- end
171
- end
172
- end
173
-
174
- context 'when the project has no Gemfile' do
175
- include_context 'isolated environment'
176
-
177
- it 'returns version of the RSpec installed in the system' do
178
- require 'rspec/core/version'
179
- rspec_version.to_s.should == RSpec::Core::Version::STRING
180
- end
181
- end
182
-
183
- context 'when failed checking version' do
184
- before do
185
- IO.stub(:popen).and_return(nil)
186
- end
187
-
188
- it 'raises error' do
189
- -> { rspec_version }.should raise_error(/failed checking/i)
190
- end
191
- end
192
- end
193
- end
194
- end
@@ -1,128 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'transpec/record'
5
-
6
- module Transpec
7
- describe Record do
8
- subject(:record) { Record.new(old_syntax, new_syntax, options) }
9
- let(:old_syntax) { 'obj.should' }
10
- let(:new_syntax) { 'expect(obj).to' }
11
- let(:options) { {} }
12
-
13
- describe '.new' do
14
- context 'when invalid type is passed' do
15
- it 'raises error' do
16
- lambda do
17
- Record.new('foo', 'bar', type: :unknown_type)
18
- end.should raise_error(/invalid type/i)
19
- end
20
- end
21
- end
22
-
23
- describe '#type' do
24
- subject { record.type }
25
-
26
- context 'when it has both old and new syntaxes' do
27
- let(:old_syntax) { 'obj.should' }
28
- let(:new_syntax) { 'expect(obj).to' }
29
- it { should == :conversion }
30
- end
31
-
32
- context 'when it has only new syntax' do
33
- let(:old_syntax) { nil }
34
- let(:new_syntax) { 'expect(obj).to' }
35
- it { should == :addition }
36
- end
37
-
38
- context 'when it has only old syntax' do
39
- let(:old_syntax) { 'obj.should' }
40
- let(:new_syntax) { nil }
41
- it { should == :removal }
42
- end
43
-
44
- context 'when the type is specified explicitly' do
45
- let(:old_syntax) { 'foo = true' }
46
- let(:new_syntax) { 'foo = false' }
47
- let(:options) { { type: :modification } }
48
- it { should == :modification }
49
- end
50
- end
51
-
52
- describe '#to_s' do
53
- subject { record.to_s }
54
-
55
- context "when it's a conversion" do
56
- let(:old_syntax) { 'obj.should' }
57
- let(:new_syntax) { 'expect(obj).to' }
58
-
59
- it 'returns "Conversion from `old syntax` to `new syntax`"' do
60
- record.to_s.should == 'Conversion from `obj.should` to `expect(obj).to`'
61
- end
62
- end
63
-
64
- context "when it's an addition" do
65
- let(:old_syntax) { nil }
66
- let(:new_syntax) { 'expect(obj).to' }
67
-
68
- it 'returns "Addition of `new syntax`"' do
69
- record.to_s.should == 'Addition of `expect(obj).to`'
70
- end
71
- end
72
-
73
- context "when it's a removal" do
74
- let(:old_syntax) { 'obj.should' }
75
- let(:new_syntax) { nil }
76
-
77
- it 'returns "Removal of `old syntax`"' do
78
- record.to_s.should == 'Removal of `obj.should`'
79
- end
80
- end
81
- end
82
- end
83
-
84
- describe RecordBuilder do
85
- describe '.build' do
86
- builder_class = Class.new(RecordBuilder) do
87
- attr_reader :some_attr
88
-
89
- def initialize(some_attr)
90
- @some_attr = some_attr
91
- end
92
-
93
- def old_syntax
94
- "obj.should be #{some_attr}"
95
- end
96
-
97
- def new_syntax
98
- "expect(obj).to be #{some_attr}"
99
- end
100
-
101
- def type
102
- :modification
103
- end
104
-
105
- def annotation
106
- 'some annotation'
107
- end
108
- end
109
-
110
- let(:record) { builder_class.build('something') }
111
-
112
- it 'returns an instance of Record' do
113
- record.should be_a(Record)
114
- end
115
-
116
- {
117
- old_syntax: 'obj.should be something',
118
- new_syntax: 'expect(obj).to be something',
119
- type: :modification,
120
- annotation: 'some annotation'
121
- }.each do |attribute, value|
122
- it "sets builder's ##{attribute} value to record's ##{attribute}" do
123
- record.send(attribute).should == value
124
- end
125
- end
126
- end
127
- end
128
- end
@@ -1,126 +0,0 @@
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
- options = { annotation: double('annotation') }
14
- report.records << Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)', options)
15
- report.records << Record.new('obj.should', 'expect(obj).to')
16
- report.records << Record.new('obj.should', 'expect(obj).to', options)
17
- report.records << Record.new(nil, 'RSpec.configure { |c| c.infer_spec_type_from_file_location! }')
18
- report.conversion_errors << ContextError.new('#should', '#expect', double('range'))
19
- end
20
-
21
- describe '#unique_record_counts' do
22
- subject(:unique_record_counts) { report.unique_record_counts }
23
-
24
- it 'returns counts for unique records' do
25
- unique_record_counts.size.should == 3
26
- end
27
-
28
- it 'returns hash with record as key and count as value' do
29
- unique_record_counts.each do |record, count|
30
- case record
31
- when Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)')
32
- count.should == 1
33
- when Record.new('obj.should', 'expect(obj).to')
34
- count.should == 2
35
- end
36
- end
37
- end
38
-
39
- it 'is sorted by count in descending order' do
40
- unique_record_counts.values.should == [2, 1, 1]
41
- end
42
- end
43
-
44
- describe '#summary' do
45
- it 'returns summary string' do
46
- report.summary.should == <<-END.gsub(/^\s+\|/, '')
47
- |2 conversions
48
- | from: obj.should
49
- | to: expect(obj).to
50
- |1 conversion
51
- | from: obj.stub(:message)
52
- | to: allow(obj).to receive(:message)
53
- |1 addition
54
- | of: RSpec.configure { |c| c.infer_spec_type_from_file_location! }
55
- END
56
- end
57
-
58
- context 'when :separate_by_blank_line option is enabled' do
59
- it 'separates conversion entries by blank line' do
60
- report.summary(separate_by_blank_line: true).should == <<-END.gsub(/^\s+\|/, '')
61
- |2 conversions
62
- | from: obj.should
63
- | to: expect(obj).to
64
- |
65
- |1 conversion
66
- | from: obj.stub(:message)
67
- | to: allow(obj).to receive(:message)
68
- |
69
- |1 addition
70
- | of: RSpec.configure { |c| c.infer_spec_type_from_file_location! }
71
- END
72
- end
73
- end
74
-
75
- context 'when :bullet option is specified' do
76
- it 'adds the bullet for each conversion entry' do
77
- report.summary(bullet: '-').should == <<-END.gsub(/^\s+\|/, '')
78
- |- 2 conversions
79
- | from: obj.should
80
- | to: expect(obj).to
81
- |- 1 conversion
82
- | from: obj.stub(:message)
83
- | to: allow(obj).to receive(:message)
84
- |- 1 addition
85
- | of: RSpec.configure { |c| c.infer_spec_type_from_file_location! }
86
- END
87
- end
88
- end
89
- end
90
-
91
- describe '#stats' do
92
- it 'returns stats string' do
93
- report.stats.should == '4 conversions, 1 incomplete, 2 warnings, 0 errors'
94
- end
95
- end
96
-
97
- describe '#<<' do
98
- subject(:concated_report) { report << another_report }
99
-
100
- let(:another_report) do
101
- report = Report.new
102
- report.records << Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)')
103
- report.conversion_errors << ContextError.new('#should', '#expect', double('range'))
104
- report.conversion_errors << ContextError.new('#stub', '#allow', double('range'))
105
- report.file_errors << double('file error')
106
- report
107
- end
108
-
109
- it 'returns the receiver' do
110
- concated_report.should equal(report)
111
- end
112
-
113
- it 'concats records' do
114
- concated_report.should have(5).records
115
- end
116
-
117
- it 'concats conversion errors' do
118
- concated_report.should have(3).conversion_errors
119
- end
120
-
121
- it 'concats file errors' do
122
- concated_report.should have(1).file_errors
123
- end
124
- end
125
- end
126
- end