rubocop-rspec 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Gemfile +2 -1
  4. data/Rakefile +3 -1
  5. data/config/default.yml +16 -0
  6. data/lib/rubocop-rspec.rb +6 -1
  7. data/lib/rubocop/cop/rspec/any_instance.rb +0 -2
  8. data/lib/rubocop/cop/rspec/be_eql.rb +1 -2
  9. data/lib/rubocop/cop/rspec/cop.rb +66 -0
  10. data/lib/rubocop/cop/rspec/describe_class.rb +6 -1
  11. data/lib/rubocop/cop/rspec/describe_method.rb +1 -2
  12. data/lib/rubocop/cop/rspec/described_class.rb +3 -6
  13. data/lib/rubocop/cop/rspec/empty_example_group.rb +1 -11
  14. data/lib/rubocop/cop/rspec/example_length.rb +1 -1
  15. data/lib/rubocop/cop/rspec/example_wording.rb +0 -2
  16. data/lib/rubocop/cop/rspec/expect_actual.rb +0 -2
  17. data/lib/rubocop/cop/rspec/file_path.rb +1 -1
  18. data/lib/rubocop/cop/rspec/focus.rb +4 -9
  19. data/lib/rubocop/cop/rspec/hook_argument.rb +3 -5
  20. data/lib/rubocop/cop/rspec/implicit_expect.rb +1 -1
  21. data/lib/rubocop/cop/rspec/instance_variable.rb +1 -5
  22. data/lib/rubocop/cop/rspec/leading_subject.rb +0 -2
  23. data/lib/rubocop/cop/rspec/let_setup.rb +1 -4
  24. data/lib/rubocop/cop/rspec/message_chain.rb +1 -8
  25. data/lib/rubocop/cop/rspec/message_expectation.rb +1 -1
  26. data/lib/rubocop/cop/rspec/message_spies.rb +79 -0
  27. data/lib/rubocop/cop/rspec/multiple_describes.rb +1 -2
  28. data/lib/rubocop/cop/rspec/multiple_expectations.rb +2 -6
  29. data/lib/rubocop/cop/rspec/named_subject.rb +0 -2
  30. data/lib/rubocop/cop/rspec/nested_groups.rb +2 -6
  31. data/lib/rubocop/cop/rspec/not_to_not.rb +1 -2
  32. data/lib/rubocop/cop/rspec/repeated_description.rb +59 -0
  33. data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +48 -0
  34. data/lib/rubocop/cop/rspec/subject_stub.rb +1 -4
  35. data/lib/rubocop/cop/rspec/verified_doubles.rb +0 -2
  36. data/lib/rubocop/rspec.rb +1 -1
  37. data/lib/rubocop/rspec/description_extractor.rb +55 -18
  38. data/lib/rubocop/rspec/example.rb +56 -0
  39. data/lib/rubocop/rspec/example_group.rb +57 -0
  40. data/lib/rubocop/rspec/language.rb +28 -1
  41. data/lib/rubocop/rspec/language/node_pattern.rb +1 -3
  42. data/lib/rubocop/rspec/top_level_describe.rb +6 -10
  43. data/lib/rubocop/rspec/version.rb +1 -1
  44. data/spec/project/default_config_spec.rb +8 -5
  45. data/spec/project/project_requires_spec.rb +1 -1
  46. data/spec/rubocop/{rspec/spec_only_spec.rb → cop/rspec/cop_spec.rb} +2 -4
  47. data/spec/rubocop/cop/rspec/describe_class_spec.rb +36 -0
  48. data/spec/rubocop/cop/rspec/described_class_spec.rb +2 -2
  49. data/spec/rubocop/cop/rspec/example_length_spec.rb +48 -60
  50. data/spec/rubocop/cop/rspec/implicit_expect_spec.rb +1 -1
  51. data/spec/rubocop/cop/rspec/message_spies_spec.rb +93 -0
  52. data/spec/rubocop/cop/rspec/repeated_description_spec.rb +76 -0
  53. data/spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb +75 -0
  54. data/spec/rubocop/rspec/description_extractor_spec.rb +46 -24
  55. data/spec/rubocop/rspec/example_group_spec.rb +44 -0
  56. data/spec/rubocop/rspec/example_spec.rb +62 -0
  57. data/spec/rubocop/rspec/language/selector_set_spec.rb +22 -2
  58. data/spec/spec_helper.rb +2 -9
  59. data/spec/support/expect_violation.rb +4 -2
  60. metadata +21 -8
  61. data/lib/rubocop/rspec/spec_only.rb +0 -61
  62. data/spec/shared/rspec_only_cop_behavior.rb +0 -68
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe RuboCop::Cop::RSpec::RepeatedDescription do
4
+ subject(:cop) { described_class.new }
5
+
6
+ it 'registers an offense for repeated descriptions' do
7
+ expect_violation(<<-RUBY)
8
+ describe 'doing x' do
9
+ it "does x" do
10
+ ^^^^^^^^^^^ Don't repeat descriptions within an example group.
11
+ end
12
+
13
+ it "does x" do
14
+ ^^^^^^^^^^^ Don't repeat descriptions within an example group.
15
+ end
16
+ end
17
+ RUBY
18
+ end
19
+
20
+ it 'registers offense for repeated descriptions separated by a context' do
21
+ expect_violation(<<-RUBY)
22
+ describe 'doing x' do
23
+ it "does x" do
24
+ ^^^^^^^^^^^ Don't repeat descriptions within an example group.
25
+ end
26
+
27
+ context 'during some use case' do
28
+ it "does x" do
29
+ # this should be fine
30
+ end
31
+ end
32
+
33
+ it "does x" do
34
+ ^^^^^^^^^^^ Don't repeat descriptions within an example group.
35
+ end
36
+ end
37
+ RUBY
38
+ end
39
+
40
+ it 'ignores descriptions repeated in a shared context' do
41
+ expect_no_violations(<<-RUBY)
42
+ describe 'doing x' do
43
+ it "does x" do
44
+ end
45
+
46
+ shared_context 'shared behavior' do
47
+ it "does x" do
48
+ end
49
+ end
50
+ end
51
+ RUBY
52
+ end
53
+
54
+ it 'ignores repeated descriptions in a nested context' do
55
+ expect_no_violations(<<-RUBY)
56
+ describe 'doing x' do
57
+ it "does x" do
58
+ end
59
+
60
+ context 'in a certain use case' do
61
+ it "does x" do
62
+ end
63
+ end
64
+ end
65
+ RUBY
66
+ end
67
+
68
+ it 'does not flag tests which do not contain description strings' do
69
+ expect_no_violations(<<-RUBY)
70
+ describe 'doing x' do
71
+ it { foo }
72
+ it { bar }
73
+ end
74
+ RUBY
75
+ end
76
+ end
@@ -0,0 +1,75 @@
1
+ describe RuboCop::Cop::RSpec::SingleArgumentMessageChain do
2
+ subject(:cop) { described_class.new }
3
+
4
+ describe 'receive_message_chain' do
5
+ it 'reports single-argument calls' do
6
+ expect_violation(<<-RUBY)
7
+ before do
8
+ allow(foo).to receive_message_chain(:one) { :two }
9
+ ^^^^^^^^^^^^^^^^^^^^^ Use `receive` instead of calling `receive_message_chain` with a single argument
10
+ end
11
+ RUBY
12
+ end
13
+
14
+ it 'accepts multi-argument calls' do
15
+ expect_no_violations(<<-RUBY)
16
+ before do
17
+ allow(foo).to receive_message_chain(:one, :two) { :three }
18
+ end
19
+ RUBY
20
+ end
21
+
22
+ it 'reports single-argument string calls' do
23
+ expect_violation(<<-RUBY)
24
+ before do
25
+ allow(foo).to receive_message_chain("one") { :two }
26
+ ^^^^^^^^^^^^^^^^^^^^^ Use `receive` instead of calling `receive_message_chain` with a single argument
27
+ end
28
+ RUBY
29
+ end
30
+
31
+ it 'accepts multi-argument string calls' do
32
+ expect_no_violations(<<-RUBY)
33
+ before do
34
+ allow(foo).to receive_message_chain("one.two") { :three }
35
+ end
36
+ RUBY
37
+ end
38
+ end
39
+
40
+ describe 'stub_chain' do
41
+ it 'reports single-argument calls' do
42
+ expect_violation(<<-RUBY)
43
+ before do
44
+ foo.stub_chain(:one) { :two }
45
+ ^^^^^^^^^^ Use `stub` instead of calling `stub_chain` with a single argument
46
+ end
47
+ RUBY
48
+ end
49
+
50
+ it 'accepts multi-argument calls' do
51
+ expect_no_violations(<<-RUBY)
52
+ before do
53
+ foo.stub_chain(:one, :two) { :three }
54
+ end
55
+ RUBY
56
+ end
57
+
58
+ it 'reports single-argument string calls' do
59
+ expect_violation(<<-RUBY)
60
+ before do
61
+ allow(foo).to stub_chain("one") { :two }
62
+ ^^^^^^^^^^ Use `stub` instead of calling `stub_chain` with a single argument
63
+ end
64
+ RUBY
65
+ end
66
+
67
+ it 'accepts multi-argument string calls' do
68
+ expect_no_violations(<<-RUBY)
69
+ before do
70
+ allow(foo).to stub_chain("one.two") { :three }
71
+ end
72
+ RUBY
73
+ end
74
+ end
75
+ end
@@ -4,32 +4,54 @@ require 'rubocop/rspec/description_extractor'
4
4
 
