rubocop-rspec 1.15.1 → 1.16.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 +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
|