Class: RuboCop::Cop::RSpecParity::PublicMethodHasSpec
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::RSpecParity::PublicMethodHasSpec
- Includes:
- DepartmentConfig, SpecFileFinder
- Defined in:
- lib/rubocop/cop/rspec_parity/public_method_has_spec.rb
Overview
Checks that each public method in a class has a corresponding spec test.
Constant Summary collapse
- MSG =
"Missing spec for public method `%<method_name>s`. " \ "Expected %<expected>s in %<spec_path>s"
- EXCLUDED_METHODS =
%w[initialize].freeze
- EXCLUDED_HOOK_METHODS =
%w[included extended inherited prepended].freeze
- EXCLUDED_PATTERNS =
[/^before_/, /^after_/, /^around_/, /^validate_/, /^autosave_/].freeze
- VISIBILITY_METHODS =
{ private: :private, protected: :protected, public: :public }.freeze
Constants included from DepartmentConfig
DepartmentConfig::SHARED_CONFIG_DEFAULTS
Instance Method Summary collapse
Instance Method Details
#on_def(node) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/rubocop/cop/rspec_parity/public_method_has_spec.rb', line 27 def on_def(node) return unless checkable_method?(node) && public_method?(node) return if inside_inner_class?(node) instance_method = !inside_eigenclass?(node) && !inside_class_methods_block?(node) flexible_prefix = instance_method && module_with_dual_access?(node) check_method_has_spec(node, instance_method: instance_method, flexible_prefix: flexible_prefix) end |
#on_defs(node) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/rubocop/cop/rspec_parity/public_method_has_spec.rb', line 36 def on_defs(node) return unless checkable_method?(node) && public_class_method?(node) return if EXCLUDED_HOOK_METHODS.include?(node.method_name.to_s) return if inside_inner_class?(node) check_method_has_spec(node, instance_method: false) end |