5
5
  RSpec.describe RuboCop::RSpec::DescriptionExtractor do
6
6
  let(:yardocs) do
7
- [
8
- instance_double(
9
- YARD::CodeObjects::MethodObject,
10
- docstring: "Checks foo\n\nLong description",
11
- to_s: 'RuboCop::Cop::RSpec::Foo',
12
- type: :class,
13
- name: 'Foo'
14
- ),
15
- instance_double(
16
- YARD::CodeObjects::MethodObject,
17
- docstring: 'Hi',
18
- to_s: 'RuboCop::Cop::RSpec::Foo#bar',
19
- type: :method,
20
- name: 'Foo#bar'
21
- ),
22
- instance_double(
23
- YARD::CodeObjects::MethodObject,
24
- docstring: 'This is not a cop',
25
- to_s: 'RuboCop::Cop::Mixin::Sneaky',
26
- type: :class
27
- )
28
- ]
7
+ YARD.parse_string(<<-RUBY)
8
+ # This is not a cop
9
+ class RuboCop::Cop::Mixin::Sneaky
10
+ end
11
+
12
+ # This is not a concrete cop
13
+ #
14
+ # @abstract
15
+ class RuboCop::Cop::RSpec::Cop
16
+ end
17
+
18
+ # Checks foo
19
+ #
20
+ # Some description
21
+ #
22
+ # @note only works with foo
23
+ class RuboCop::Cop::RSpec::Foo
24
+ # Hello
25
+ def bar
26
+ end
27
+ end
28
+
29
+ class RuboCop::Cop::RSpec::Undocumented
30
+ # Hello
31
+ def bar
32
+ end
33
+ end
34
+ RUBY
35
+
36
+ YARD::Registry.all
37
+ end
38
+
39
+ def stub_cop_const(name)
40
+ stub_const(
41
+ "RuboCop::Cop::RSpec::#{name}",
42
+ Class.new(RuboCop::Cop::Cop)
43
+ )
44
+ end
45
+
46
+ before do
47
+ stub_cop_const('Foo')
48
+ stub_cop_const('Undocumented')
29
49
  end
