Skip to content

Commit 91cb949

Browse files
committed
Add an spec for MembershipEvent webhook
1 parent e1bc9cd commit 91cb949

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

spec/line/bot/v2/webhook_parser_spec.rb

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1853,5 +1853,56 @@
18531853
expect(event.things.result.action_results[2].type).to eq('void')
18541854
end
18551855
end
1856+
1857+
context 'with a MembershioEvent' do
1858+
let(:webhook) do
1859+
<<~JSON
1860+
{
1861+
"destination": "xxxxxxxxxx",
1862+
"events": [
1863+
{
1864+
"type": "membership",
1865+
"source": {
1866+
"type": "user",
1867+
"userId": "U4af4980629..."
1868+
},
1869+
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
1870+
"membership": {
1871+
"type": "joined",
1872+
"membershipId": 3189
1873+
},
1874+
"timestamp": 1462629479859,
1875+
"mode": "active",
1876+
"webhookEventId": "01FZ74A0TDDPYRVKNK77XKC3ZR",
1877+
"deliveryContext": {
1878+
"isRedelivery": false
1879+
}
1880+
}
1881+
]
1882+
}
1883+
JSON
1884+
end
1885+
1886+
it 'parses the webhook as a MembershipEvent' do
1887+
events = parser.parse(webhook, signature)
1888+
expect(events).not_to be_empty
1889+
1890+
event = events.first
1891+
expect(event).to be_a(Line::Bot::V2::Webhook::MembershipEvent)
1892+
expect(event.type).to eq('membership')
1893+
expect(event.source).to be_a(Line::Bot::V2::Webhook::UserSource)
1894+
expect(event.source.type).to eq('user')
1895+
expect(event.source.user_id).to eq('U4af4980629...')
1896+
expect(event.reply_token).to eq('nHuyWiB7yP5Zw52FIkcQobQuGDXCTA')
1897+
expect(event.membership).to be_a(Line::Bot::V2::Webhook::MembershipContent)
1898+
expect(event.membership.type).to eq('joined')
1899+
expect(event.membership.membership_id).to eq(3189)
1900+
expect(event.timestamp).to eq(1462629479859)
1901+
expect(event.mode).to eq('active')
1902+
expect(event.webhook_event_id).to eq('01FZ74A0TDDPYRVKNK77XKC3ZR')
1903+
expect(event.delivery_context).to be_a(Line::Bot::V2::Webhook::DeliveryContext)
1904+
expect(event.delivery_context.is_redelivery).to be false
1905+
end
1906+
end
18561907
end
18571908
end

0 commit comments

Comments
 (0)