class RuboCop::Cop::RSpec::PendingWithoutReason
end
it ‘does something’, skip: ‘reason’ do
# good
end
it ‘does something’, pending: ‘reason’ do
# good
end
skip ‘reason’
it ‘does something’ do
# good
end
pending ‘reason’
it ‘does something’ do
# good
it ‘does something’
# bad
end
skip
it ‘does something’ do
# bad
end
it ‘does something’, :skip do
# bad
end
skip ‘does something’ do
# bad
end
xdescribe ‘something’ do
# bad
end
pending
it ‘does something’ do
# bad
end
it ‘does something’, :pending do
# bad
end
pending ‘does something’ do
# bad
@example
Checks for pending or skipped examples without reason.
def block_node_example_group?(node)
def block_node_example_group?(node) node.block_node && example_group?(node.block_node) && explicit_rspec?(node.receiver) end
def on_pending_by_metadata(node)
def on_pending_by_metadata(node) metadata_without_reason?(node) do |pending| add_offense(node, message: "Give the reason for #{pending}.") end end
def on_send(node)
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
def on_skipped_by_example_group_method(node)
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
def on_skipped_by_example_method(node)
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
def on_skipped_by_in_example_method(node)
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
def parent_node(node)
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