|
102 | 102 | end |
103 | 103 | end |
104 | 104 |
|
105 | | - context 'with a text MessageEvent' do |
| 105 | + context 'with empty event (for webhook test)' do |
| 106 | + let(:webhook) do |
| 107 | + <<~JSON |
| 108 | + { |
| 109 | + "destination": "xxxxxxxxxx", |
| 110 | + "events": [] |
| 111 | + } |
| 112 | + JSON |
| 113 | + end |
| 114 | + |
| 115 | + it 'parses the webhook with no error' do |
| 116 | + events = parser.parse(webhook, signature) |
| 117 | + expect(events).to be_empty |
| 118 | + end |
| 119 | + end |
| 120 | + |
| 121 | + context 'with a full text MessageEvent' do |
106 | 122 | let(:webhook) do |
107 | 123 | <<~JSON |
108 | 124 | { |
|
201 | 217 | end |
202 | 218 | end |
203 | 219 |
|
| 220 | + context 'with a minimum text MessageEvent' do |
| 221 | + let(:webhook) do |
| 222 | + <<~JSON |
| 223 | + { |
| 224 | + "destination": "xxxxxxxxxx", |
| 225 | + "events": [ |
| 226 | + { |
| 227 | + "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", |
| 228 | + "type": "message", |
| 229 | + "mode": "active", |
| 230 | + "timestamp": 1462629479859, |
| 231 | + "source": { |
| 232 | + "type": "user", |
| 233 | + "userId": "U4af4980629..." |
| 234 | + }, |
| 235 | + "webhookEventId": "01FZ74A0TDDPYRVKNK77XKC3ZR", |
| 236 | + "deliveryContext": { |
| 237 | + "isRedelivery": false |
| 238 | + }, |
| 239 | + "message": { |
| 240 | + "id": "444573844083572737", |
| 241 | + "type": "text", |
| 242 | + "quoteToken": "q3Plxr4AgKd...", |
| 243 | + "text": " Hi " |
| 244 | + } |
| 245 | + } |
| 246 | + ] |
| 247 | + } |
| 248 | + JSON |
| 249 | + end |
| 250 | + |
| 251 | + it 'parses the webhook as a text MessageEvent' do |
| 252 | + events = parser.parse(webhook, signature) |
| 253 | + expect(events).not_to be_empty |
| 254 | + |
| 255 | + event = events.first |
| 256 | + expect(event).to be_a(Line::Bot::V2::Webhook::MessageEvent) |
| 257 | + expect(event.reply_token).to eq('nHuyWiB7yP5Zw52FIkcQobQuGDXCTA') |
| 258 | + expect(event.type).to eq('message') |
| 259 | + expect(event.mode).to eq('active') |
| 260 | + expect(event.timestamp).to eq(1462629479859) |
| 261 | + expect(event.source).to be_a(Line::Bot::V2::Webhook::UserSource) |
| 262 | + expect(event.source.type).to eq('user') |
| 263 | + expect(event.source.user_id).to eq('U4af4980629...') |
| 264 | + expect(event.webhook_event_id).to eq('01FZ74A0TDDPYRVKNK77XKC3ZR') |
| 265 | + expect(event.delivery_context).to be_a(Line::Bot::V2::Webhook::DeliveryContext) |
| 266 | + expect(event.delivery_context.is_redelivery).to be false |
| 267 | + expect(event.message).to be_a(Line::Bot::V2::Webhook::TextMessageContent) |
| 268 | + expect(event.message.id).to eq('444573844083572737') |
| 269 | + expect(event.message.type).to eq('text') |
| 270 | + expect(event.message.quote_token).to eq('q3Plxr4AgKd...') |
| 271 | + expect(event.message.text).to eq(' Hi ') |
| 272 | + expect(event.message.emojis).to be_nil |
| 273 | + expect(event.message.mention).to be_nil |
| 274 | + end |
| 275 | + end |
| 276 | + |
204 | 277 | context 'with two image MessageEvents' do |
205 | 278 | let(:webhook) do |
206 | 279 | <<~JSON |
|
0 commit comments