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.
This cop is deprecated. We plan to remove it in the next major version update to 3.0. The migration targets are ‘RSpec/SpecFilePathSuffix` and `RSpec/SpecFilePathFormat`. If you are using this cop, please plan for migration.
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
72 73 74 75 76 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 72 def_node_matcher :example_group, <<~PATTERN (block $(send #rspec? _example_group $_ $...) ... ) PATTERN |
#on_top_level_example_group(node) ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 81 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
79 |
# File 'lib/rubocop/cop/rspec/file_path.rb', line 79 def_node_search :routing_metadata?, '(pair (sym :type) (sym :routing))' |