Class: RuboCop::Cop::RSpec::FilePath
- Includes:
- Namespace, TopLevelGroup
- Defined in:
- lib/rubocop/cop/rspec/file_path.rb
Overview
Checks that spec file paths are consistent and well-formed.
By default, this checks that spec file paths are consistent with the test subject and enforces that it reflects the described class/module and its optionally called out method.
With the configuration option ‘IgnoreMethods` the called out method will be ignored when determining the enforced path.
With the configuration option ‘CustomTransform` modules or classes can be specified that should not as usual be transformed from CamelCase to snake_case (e.g. ’RuboCop’ => ‘rubocop’ ).
With the configuration option ‘SpecSuffixOnly` test files will only be checked to ensure they end in ’_spec.rb’. This option disables checking for consistency in the test subject or test methods.
Constant Summary collapse
- MSG =
'Spec path should end with `%<suffix>s`.'
Instance Method Summary collapse
- #example_group(node) ⇒ Object
- #on_top_level_example_group(node) ⇒ Object
- #routing_metadata?(node) ⇒ Object
Methods included from TopLevelGroup
#on_new_investigation, #top_level_groups
Methods inherited from Base
inherited, #on_new_investigation
Methods included from RSpec::Language::NodePattern
#block_or_numblock_pattern, #block_pattern, #numblock_pattern, #send_pattern
Methods included from RSpec::Language
#example?, #example_group?, #example_group_with_body?, #explicit_rspec?, #hook?, #include?, #let?, #rspec?, #shared_group?, #spec_group?, #subject?
Instance Method Details
#example_group(node) ⇒ Object
66 67 68 69 70 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 66 def_node_matcher :example_group, <<~PATTERN (block $(send #rspec? _example_group $_ $...) ... ) PATTERN |
#on_top_level_example_group(node) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 75 def on_top_level_example_group(node) return unless top_level_groups.one? example_group(node) do |send_node, example_group, arguments| ensure_correct_file_path(send_node, example_group, arguments) end end |
#routing_metadata?(node) ⇒ Object
73 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 73 def_node_search :routing_metadata?, '(pair (sym :type) (sym :routing))' |