Repository URL to install this package:
|
Version:
0.3.0 ▾
|
# frozen_string_literal: true
require 'rubocop'
module RuboCop
module Cop
# This cops checks to ensure that RSpec suites properly require the `spec_helper` file.
class RequireSpecHelper < RuboCop::Cop::Base
REQUIRES_SPEC_HELPER = <<~PATTERN
`(begin
(send nil? :require
(str "spec_helper")
)
...
)
PATTERN
def_node_matcher :requires_spec_helper?, REQUIRES_SPEC_HELPER
# Any file ending in `_spec.rb` should require `spec_helper` once.
def on_new_investigation
return unless processed_source.file_path.end_with?('_spec.rb')
ast = processed_source.ast
return unless ast
return if requires_spec_helper?(ast)
add_offense(ast, message: 'RSpec suites must require `spec_helper`')
end
end
end
end