|
1853 | 1853 | expect(event.things.result.action_results[2].type).to eq('void') |
1854 | 1854 | end |
1855 | 1855 | 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 |
1856 | 1907 | end |
1857 | 1908 | end |
0 commit comments