Sha256: 5f10605335d6a9fdfe92620cdbfeb0b9f7b284325c0d3c2c322c3c344942e307
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module RSpec # Check that the first argument to the top level describe is the tested # class or module. # # @example # # bad # describe 'Do something' do # end # # # good # describe TestedClass do # end # # describe "A feature example", type: :feature do # end class DescribeClass < Cop include RuboCop::RSpec::TopLevelDescribe MSG = 'The first argument to describe should be '\ 'the class or module being tested.'.freeze def_node_matcher :valid_describe?, <<-PATTERN {(send {(const nil :RSpec) nil} :describe const ...) (send nil :describe)} PATTERN def_node_matcher :describe_with_metadata, <<-PATTERN (send {(const nil :RSpec) nil} :describe !const ... (hash $...)) PATTERN def_node_matcher :rails_metadata?, <<-PATTERN (pair (sym :type) (sym {:request :feature :routing :view})) PATTERN def on_top_level_describe(node, args) return if valid_describe?(node) describe_with_metadata(node) do |pairs| return if pairs.any?(&method(:rails_metadata?)) end add_offense(args.first, :expression) 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/describe_class.rb |
rubocop-rspec-1.5.3 | lib/rubocop/cop/rspec/describe_class.rb |
rubocop-rspec-1.5.2 | lib/rubocop/cop/rspec/describe_class.rb |