rubocop-rspec icon indicating copy to clipboard operation
rubocop-rspec copied to clipboard

RSpec/RedundantPredicateMatcher autocorrect on be_match is not safe

Open Tietew opened this issue 1 year ago • 1 comments

Example

class Token
  def initialize(token) = @token = token
  def match?(other) = other == @token
end

Passed expectation

expect(Token.new('FOO')).to be_match('FOO')
# calls Token.new('FOO').match?('FOO') => true

Autocorrected expectation

expect(Token.new('FOO')).to match('FOO')
# calls 'FOO'.match(Token.new('FOO')) => false

fails with message:

expected #<Token:0x**** @token="FOO"> to match "FOO"

Tietew avatar Jan 16 '24 07:01 Tietew

Is it deliberate that you don’t want to override == in this class?

pirj avatar Jan 22 '24 05:01 pirj