30
50
 
31
51
  it 'builds a hash of descriptions' do
32
- expect(described_class.new(yardocs).to_h)
33
- .to eql('RSpec/Foo' => { 'Description' => 'Checks foo' })
52
+ expect(described_class.new(yardocs).to_h).to eql(
53
+ 'RSpec/Foo' => { 'Description' => 'Checks foo' },
54
+ 'RSpec/Undocumented' => { 'Description' => '' }
55
+ )
34
56
  end
35
57
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe RuboCop::RSpec::ExampleGroup do
4
+ include RuboCop::Sexp
5
+
6
+ subject(:group) { described_class.new(parse_source(source).ast) }
7
+
8
+ let(:source) do
9
+ <<-RUBY
10
+ RSpec.describe Foo do
11
+ it 'does x' do
12
+ x
13
+ end
14
+
15
+ it 'does y' do
16
+ y
17
+ end
18
+
19
+ context 'nested' do
20
+ it 'does z' do
21
+ z
22
+ end
23
+ end
24
+ end
25
+ RUBY
26
+ end
27
+
28
+ let(:example_nodes) do
29
+ [
30
+ s(:block,
31
+ s(:send, nil, :it,
32
+ s(:str, 'does x')),
33
+ s(:args), s(:send, nil, :x)),
34
+ s(:block,
35
+ s(:send, nil, :it,
36
+ s(:str, 'does y')),
37
+ s(:args), s(:send, nil, :y))
38
+ ].map { |node| RuboCop::RSpec::Example.new(node) }
39
+ end
40
+
41
+ it 'exposes examples in scope' do
42
+ expect(group.examples).to eql(example_nodes)
43
+ end
44
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe RuboCop::RSpec::Example do
4
+ include RuboCop::Sexp
5
+
6
+ def example(source)
7
+ described_class.new(parse_source(source).ast)
8
+ end
9
+
10
+ it 'extracts doc string' do
11
+ expect(example("it('does x') { foo }").doc_string)
12
+ .to eql(s(:str, 'does x'))
13
+ end
14
+
15
+ it 'extracts doc string for unimplemented examples' do
16
+ expect(example("it('does x')").doc_string)
17
+ .to eql(s(:str, 'does x'))
18
+ end
19
+
20
+ it 'returns nil for examples without doc strings' do
21
+ expect(example('it { foo }').doc_string).to be(nil)
22
+ end
23
+
24
+ it 'extracts keywords' do
25
+ expect(example("it('foo', :bar, baz: :qux) { a }").metadata)
26
+ .to eql([s(:sym, :bar), s(:hash, s(:pair, s(:sym, :baz), s(:sym, :qux)))])
27
+ end
28
+
29
+ it 'extracts implementation' do
30
+ expect(example('it("foo") { bar; baz }').implementation)
31
+ .to eql(s(:begin, s(:send, nil, :bar), s(:send, nil, :baz)))
32
+ end
33
+
34
+ it 'returns node' do
35
+ node = s(:sym, :node)
36
+ expect(described_class.new(node).to_node).to be(node)
37
+ end
38
+
39
+ context 'value object semantics' do
40
+ it 'compares by value' do # rubocop:disable RSpec/MultipleExpectations
41
+ aggregate_failures 'equality semantics' do
42
+ expect(example('it("foo")')).to eq(example('it("foo")'))
43
+ expect(example('it("foo")')).not_to eq(example('it("bar")'))
44
+ end
45
+ end
46
+
47
+ it 'can be used as a key in a hash' do
48
+ hash = {}
49
+
50
+ hash[example('it("foo")')] = 123
51
+
52
+ expect(hash[example('it("foo")')]).to be(123)
53
+ end
54
+
55
+ it 'computes #hash based on class and node' do
56
+ node = s(:node)
57
+
58
+ expect(described_class.new(node).hash)
59
+ .to eql([described_class, node].hash)
60
+ end
61
+ end
62
+ end
@@ -21,9 +21,29 @@ describe RuboCop::RSpec::Language::SelectorSet do
21
21
  end
