class RuboCop::Cop::RSpec::ExampleWithoutDescription
Checks for examples without a description.
RSpec
allows for auto-generated example descriptions when there is no description provided or the description is an empty one.
This cop removes empty descriptions. It also defines whether auto-generated description is allowed, based on the configured style.
This cop can be configured using the `EnforcedStyle` option
@example `EnforcedStyle: always_allow`
# bad it('') { is_expected.to be_good } it '' do result = service.call expect(result).to be(true) end # good it { is_expected.to be_good } it do result = service.call expect(result).to be(true) end
@example `EnforcedStyle: single_line_only`
# bad it('') { is_expected.to be_good } it do result = service.call expect(result).to be(true) end # good it { is_expected.to be_good }
@example `EnforcedStyle: disallow`
# bad it { is_expected.to be_good } it do result = service.call expect(result).to be(true) end
Constants
- MSG_ADD_DESCRIPTION
- MSG_DEFAULT_ARGUMENT
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/example_without_description.rb, line 59 def on_block(node) return unless example?(node) check_example_without_description(node.send_node) example_description(node.send_node) do |message_node, message| return unless message.to_s.empty? add_offense(message_node, message: MSG_DEFAULT_ARGUMENT) end end
Private Instance Methods
check_example_without_description(node)
click to toggle source
# File lib/rubocop/cop/rspec/example_without_description.rb, line 73 def check_example_without_description(node) return if node.arguments? return unless disallow_empty_description?(node) add_offense(node, message: MSG_ADD_DESCRIPTION) end
disallow_empty_description?(node)
click to toggle source
# File lib/rubocop/cop/rspec/example_without_description.rb, line 80 def disallow_empty_description?(node) style == :disallow || (style == :single_line_only && node.parent.multiline?) end