class RuboCop::Cop::Discourse::TimeEqMatcher

Use `eq_time` matcher with timestamps in specs.

@example

# bad
expect(user.created_at).to eq(Time.zone.now)

# good
expect(user.created_at).to eq_time(Time.zone.now)

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/discourse/time_eq_matcher.rb, line 31
def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.children.last.loc.selector, "eq_time")
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/discourse/time_eq_matcher.rb, line 25
def on_send(node)
  return unless using_eq_matcher_with_timestamp?(node)

  add_offense(node, message: MSG)
end

Private Instance Methods

not_nil?(expression) click to toggle source
# File lib/rubocop/cop/discourse/time_eq_matcher.rb, line 43
def not_nil?(expression)
  !expression.nil_type?
end
timestamp_suffix?(property) click to toggle source
# File lib/rubocop/cop/discourse/time_eq_matcher.rb, line 39
def timestamp_suffix?(property)
  property =~ /_at$/
end