feat: Add sticker support in Line channel (#8488)

This commit is contained in:
Muhsin Keloth
2023-12-11 10:15:44 +05:30
committed by GitHub
parent 2ae9bbb24e
commit db9a32a4c0
4 changed files with 100 additions and 4 deletions

View File

@@ -105,6 +105,41 @@ describe Line::IncomingMessageService do
}.with_indifferent_access
end
let(:sticker_params) do
{
'destination': '2342234234',
'events': [
{
'replyToken': '0f3779fba3b349968c5d07db31eab56f',
'type': 'message',
'mode': 'active',
'timestamp': 1_462_629_479_859,
'source': {
'type': 'user',
'userId': 'U4af4980629'
},
'message': {
'type': 'sticker',
'id': '1501597916',
'quoteToken': 'q3Plxr4AgKd...',
'stickerId': '52002738',
'packageId': '11537'
}
},
{
'replyToken': '8cf9239d56244f4197887e939187e19e',
'type': 'follow',
'mode': 'active',
'timestamp': 1_462_629_479_859,
'source': {
'type': 'user',
'userId': 'U4af4980629'
}
}
]
}.with_indifferent_access
end
describe '#perform' do
context 'when valid text message params' do
it 'creates appropriate conversations, message and contacts' do
@@ -126,6 +161,26 @@ describe Line::IncomingMessageService do
end
end
context 'when valid sticker message params' do
it 'creates appropriate conversations, message and contacts' do
line_bot = double
line_user_profile = double
allow(Line::Bot::Client).to receive(:new).and_return(line_bot)
allow(line_bot).to receive(:get_profile).and_return(line_user_profile)
allow(line_user_profile).to receive(:body).and_return(
{
'displayName': 'LINE Test',
'userId': 'U4af4980629',
'pictureUrl': 'https://test.com'
}.to_json
)
described_class.new(inbox: line_channel.inbox, params: sticker_params).perform
expect(line_channel.inbox.conversations).not_to eq(0)
expect(Contact.all.first.name).to eq('LINE Test')
expect(line_channel.inbox.messages.first.content).to eq('![sticker-52002738](https://stickershop.line-scdn.net/stickershop/v1/sticker/52002738/iphone/sticker.png)')
end
end
context 'when valid image message params' do
it 'creates appropriate conversations, message and contacts' do
line_bot = double