22
22
  end
23
23
 
24
- context '#to_node_pattern' do
24
+ context '#node_pattern' do
25
25
  it 'builds a node pattern' do
26
- expect(selector_set.to_node_pattern).to eql(':foo :bar')
26
+ expect(selector_set.node_pattern).to eql(':foo :bar')
27
+ end
28
+ end
29
+
30
+ context '#node_pattern_union' do
31
+ it 'builds a node pattern union' do
32
+ expect(selector_set.node_pattern_union).to eql('{:foo :bar}')
33
+ end
34
+ end
35
+
36
+ context '#send_pattern' do
37
+ it 'builds a send matching pattern' do
38
+ expect(selector_set.send_pattern).to eql('(send _ {:foo :bar} ...)')
39
+ end
40
+ end
41
+
42
+ context '#block_pattern' do
43
+ it 'builds a block matching pattern' do
44
+ expect(selector_set.block_pattern).to eql(
45
+ '(block (send _ {:foo :bar} ...) ...)'
46
+ )
27
47
  end
28
48
  end
29
49
  end
data/spec/spec_helper.rb CHANGED
@@ -3,8 +3,8 @@ require 'rubocop'
3
3
  require 'rubocop/rspec/support'
4
4
 
5
5
  if ENV['CI']
6
- require 'codeclimate-test-reporter'
7
- CodeClimate::TestReporter.start
6
+ require 'simplecov'
7
+ SimpleCov.start
8
8
  end
9
9
 
10
10
  module SpecHelper
@@ -17,13 +17,6 @@ Dir.glob(spec_helper_glob).map(&method(:require))
17
17
  RSpec.configure do |config|
18
18
  config.order = :random
19
19
 
