rubocop-rspec 1.15.1 → 1.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -1
- data/Gemfile +0 -1
- data/config/default.yml +105 -0
- data/lib/rubocop-rspec.rb +27 -0
- data/lib/rubocop/cop/rspec/align_left_let_brace.rb +51 -0
- data/lib/rubocop/cop/rspec/align_right_let_brace.rb +51 -0
- data/lib/rubocop/cop/rspec/any_instance.rb +1 -1
- data/lib/rubocop/cop/rspec/cop.rb +4 -2
- data/lib/rubocop/cop/rspec/expect_in_hook.rb +61 -0
- data/lib/rubocop/cop/rspec/factory_girl/dynamic_attribute_defined_statically.rb +84 -0
- data/lib/rubocop/cop/rspec/hook_argument.rb +11 -5
- data/lib/rubocop/cop/rspec/invalid_predicate_matcher.rb +42 -0
- data/lib/rubocop/cop/rspec/let_before_examples.rb +66 -0
- data/lib/rubocop/cop/rspec/multiple_expectations.rb +3 -5
- data/lib/rubocop/cop/rspec/multiple_subjects.rb +80 -0
- data/lib/rubocop/cop/rspec/named_subject.rb +5 -6
- data/lib/rubocop/cop/rspec/overwriting_setup.rb +1 -1
- data/lib/rubocop/cop/rspec/predicate_matcher.rb +337 -0
- data/lib/rubocop/cop/rspec/return_from_stub.rb +83 -0
- data/lib/rubocop/cop/rspec/void_expect.rb +52 -0
- data/lib/rubocop/rspec/align_let_brace.rb +64 -0
- data/lib/rubocop/rspec/config_formatter.rb +7 -4
- data/lib/rubocop/rspec/description_extractor.rb +2 -2
- data/lib/rubocop/rspec/example_group.rb +25 -2
- data/lib/rubocop/rspec/factory_girl.rb +7 -0
- data/lib/rubocop/rspec/language.rb +6 -1
- data/lib/rubocop/rspec/version.rb +1 -1
- data/rubocop-rspec.gemspec +1 -4
- data/spec/project/default_config_spec.rb +8 -4
- data/spec/rubocop/cop/rspec/align_left_let_brace_spec.rb +62 -0
- data/spec/rubocop/cop/rspec/align_right_let_brace_spec.rb +62 -0
- data/spec/rubocop/cop/rspec/any_instance_spec.rb +3 -3
- data/spec/rubocop/cop/rspec/around_block_spec.rb +11 -11
- data/spec/rubocop/cop/rspec/be_eql_spec.rb +7 -7
- data/spec/rubocop/cop/rspec/before_after_all_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/cop_spec.rb +7 -7
- data/spec/rubocop/cop/rspec/describe_class_spec.rb +18 -18
- data/spec/rubocop/cop/rspec/describe_method_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/describe_symbol_spec.rb +6 -6
- data/spec/rubocop/cop/rspec/described_class_spec.rb +18 -18
- data/spec/rubocop/cop/rspec/empty_example_group_spec.rb +5 -5
- data/spec/rubocop/cop/rspec/empty_line_after_final_let_spec.rb +9 -9
- data/spec/rubocop/cop/rspec/empty_line_after_subject_spec.rb +5 -5
- data/spec/rubocop/cop/rspec/example_length_spec.rb +6 -6
- data/spec/rubocop/cop/rspec/example_wording_spec.rb +10 -10
- data/spec/rubocop/cop/rspec/expect_actual_spec.rb +10 -10
- data/spec/rubocop/cop/rspec/expect_in_hook_spec.rb +79 -0
- data/spec/rubocop/cop/rspec/expect_output_spec.rb +7 -7
- data/spec/rubocop/cop/rspec/factory_girl/dynamic_attribute_defined_statically_spec.rb +87 -0
- data/spec/rubocop/cop/rspec/file_path_spec.rb +29 -29
- data/spec/rubocop/cop/rspec/focus_spec.rb +6 -6
- data/spec/rubocop/cop/rspec/hook_argument_spec.rb +35 -23
- data/spec/rubocop/cop/rspec/implicit_expect_spec.rb +10 -10
- data/spec/rubocop/cop/rspec/instance_spy_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/instance_variable_spec.rb +7 -7
- data/spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb +37 -0
- data/spec/rubocop/cop/rspec/it_behaves_like_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/iterated_expectation_spec.rb +8 -8
- data/spec/rubocop/cop/rspec/leading_subject_spec.rb +5 -5
- data/spec/rubocop/cop/rspec/let_before_examples_spec.rb +83 -0
- data/spec/rubocop/cop/rspec/let_setup_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/message_chain_spec.rb +2 -2
- data/spec/rubocop/cop/rspec/message_expectation_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/message_spies_spec.rb +18 -18
- data/spec/rubocop/cop/rspec/multiple_describes_spec.rb +3 -3
- data/spec/rubocop/cop/rspec/multiple_expectations_spec.rb +45 -9
- data/spec/rubocop/cop/rspec/multiple_subjects_spec.rb +96 -0
- data/spec/rubocop/cop/rspec/named_subject_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/nested_groups_spec.rb +3 -3
- data/spec/rubocop/cop/rspec/not_to_not_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/overwriting_setup_spec.rb +4 -4
- data/spec/rubocop/cop/rspec/predicate_matcher_spec.rb +335 -0
- data/spec/rubocop/cop/rspec/repeated_description_spec.rb +5 -5
- data/spec/rubocop/cop/rspec/repeated_example_spec.rb +5 -5
- data/spec/rubocop/cop/rspec/return_from_stub_spec.rb +85 -0
- data/spec/rubocop/cop/rspec/scattered_let_spec.rb +2 -2
- data/spec/rubocop/cop/rspec/scattered_setup_spec.rb +8 -8
- data/spec/rubocop/cop/rspec/shared_context_spec.rb +10 -10
- data/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb +10 -10
- data/spec/rubocop/cop/rspec/subject_stub_spec.rb +9 -9
- data/spec/rubocop/cop/rspec/verified_doubles_spec.rb +7 -7
- data/spec/rubocop/cop/rspec/void_expect_spec.rb +47 -0
- data/spec/rubocop/rspec/config_formatter_spec.rb +2 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/expect_offense.rb +17 -0
- metadata +39 -51
- data/spec/expect_violation/expectation_spec.rb +0 -85
- data/spec/support/expect_violation.rb +0 -170
@@ -2,7 +2,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
2
2
|
subject(:cop) { described_class.new(config) }
|
3
3
|
|
4
4
|
it 'finds a `double` instead of an `instance_double`' do
|
5
|
-
|
5
|
+
expect_offense(<<-RUBY)
|
6
6
|
it do
|
7
7
|
foo = double("Widget")
|
8
8
|
^^^^^^^^^^^^^^^^ Prefer using verifying doubles over normal doubles.
|
@@ -14,7 +14,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
14
14
|
let(:cop_config) { {} }
|
15
15
|
|
16
16
|
it 'find doubles whose name is a symbol' do
|
17
|
-
|
17
|
+
expect_offense(<<-RUBY)
|
18
18
|
it do
|
19
19
|
foo = double(:widget)
|
20
20
|
^^^^^^^^^^^^^^^ Prefer using verifying doubles over normal doubles.
|
@@ -23,7 +23,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'finds a `spy` instead of an `instance_spy`' do
|
26
|
-
|
26
|
+
expect_offense(<<-RUBY)
|
27
27
|
it do
|
28
28
|
foo = spy("Widget")
|
29
29
|
^^^^^^^^^^^^^ Prefer using verifying doubles over normal doubles.
|
@@ -36,7 +36,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
36
36
|
let(:cop_config) { { 'IgnoreSymbolicNames' => true } }
|
37
37
|
|
38
38
|
it 'ignores doubles whose name is a symbol' do
|
39
|
-
|
39
|
+
expect_no_offenses(<<-RUBY)
|
40
40
|
it do
|
41
41
|
foo = double(:widget)
|
42
42
|
end
|
@@ -44,7 +44,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'still flags doubles whose name is a string' do
|
47
|
-
|
47
|
+
expect_offense(<<-RUBY)
|
48
48
|
it do
|
49
49
|
foo = double("widget")
|
50
50
|
^^^^^^^^^^^^^^^^ Prefer using verifying doubles over normal doubles.
|
@@ -54,7 +54,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'ignores doubles without a name' do
|
57
|
-
|
57
|
+
expect_no_offenses(<<-RUBY)
|
58
58
|
it do
|
59
59
|
foo = double
|
60
60
|
end
|
@@ -62,7 +62,7 @@ RSpec.describe RuboCop::Cop::RSpec::VerifiedDoubles, :config do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'ignores instance_doubles' do
|
65
|
-
|
65
|
+
expect_no_offenses(<<-RUBY)
|
66
66
|
it do
|
67
67
|
foo = instance_double("Foo")
|
68
68
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
RSpec.describe RuboCop::Cop::RSpec::VoidExpect do
|
2
|
+
subject(:cop) { described_class.new }
|
3
|
+
|
4
|
+
it 'registers offenses to void `expect`' do
|
5
|
+
expect_offense(<<-RUBY)
|
6
|
+
it 'something' do
|
7
|
+
something = 1
|
8
|
+
expect(something)
|
9
|
+
^^^^^^^^^^^^^^^^^ Do not use `expect()` without `.to` or `.not_to`. Chain the methods or remove it.
|
10
|
+
end
|
11
|
+
RUBY
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'registers offenses to void `expect` when block has one expression' do
|
15
|
+
expect_offense(<<-RUBY)
|
16
|
+
it 'something' do
|
17
|
+
expect(something)
|
18
|
+
^^^^^^^^^^^^^^^^^ Do not use `expect()` without `.to` or `.not_to`. Chain the methods or remove it.
|
19
|
+
end
|
20
|
+
RUBY
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'registers offenses to void `expect` with block' do
|
24
|
+
expect_offense(<<-RUBY)
|
25
|
+
it 'something' do
|
26
|
+
expect{something}
|
27
|
+
^^^^^^^^^^^^^^^^^ Do not use `expect()` without `.to` or `.not_to`. Chain the methods or remove it.
|
28
|
+
end
|
29
|
+
RUBY
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'accepts non-void `expect`' do
|
33
|
+
expect_no_offenses(<<-RUBY)
|
34
|
+
it 'something' do
|
35
|
+
expect(something).to be 1
|
36
|
+
end
|
37
|
+
RUBY
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'accepts non-void `expect` with block' do
|
41
|
+
expect_no_offenses(<<-RUBY)
|
42
|
+
it 'something' do
|
43
|
+
expect{something}.to raise_error(StandardError)
|
44
|
+
end
|
45
|
+
RUBY
|
46
|
+
end
|
47
|
+
end
|
@@ -39,10 +39,12 @@ RSpec.describe RuboCop::RSpec::ConfigFormatter do
|
|
39
39
|
| Config: 2
|
40
40
|
| Enabled: true
|
41
41
|
| Description: Blah
|
42
|
+
| StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Foo
|
42
43
|
|
|
43
44
|
|RSpec/Bar:
|
44
45
|
| Enabled: true
|
45
46
|
| Description: Wow
|
47
|
+
| StyleGuide: http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Bar
|
46
48
|
YAML
|
47
49
|
end
|
48
50
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# rubocop-rspec gem extension of RuboCop's ExpectOffense module.
|
2
|
+
#
|
3
|
+
# This mixin is the same as rubocop's ExpectOffense except the default
|
4
|
+
# filename ends with `_spec.rb`
|
5
|
+
module ExpectOffense
|
6
|
+
include RuboCop::RSpec::ExpectOffense
|
7
|
+
|
8
|
+
DEFAULT_FILENAME = 'example_spec.rb'.freeze
|
9
|
+
|
10
|
+
def expect_offense(source, filename = DEFAULT_FILENAME)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
def expect_no_offenses(source, filename = DEFAULT_FILENAME)
|
15
|
+
super
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Backus
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-09-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.49.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.49.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,48 +68,6 @@ dependencies:
|
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: anima
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - ">="
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
type: :development
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '0'
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: concord
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
88
|
-
requirements:
|
89
|
-
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '0'
|
92
|
-
type: :development
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - ">="
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '0'
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: adamantium
|
101
|
-
requirement: !ruby/object:Gem::Requirement
|
102
|
-
requirements:
|
103
|
-
- - ">="
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '0'
|
106
|
-
type: :development
|
107
|
-
prerelease: false
|
108
|
-
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
requirements:
|
110
|
-
- - ">="
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '0'
|
113
71
|
- !ruby/object:Gem::Dependency
|
114
72
|
name: yard
|
115
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,6 +102,8 @@ files:
|
|
144
102
|
- Rakefile
|
145
103
|
- config/default.yml
|
146
104
|
- lib/rubocop-rspec.rb
|
105
|
+
- lib/rubocop/cop/rspec/align_left_let_brace.rb
|
106
|
+
- lib/rubocop/cop/rspec/align_right_let_brace.rb
|
147
107
|
- lib/rubocop/cop/rspec/any_instance.rb
|
148
108
|
- lib/rubocop/cop/rspec/around_block.rb
|
149
109
|
- lib/rubocop/cop/rspec/be_eql.rb
|
@@ -159,40 +119,50 @@ files:
|
|
159
119
|
- lib/rubocop/cop/rspec/example_length.rb
|
160
120
|
- lib/rubocop/cop/rspec/example_wording.rb
|
161
121
|
- lib/rubocop/cop/rspec/expect_actual.rb
|
122
|
+
- lib/rubocop/cop/rspec/expect_in_hook.rb
|
162
123
|
- lib/rubocop/cop/rspec/expect_output.rb
|
124
|
+
- lib/rubocop/cop/rspec/factory_girl/dynamic_attribute_defined_statically.rb
|
163
125
|
- lib/rubocop/cop/rspec/file_path.rb
|
164
126
|
- lib/rubocop/cop/rspec/focus.rb
|
165
127
|
- lib/rubocop/cop/rspec/hook_argument.rb
|
166
128
|
- lib/rubocop/cop/rspec/implicit_expect.rb
|
167
129
|
- lib/rubocop/cop/rspec/instance_spy.rb
|
168
130
|
- lib/rubocop/cop/rspec/instance_variable.rb
|
131
|
+
- lib/rubocop/cop/rspec/invalid_predicate_matcher.rb
|
169
132
|
- lib/rubocop/cop/rspec/it_behaves_like.rb
|
170
133
|
- lib/rubocop/cop/rspec/iterated_expectation.rb
|
171
134
|
- lib/rubocop/cop/rspec/leading_subject.rb
|
135
|
+
- lib/rubocop/cop/rspec/let_before_examples.rb
|
172
136
|
- lib/rubocop/cop/rspec/let_setup.rb
|
173
137
|
- lib/rubocop/cop/rspec/message_chain.rb
|
174
138
|
- lib/rubocop/cop/rspec/message_expectation.rb
|
175
139
|
- lib/rubocop/cop/rspec/message_spies.rb
|
176
140
|
- lib/rubocop/cop/rspec/multiple_describes.rb
|
177
141
|
- lib/rubocop/cop/rspec/multiple_expectations.rb
|
142
|
+
- lib/rubocop/cop/rspec/multiple_subjects.rb
|
178
143
|
- lib/rubocop/cop/rspec/named_subject.rb
|
179
144
|
- lib/rubocop/cop/rspec/nested_groups.rb
|
180
145
|
- lib/rubocop/cop/rspec/not_to_not.rb
|
181
146
|
- lib/rubocop/cop/rspec/overwriting_setup.rb
|
147
|
+
- lib/rubocop/cop/rspec/predicate_matcher.rb
|
182
148
|
- lib/rubocop/cop/rspec/repeated_description.rb
|
183
149
|
- lib/rubocop/cop/rspec/repeated_example.rb
|
150
|
+
- lib/rubocop/cop/rspec/return_from_stub.rb
|
184
151
|
- lib/rubocop/cop/rspec/scattered_let.rb
|
185
152
|
- lib/rubocop/cop/rspec/scattered_setup.rb
|
186
153
|
- lib/rubocop/cop/rspec/shared_context.rb
|
187
154
|
- lib/rubocop/cop/rspec/single_argument_message_chain.rb
|
188
155
|
- lib/rubocop/cop/rspec/subject_stub.rb
|
189
156
|
- lib/rubocop/cop/rspec/verified_doubles.rb
|
157
|
+
- lib/rubocop/cop/rspec/void_expect.rb
|
190
158
|
- lib/rubocop/rspec.rb
|
159
|
+
- lib/rubocop/rspec/align_let_brace.rb
|
191
160
|
- lib/rubocop/rspec/concept.rb
|
192
161
|
- lib/rubocop/rspec/config_formatter.rb
|
193
162
|
- lib/rubocop/rspec/description_extractor.rb
|
194
163
|
- lib/rubocop/rspec/example.rb
|
195
164
|
- lib/rubocop/rspec/example_group.rb
|
165
|
+
- lib/rubocop/rspec/factory_girl.rb
|
196
166
|
- lib/rubocop/rspec/hook.rb
|
197
167
|
- lib/rubocop/rspec/inject.rb
|
198
168
|
- lib/rubocop/rspec/language.rb
|
@@ -202,10 +172,11 @@ files:
|
|
202
172
|
- lib/rubocop/rspec/version.rb
|
203
173
|
- lib/rubocop/rspec/wording.rb
|
204
174
|
- rubocop-rspec.gemspec
|
205
|
-
- spec/expect_violation/expectation_spec.rb
|
206
175
|
- spec/project/changelog_spec.rb
|
207
176
|
- spec/project/default_config_spec.rb
|
208
177
|
- spec/project/project_requires_spec.rb
|
178
|
+
- spec/rubocop/cop/rspec/align_left_let_brace_spec.rb
|
179
|
+
- spec/rubocop/cop/rspec/align_right_let_brace_spec.rb
|
209
180
|
- spec/rubocop/cop/rspec/any_instance_spec.rb
|
210
181
|
- spec/rubocop/cop/rspec/around_block_spec.rb
|
211
182
|
- spec/rubocop/cop/rspec/be_eql_spec.rb
|
@@ -221,34 +192,42 @@ files:
|
|
221
192
|
- spec/rubocop/cop/rspec/example_length_spec.rb
|
222
193
|
- spec/rubocop/cop/rspec/example_wording_spec.rb
|
223
194
|
- spec/rubocop/cop/rspec/expect_actual_spec.rb
|
195
|
+
- spec/rubocop/cop/rspec/expect_in_hook_spec.rb
|
224
196
|
- spec/rubocop/cop/rspec/expect_output_spec.rb
|
197
|
+
- spec/rubocop/cop/rspec/factory_girl/dynamic_attribute_defined_statically_spec.rb
|
225
198
|
- spec/rubocop/cop/rspec/file_path_spec.rb
|
226
199
|
- spec/rubocop/cop/rspec/focus_spec.rb
|
227
200
|
- spec/rubocop/cop/rspec/hook_argument_spec.rb
|
228
201
|
- spec/rubocop/cop/rspec/implicit_expect_spec.rb
|
229
202
|
- spec/rubocop/cop/rspec/instance_spy_spec.rb
|
230
203
|
- spec/rubocop/cop/rspec/instance_variable_spec.rb
|
204
|
+
- spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb
|
231
205
|
- spec/rubocop/cop/rspec/it_behaves_like_spec.rb
|
232
206
|
- spec/rubocop/cop/rspec/iterated_expectation_spec.rb
|
233
207
|
- spec/rubocop/cop/rspec/leading_subject_spec.rb
|
208
|
+
- spec/rubocop/cop/rspec/let_before_examples_spec.rb
|
234
209
|
- spec/rubocop/cop/rspec/let_setup_spec.rb
|
235
210
|
- spec/rubocop/cop/rspec/message_chain_spec.rb
|
236
211
|
- spec/rubocop/cop/rspec/message_expectation_spec.rb
|
237
212
|
- spec/rubocop/cop/rspec/message_spies_spec.rb
|
238
213
|
- spec/rubocop/cop/rspec/multiple_describes_spec.rb
|
239
214
|
- spec/rubocop/cop/rspec/multiple_expectations_spec.rb
|
215
|
+
- spec/rubocop/cop/rspec/multiple_subjects_spec.rb
|
240
216
|
- spec/rubocop/cop/rspec/named_subject_spec.rb
|
241
217
|
- spec/rubocop/cop/rspec/nested_groups_spec.rb
|
242
218
|
- spec/rubocop/cop/rspec/not_to_not_spec.rb
|
243
219
|
- spec/rubocop/cop/rspec/overwriting_setup_spec.rb
|
220
|
+
- spec/rubocop/cop/rspec/predicate_matcher_spec.rb
|
244
221
|
- spec/rubocop/cop/rspec/repeated_description_spec.rb
|
245
222
|
- spec/rubocop/cop/rspec/repeated_example_spec.rb
|
223
|
+
- spec/rubocop/cop/rspec/return_from_stub_spec.rb
|
246
224
|
- spec/rubocop/cop/rspec/scattered_let_spec.rb
|
247
225
|
- spec/rubocop/cop/rspec/scattered_setup_spec.rb
|
248
226
|
- spec/rubocop/cop/rspec/shared_context_spec.rb
|
249
227
|
- spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb
|
250
228
|
- spec/rubocop/cop/rspec/subject_stub_spec.rb
|
251
229
|
- spec/rubocop/cop/rspec/verified_doubles_spec.rb
|
230
|
+
- spec/rubocop/cop/rspec/void_expect_spec.rb
|
252
231
|
- spec/rubocop/rspec/config_formatter_spec.rb
|
253
232
|
- spec/rubocop/rspec/description_extractor_spec.rb
|
254
233
|
- spec/rubocop/rspec/example_group_spec.rb
|
@@ -260,7 +239,7 @@ files:
|
|
260
239
|
- spec/shared/autocorrect_behavior.rb
|
261
240
|
- spec/shared/detects_style_behavior.rb
|
262
241
|
- spec/spec_helper.rb
|
263
|
-
- spec/support/
|
242
|
+
- spec/support/expect_offense.rb
|
264
243
|
homepage: http://github.com/backus/rubocop-rspec
|
265
244
|
licenses:
|
266
245
|
- MIT
|
@@ -281,15 +260,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
281
260
|
version: '0'
|
282
261
|
requirements: []
|
283
262
|
rubyforge_project:
|
284
|
-
rubygems_version: 2.6.
|
263
|
+
rubygems_version: 2.6.13
|
285
264
|
signing_key:
|
286
265
|
specification_version: 4
|
287
266
|
summary: Code style checking for RSpec files
|
288
267
|
test_files:
|
289
|
-
- spec/expect_violation/expectation_spec.rb
|
290
268
|
- spec/project/changelog_spec.rb
|
291
269
|
- spec/project/default_config_spec.rb
|
292
270
|
- spec/project/project_requires_spec.rb
|
271
|
+
- spec/rubocop/cop/rspec/align_left_let_brace_spec.rb
|
272
|
+
- spec/rubocop/cop/rspec/align_right_let_brace_spec.rb
|
293
273
|
- spec/rubocop/cop/rspec/any_instance_spec.rb
|
294
274
|
- spec/rubocop/cop/rspec/around_block_spec.rb
|
295
275
|
- spec/rubocop/cop/rspec/be_eql_spec.rb
|
@@ -305,34 +285,42 @@ test_files:
|
|
305
285
|
- spec/rubocop/cop/rspec/example_length_spec.rb
|
306
286
|
- spec/rubocop/cop/rspec/example_wording_spec.rb
|
307
287
|
- spec/rubocop/cop/rspec/expect_actual_spec.rb
|
288
|
+
- spec/rubocop/cop/rspec/expect_in_hook_spec.rb
|
308
289
|
- spec/rubocop/cop/rspec/expect_output_spec.rb
|
290
|
+
- spec/rubocop/cop/rspec/factory_girl/dynamic_attribute_defined_statically_spec.rb
|
309
291
|
- spec/rubocop/cop/rspec/file_path_spec.rb
|
310
292
|
- spec/rubocop/cop/rspec/focus_spec.rb
|
311
293
|
- spec/rubocop/cop/rspec/hook_argument_spec.rb
|
312
294
|
- spec/rubocop/cop/rspec/implicit_expect_spec.rb
|
313
295
|
- spec/rubocop/cop/rspec/instance_spy_spec.rb
|
314
296
|
- spec/rubocop/cop/rspec/instance_variable_spec.rb
|
297
|
+
- spec/rubocop/cop/rspec/invalid_predicate_matcher_spec.rb
|
315
298
|
- spec/rubocop/cop/rspec/it_behaves_like_spec.rb
|
316
299
|
- spec/rubocop/cop/rspec/iterated_expectation_spec.rb
|
317
300
|
- spec/rubocop/cop/rspec/leading_subject_spec.rb
|
301
|
+
- spec/rubocop/cop/rspec/let_before_examples_spec.rb
|
318
302
|
- spec/rubocop/cop/rspec/let_setup_spec.rb
|
319
303
|
- spec/rubocop/cop/rspec/message_chain_spec.rb
|
320
304
|
- spec/rubocop/cop/rspec/message_expectation_spec.rb
|
321
305
|
- spec/rubocop/cop/rspec/message_spies_spec.rb
|
322
306
|
- spec/rubocop/cop/rspec/multiple_describes_spec.rb
|
323
307
|
- spec/rubocop/cop/rspec/multiple_expectations_spec.rb
|
308
|
+
- spec/rubocop/cop/rspec/multiple_subjects_spec.rb
|
324
309
|
- spec/rubocop/cop/rspec/named_subject_spec.rb
|
325
310
|
- spec/rubocop/cop/rspec/nested_groups_spec.rb
|
326
311
|
- spec/rubocop/cop/rspec/not_to_not_spec.rb
|
327
312
|
- spec/rubocop/cop/rspec/overwriting_setup_spec.rb
|
313
|
+
- spec/rubocop/cop/rspec/predicate_matcher_spec.rb
|
328
314
|
- spec/rubocop/cop/rspec/repeated_description_spec.rb
|
329
315
|
- spec/rubocop/cop/rspec/repeated_example_spec.rb
|
316
|
+
- spec/rubocop/cop/rspec/return_from_stub_spec.rb
|
330
317
|
- spec/rubocop/cop/rspec/scattered_let_spec.rb
|
331
318
|
- spec/rubocop/cop/rspec/scattered_setup_spec.rb
|
332
319
|
- spec/rubocop/cop/rspec/shared_context_spec.rb
|
333
320
|
- spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb
|
334
321
|
- spec/rubocop/cop/rspec/subject_stub_spec.rb
|
335
322
|
- spec/rubocop/cop/rspec/verified_doubles_spec.rb
|
323
|
+
- spec/rubocop/cop/rspec/void_expect_spec.rb
|
336
324
|
- spec/rubocop/rspec/config_formatter_spec.rb
|
337
325
|
- spec/rubocop/rspec/description_extractor_spec.rb
|
338
326
|
- spec/rubocop/rspec/example_group_spec.rb
|
@@ -344,4 +332,4 @@ test_files:
|
|
344
332
|
- spec/shared/autocorrect_behavior.rb
|
345
333
|
- spec/shared/detects_style_behavior.rb
|
346
334
|
- spec/spec_helper.rb
|
347
|
-
- spec/support/
|
335
|
+
- spec/support/expect_offense.rb
|
@@ -1,85 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe ExpectViolation::Expectation do
|
4
|
-
subject(:expectation) { described_class.new(string) }
|
5
|
-
|
6
|
-
context 'when given a single assertion on class end' do
|
7
|
-
let(:string) do
|
8
|
-
<<-SRC
|
9
|
-
class Foo
|
10
|
-
end
|
11
|
-
^^^ The end of `Foo` should be annotated.
|
12
|
-
SRC
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:assertion) { expectation.assertions.first }
|
16
|
-
|
17
|
-
it 'has one assertion' do
|
18
|
-
expect(expectation.assertions.size).to be(1)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'has an assertion on line 2' do
|
22
|
-
expect(assertion.line_number).to be(2)
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'has an assertion on column range 1-3' do
|
26
|
-
expect(assertion.column_range).to eql(8...11)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'has an assertion with correct violation message' do
|
30
|
-
expect(assertion.message).to eql('The end of `Foo` should be annotated.')
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'recreates source' do
|
34
|
-
expect(expectation.source).to eql(<<-RUBY)
|
35
|
-
class Foo
|
36
|
-
end
|
37
|
-
RUBY
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'when given many assertions on two lines' do
|
42
|
-
let(:string) do
|
43
|
-
<<-SRC
|
44
|
-
foo bar
|
45
|
-
^ Charlie
|
46
|
-
^^ Charlie
|
47
|
-
^^ Bronco
|
48
|
-
^^ Alpha
|
49
|
-
baz
|
50
|
-
^ Delta
|
51
|
-
SRC
|
52
|
-
end
|
53
|
-
|
54
|
-
let(:assertions) { expectation.assertions.sort }
|
55
|
-
|
56
|
-
it 'has two assertions' do
|
57
|
-
expect(expectation.assertions.size).to be(5)
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'has assertions on lines 1 and 2' do
|
61
|
-
expect(assertions.map(&:line_number)).to eql(
|
62
|
-
[1, 1, 1, 1, 2]
|
63
|
-
)
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'has assertions on column range 1-3' do
|
67
|
-
expect(assertions.map(&:column_range)).to eql(
|
68
|
-
[11...13, 12...13, 12...14, 12...14, 8...9]
|
69
|
-
)
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'has an assertion with correct violation message' do
|
73
|
-
expect(assertions.map(&:message)).to eql(
|
74
|
-
%w[Charlie Charlie Alpha Bronco Delta]
|
75
|
-
)
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'recreates source' do
|
79
|
-
expect(expectation.source).to eql(<<-RUBY)
|
80
|
-
foo bar
|
81
|
-
baz
|
82
|
-
RUBY
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|