class Gitlab::Styles::Rubocop::Cop::RSpec::VerboseIncludeMetadata
Checks for verbose include metadata used in the specs.
@example
# bad describe MyClass, js: true do end # good describe MyClass, :js do end
Constants
- MSG
- SELECTORS
Public Instance Methods
on_send(node)
click to toggle source
# File lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb, line 41 def on_send(node) invalid_metadata_matches(node) do |match| add_offense(node, message: format(MSG, good(match), bad(match))) do |corrector| invalid_metadata_matches(node) do |match| corrector.replace(match.loc.expression, good(match)) end end end end
Private Instance Methods
bad(match)
click to toggle source
# File lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb, line 59 def bad(match) "#{metadata_key(match)}: true" end
good(match)
click to toggle source
# File lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb, line 63 def good(match) ":#{metadata_key(match)}" end
invalid_metadata_matches(node, &block)
click to toggle source
# File lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb, line 53 def invalid_metadata_matches(node, &block) include_metadata(node) do |matches| matches.select { |match| invalid_metadata?(match) }.each(&block) end end
metadata_key(match)
click to toggle source
# File lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb, line 67 def metadata_key(match) match.children[0].source end