class RuboCop::Cop::Primer::TestSelector
Primer::BaseComponent.new(test_selector: “the-component”)
Good:
Primer::BaseComponent.new(data: { “test-selector”: “the-component” })
Bad:
a ‘data-test-selector` attribute.
Prefer the `test_selector` argument over manually generating
def on_send(node)
def on_send(node) return unless valid_node?(node) return unless node.arguments? kwargs = node.arguments.last return unless kwargs.type == :hash data_arg = kwargs.pairs.find { |kwarg| kwarg.key.value == :data } return if data_arg.nil? return unless data_arg.value.type == :hash hash = data_arg.child_nodes.find { |arg| arg.type == :hash } return unless hash test_selector = hash.pairs.find do |pair| pair.key.value == :"test-selector" || pair.key.value == "test-selector" end return unless test_selector add_offense(data_arg, message: INVALID_MESSAGE) end