Sha256: d68e7105fe606df3595f83acc8bb1bcafadd3db6ce38ae19e2d0c19623d46713
Contents?: true
Size: 1.78 KB
Versions: 3
Compression:
Stored size: 1.78 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module RSpec # Checks if test is focused. # # @example # # bad # describe MyClass, focus: true do # end # # describe MyClass, :focus do # end # # fdescribe MyClass do # end # # # good # describe MyClass do # end class Focus < Cop MSG = 'Focused spec found.'.freeze FOCUSABLE_SELECTORS = ' :context :describe :example :example_group :feature :it :scenario :specify :xcontext :xdescribe :xexample :xfeature :xit :xscenario :xspecify '.freeze FOCUSING_SELECTORS = ' :fcontext :fdescribe :fexample :ffeature :fit :focus :fscenario :fspecify '.freeze FOCUS_SYMBOL = s(:sym, :focus) FOCUS_TRUE = s(:pair, FOCUS_SYMBOL, s(:true)) def_node_matcher :metadata, <<-PATTERN {(send nil {#{FOCUSABLE_SELECTORS}} ... (hash $...)) (send nil {#{FOCUSABLE_SELECTORS}} $...)} PATTERN def_node_matcher :focused_block?, <<-PATTERN (send nil {#{FOCUSING_SELECTORS}} ...) PATTERN def on_send(node) focus_metadata(node) do |focus| add_offense(focus, :expression) end end private def focus_metadata(node, &block) yield(node) if focused_block?(node) metadata(node) do |matches| matches.grep(FOCUS_SYMBOL, &block) matches.grep(FOCUS_TRUE, &block) end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubocop-rspec-1.6.0 | lib/rubocop/cop/rspec/focus.rb |
rubocop-rspec-1.5.3 | lib/rubocop/cop/rspec/focus.rb |
rubocop-rspec-1.5.2 | lib/rubocop/cop/rspec/focus.rb |