Module: Line::Message::RSpec::Matchers

Defined in:
lib/line/message/rspec/matchers/have_flex_bubble.rb,
lib/line/message/rspec/matchers/utils.rb,
lib/line/message/rspec/matchers/have_quick_reply.rb,
lib/line/message/rspec/matchers/have_flex_message.rb,
lib/line/message/rspec/matchers/have_text_message.rb,
lib/line/message/rspec/matchers/have_flex_component.rb,
lib/line/message/rspec/matchers/have_flex_separator.rb

Overview

:nodoc:

Defined Under Namespace

Modules: Utils Classes: HaveFlexBubble, HaveFlexComponent, HaveFlexMessage, HaveQuickReply, HaveTextMessage

Instance Method Summary collapse

Instance Method Details

#have_line_flex_box(**options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



76
77
78
79
80
81
82
83
84
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 76

def have_line_flex_box(**options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "box(#{options.inspect})") do |content|
    next false unless content["type"] == "box"

    ::RSpec::Matchers::BuiltIn::Include.new(options).matches?(content)
  end
end

#have_line_flex_bubble(expected = nil) ⇒ Object

rubocop:disable Naming/PredicatePrefix



54
55
56
# File 'lib/line/message/rspec/matchers/have_flex_bubble.rb', line 54

def have_line_flex_bubble(expected = nil) # rubocop:disable Naming/PredicatePrefix
  HaveFlexBubble.new(expected)
end

#have_line_flex_button(type, **options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 96

def have_line_flex_button(type, **options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "#{type} button(#{options.inspect})") do |content|
    next false unless content["type"] == "button"

    ::RSpec::Matchers::BuiltIn::Include.new({ "type" => type, **options }).matches?(content["action"]) ||
      ::RSpec::Matchers::BuiltIn::Include.new({ **options, "action" => ::RSpec::Matchers::BuiltIn::Include.new(
        "type" => type
      ) }).matches?(content)
  end
end

#have_line_flex_componentObject

rubocop:disable Naming/PredicatePrefix



72
73
74
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 72

def have_line_flex_component(&) # rubocop:disable Naming/PredicatePrefix
  HaveFlexComponent.new(&)
end

#have_line_flex_icon(url, **options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



119
120
121
122
123
124
125
126
127
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 119

def have_line_flex_icon(url, **options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "icon(#{url.inspect})") do |content|
    next false unless content["type"] == "icon"

    ::RSpec::Matchers::BuiltIn::Include.new({ "url" => url, **options }).matches?(content)
  end
end

#have_line_flex_image(url, **options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



109
110
111
112
113
114
115
116
117
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 109

def have_line_flex_image(url, **options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "image(#{url.inspect})") do |content|
    next false unless content["type"] == "image"

    ::RSpec::Matchers::BuiltIn::Include.new({ "url" => url, **options }).matches?(content)
  end
end

#have_line_flex_message(expected = nil) ⇒ Object

rubocop:disable Naming/PredicatePrefix



40
41
42
# File 'lib/line/message/rspec/matchers/have_flex_message.rb', line 40

def have_line_flex_message(expected = nil) # rubocop:disable Naming/PredicatePrefix
  HaveFlexMessage.new(expected)
end

#have_line_flex_separator(**options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



8
9
10
11
12
13
14
15
16
# File 'lib/line/message/rspec/matchers/have_flex_separator.rb', line 8

def have_line_flex_separator(**options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "separator(#{options.inspect})") do |content|
    next false unless content["type"] == "separator"

    options.empty? || ::RSpec::Matchers::BuiltIn::Include.new(options).matches?(content)
  end
end

#have_line_flex_span(text, **options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



129
130
131
132
133
134
135
136
137
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 129

def have_line_flex_span(text, **options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "span(#{text.inspect})") do |content|
    next false unless content["type"] == "span"

    content["text"].match?(text) && ::RSpec::Matchers::BuiltIn::Include.new(options).matches?(content)
  end
end

#have_line_flex_text(text, **options) ⇒ Object

rubocop:disable Naming/PredicatePrefix



86
87
88
89
90
91
92
93
94
# File 'lib/line/message/rspec/matchers/have_flex_component.rb', line 86

def have_line_flex_text(text, **options) # rubocop:disable Naming/PredicatePrefix
  options = Utils.stringify_keys!(options, deep: true)

  HaveFlexComponent.new(expected_desc: "text(#{text.inspect})") do |content|
    next false unless content["type"] == "text"

    content["text"].match?(text) && ::RSpec::Matchers::BuiltIn::Include.new(options).matches?(content)
  end
end

#have_line_quick_reply(expected = nil) ⇒ Object

rubocop:disable Naming/PredicatePrefix



47
48
49
# File 'lib/line/message/rspec/matchers/have_quick_reply.rb', line 47

def have_line_quick_reply(expected = nil) # rubocop:disable Naming/PredicatePrefix
  HaveQuickReply.new(expected)
end

#have_line_text_message(*expected) ⇒ Object

rubocop:disable Naming/PredicatePrefix



41
42
43
# File 'lib/line/message/rspec/matchers/have_text_message.rb', line 41

def have_line_text_message(*expected) # rubocop:disable Naming/PredicatePrefix
  HaveTextMessage.new(expected)
end