Class: Line::Message::RSpec::Matchers::HaveFlexMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/line/message/rspec/matchers/have_flex_message.rb

Overview

The flex message matcher for RSpec to search for flex messages in the message array.

Instance Method Summary collapse

Constructor Details

#initialize(expected) ⇒ HaveFlexMessage

Returns a new instance of HaveFlexMessage.



10
11
12
# File 'lib/line/message/rspec/matchers/have_flex_message.rb', line 10

def initialize(expected)
  @expected = expected
end

Instance Method Details

#descriptionObject



14
15
16
17
18
# File 'lib/line/message/rspec/matchers/have_flex_message.rb', line 14

def description
  return "have flex message" if @expected.nil?

  "have flex message alt text matching #{@expected.inspect}"
end

#failure_messageObject



26
27
28
# File 'lib/line/message/rspec/matchers/have_flex_message.rb', line 26

def failure_message
  "expected to find a flex message alt text matching #{@expected}"
end

#matches?(actual) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


20
21
22
23
# File 'lib/line/message/rspec/matchers/have_flex_message.rb', line 20

def matches?(actual)
  @actual = Utils.stringify_keys!(actual, deep: true)
  @actual.any? { |message| match_alt_text?(message) }
end