20
- # Define spec metadata for all rspec cop spec files
21
- cop_specs = 'spec/rubocop/cop/rspec/'
22
- config.define_derived_metadata(file_path: /\b#{cop_specs}/) do |metadata|
23
- # Attach metadata that signals the specified code is for an RSpec only cop
24
- metadata[:rspec_cop] = true
25
- end
26
-
27
20
  config.expect_with :rspec do |expectations|
28
21
  expectations.syntax = :expect # Disable `should`
29
22
  end
@@ -29,10 +29,12 @@ module ExpectViolation
29
29
  private
30
30
 
31
31
  def to_assertion(offense)
32
+ highlight = offense.highlighted_area
33
+
32
34
  Expectation::Assertion.new(
33
35
  message: offense.message,
34
- line_number: offense.location.line,
35
- column_range: offense.location.column_range
36
+ line_number: offense.location.first_line,
37
+ column_range: highlight.begin_pos...highlight.end_pos
36
38
  )
37
39
  end
38
40
 
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.8.0
4
+ version: 1.9.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: 2016-10-27 00:00:00.000000000 Z
13
+ date: 2016-12-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -146,6 +146,7 @@ files:
146
146
  - lib/rubocop-rspec.rb
147
147
  - lib/rubocop/cop/rspec/any_instance.rb
148
148
  - lib/rubocop/cop/rspec/be_eql.rb
149
+ - lib/rubocop/cop/rspec/cop.rb
149
150
  - lib/rubocop/cop/rspec/describe_class.rb
150
151
  - lib/rubocop/cop/rspec/describe_method.rb
151
152
  - lib/rubocop/cop/rspec/described_class.rb
@@ -162,20 +163,24 @@ files:
162
163
  - lib/rubocop/cop/rspec/let_setup.rb
163
164
  - lib/rubocop/cop/rspec/message_chain.rb
164
165
  - lib/rubocop/cop/rspec/message_expectation.rb
166
+ - lib/rubocop/cop/rspec/message_spies.rb
165
167
  - lib/rubocop/cop/rspec/multiple_describes.rb
166
168
  - lib/rubocop/cop/rspec/multiple_expectations.rb
167
169
  - lib/rubocop/cop/rspec/named_subject.rb
168
170
  - lib/rubocop/cop/rspec/nested_groups.rb
169
171
  - lib/rubocop/cop/rspec/not_to_not.rb
172
+ - lib/rubocop/cop/rspec/repeated_description.rb
173
+ - lib/rubocop/cop/rspec/single_argument_message_chain.rb
170
174
  - lib/rubocop/cop/rspec/subject_stub.rb
171
175
  - lib/rubocop/cop/rspec/verified_doubles.rb
172
176
  - lib/rubocop/rspec.rb
173
177
  - lib/rubocop/rspec/config_formatter.rb
174
178
  - lib/rubocop/rspec/description_extractor.rb
179
+ - lib/rubocop/rspec/example.rb
180
+ - lib/rubocop/rspec/example_group.rb
175
181
  - lib/rubocop/rspec/inject.rb
176
182
  - lib/rubocop/rspec/language.rb
177
183
  - lib/rubocop/rspec/language/node_pattern.rb
178
- - lib/rubocop/rspec/spec_only.rb
179
184
  - lib/rubocop/rspec/top_level_describe.rb
180
185
  - lib/rubocop/rspec/util.rb
181
186
  - lib/rubocop/rspec/version.rb
@@ -187,6 +192,7 @@ files:
187
192
  - spec/project/project_requires_spec.rb
188
193
  - spec/rubocop/cop/rspec/any_instance_spec.rb
189
194
  - spec/rubocop/cop/rspec/be_eql_spec.rb
195
+ - spec/rubocop/cop/rspec/cop_spec.rb
190
196
  - spec/rubocop/cop/rspec/describe_class_spec.rb
191
197
  - spec/rubocop/cop/rspec/describe_method_spec.rb
192
198
  - spec/rubocop/cop/rspec/described_class_spec.rb
@@ -203,22 +209,25 @@ files:
203
209
  - spec/rubocop/cop/rspec/let_setup_spec.rb
204
210
  - spec/rubocop/cop/rspec/message_chain_spec.rb
205
211
  - spec/rubocop/cop/rspec/message_expectation_spec.rb
212
+ - spec/rubocop/cop/rspec/message_spies_spec.rb
206
213
  - spec/rubocop/cop/rspec/multiple_describes_spec.rb
207
214
  - spec/rubocop/cop/rspec/multiple_expectations_spec.rb
208
215
  - spec/rubocop/cop/rspec/named_subject_spec.rb
209
216
  - spec/rubocop/cop/rspec/nested_groups_spec.rb
210
217
  - spec/rubocop/cop/rspec/not_to_not_spec.rb
218
+ - spec/rubocop/cop/rspec/repeated_description_spec.rb
219
+ - spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb
211
220
  - spec/rubocop/cop/rspec/subject_stub_spec.rb
212
221
  - spec/rubocop/cop/rspec/verified_doubles_spec.rb
213
222
  - spec/rubocop/rspec/config_formatter_spec.rb
214
223
  - spec/rubocop/rspec/description_extractor_spec.rb
224
+ - spec/rubocop/rspec/example_group_spec.rb
225
+ - spec/rubocop/rspec/example_spec.rb
215
226
  - spec/rubocop/rspec/language/selector_set_spec.rb
216
- - spec/rubocop/rspec/spec_only_spec.rb
217
227
  - spec/rubocop/rspec/util/one_spec.rb
218
228
  - spec/rubocop/rspec/wording_spec.rb
219
229
  - spec/shared/autocorrect_behavior.rb
220
230
  - spec/shared/detects_style_behavior.rb
221
- - spec/shared/rspec_only_cop_behavior.rb
222
231
  - spec/spec_helper.rb
223
232
  - spec/support/expect_violation.rb
224
233
  homepage: http://github.com/backus/rubocop-rspec
@@ -241,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
250
  version: '0'
242
251
  requirements: []
243
252
  rubyforge_project:
244
- rubygems_version: 2.6.6
253
+ rubygems_version: 2.5.2
245
254
  signing_key:
246
255
  specification_version: 4
247
256
  summary: Code style checking for RSpec files
@@ -252,6 +261,7 @@ test_files:
252
261
  - spec/project/project_requires_spec.rb
253
262
  - spec/rubocop/cop/rspec/any_instance_spec.rb
254
263
  - spec/rubocop/cop/rspec/be_eql_spec.rb
264
+ - spec/rubocop/cop/rspec/cop_spec.rb
255
265
  - spec/rubocop/cop/rspec/describe_class_spec.rb
256
266
  - spec/rubocop/cop/rspec/describe_method_spec.rb
257
267
  - spec/rubocop/cop/rspec/described_class_spec.rb
@@ -268,21 +278,24 @@ test_files:
268
278
  - spec/rubocop/cop/rspec/let_setup_spec.rb
269
279
  - spec/rubocop/cop/rspec/message_chain_spec.rb
270
280
  - spec/rubocop/cop/rspec/message_expectation_spec.rb
281
+ - spec/rubocop/cop/rspec/message_spies_spec.rb
271
282
  - spec/rubocop/cop/rspec/multiple_describes_spec.rb
272
283
  - spec/rubocop/cop/rspec/multiple_expectations_spec.rb
273
284
  - spec/rubocop/cop/rspec/named_subject_spec.rb
274
285
  - spec/rubocop/cop/rspec/nested_groups_spec.rb
275
286
  - spec/rubocop/cop/rspec/not_to_not_spec.rb
287
+ - spec/rubocop/cop/rspec/repeated_description_spec.rb
288
+ - spec/rubocop/cop/rspec/single_argument_message_chain_spec.rb
276
289
  - spec/rubocop/cop/rspec/subject_stub_spec.rb
277
290
  - spec/rubocop/cop/rspec/verified_doubles_spec.rb
278
291
  - spec/rubocop/rspec/config_formatter_spec.rb
279
292
  - spec/rubocop/rspec/description_extractor_spec.rb
293
+ - spec/rubocop/rspec/example_group_spec.rb
294
+ - spec/rubocop/rspec/example_spec.rb
280
295
  - spec/rubocop/rspec/language/selector_set_spec.rb
281
- - spec/rubocop/rspec/spec_only_spec.rb
282
296
  - spec/rubocop/rspec/util/one_spec.rb
283
297
  - spec/rubocop/rspec/wording_spec.rb
284
298
  - spec/shared/autocorrect_behavior.rb
285
299
  - spec/shared/detects_style_behavior.rb
286
- - spec/shared/rspec_only_cop_behavior.rb
287
300
  - spec/spec_helper.rb
288
301
  - spec/support/expect_violation.rb