class RuboCop::Cop::RSpec::PendingWithoutReason
Checks for pending or skipped examples without reason.
@example
# bad pending 'does something' do end # bad it 'does something', :pending do end # bad it 'does something' do pending end # bad xdescribe 'something' do end # bad skip 'does something' do end # bad it 'does something', :skip do end # bad it 'does something' do skip end # bad it 'does something' # good it 'does something' do pending 'reason' end # good it 'does something' do skip 'reason' end # good it 'does something', pending: 'reason' do end # good it 'does something', skip: 'reason' do end
Constants
- MSG
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 102 def on_send(node) on_pending_by_metadata(node) return unless (parent = parent_node(node)) if spec_group?(parent) || block_node_example_group?(node) on_skipped_by_example_method(node) on_skipped_by_example_group_method(node) elsif example?(parent) on_skipped_by_in_example_method(node) end end
Private Instance Methods
block_node_example_group?(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 123 def block_node_example_group?(node) node.block_node && example_group?(node.block_node) && explicit_rspec?(node.receiver) end
on_pending_by_metadata(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 135 def on_pending_by_metadata(node) metadata_without_reason?(node) do |pending| add_offense(node, message: "Give the reason for #{pending}.") end end
on_skipped_by_example_group_method(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 151 def on_skipped_by_example_group_method(node) skipped_by_example_group_method?(node) do add_offense(node, message: 'Give the reason for skip.') end end
on_skipped_by_example_method(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 141 def on_skipped_by_example_method(node) skipped_by_example_method?(node) do |pending| add_offense(node, message: "Give the reason for #{pending}.") end skipped_by_example_method_with_block?(node.parent) do |pending| add_offense(node, message: "Give the reason for #{pending}.") end end
on_skipped_by_in_example_method(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 129 def on_skipped_by_in_example_method(node) skipped_in_example?(node) do |pending| add_offense(node, message: "Give the reason for #{pending}.") end end
parent_node(node)
click to toggle source
# File lib/rubocop/cop/rspec/pending_without_reason.rb, line 116 def parent_node(node) node_or_block = node.block_node || node return unless (parent = node_or_block.parent) parent.begin_type? && parent.parent ? parent.parent : parent end