зеркало из
https://github.com/glebtv/telegram-bot.git
synced 2026-08-28 15:26:18 +03:00
Add specs for #edit_message
Этот коммит содержится в:
@@ -42,8 +42,8 @@ module Telegram
|
||||
# Edit message from callback query.
|
||||
def edit_message(type, params = {})
|
||||
params =
|
||||
if query_id = payload['inline_message_id'] # rubocop:disable AssignmentInCondition
|
||||
params.merge(inline_query_id: query_id)
|
||||
if message_id = payload['inline_message_id'] # rubocop:disable AssignmentInCondition
|
||||
params.merge(inline_message_id: message_id)
|
||||
elsif message = payload['message'] # rubocop:disable AssignmentInCondition
|
||||
params.merge(chat_id: message['chat']['id'], message_id: message['message_id'])
|
||||
else
|
||||
|
||||
@@ -50,6 +50,30 @@ RSpec.describe Telegram::Bot::UpdatesController do
|
||||
end
|
||||
|
||||
describe '#edit_message' do
|
||||
skip 'TODO'
|
||||
subject { controller.edit_message(type, params) }
|
||||
let(:type) { :reply_markup }
|
||||
|
||||
it { expect { subject }.to raise_error(/Can not edit message without/) }
|
||||
|
||||
context 'when inline_message_id is present' do
|
||||
let(:payload) { {inline_message_id: double(:message_id)} }
|
||||
it 'sets inline_message_id' do
|
||||
expect(bot).to receive("edit_message_#{type}").with(params.merge(
|
||||
inline_message_id: payload[:inline_message_id],
|
||||
)) { result }
|
||||
should eq result
|
||||
end
|
||||
end
|
||||
|
||||
context 'when message is present' do
|
||||
let(:payload) { {message: super().merge(chat: chat)} }
|
||||
it 'sets chat_id & message_id' do
|
||||
expect(bot).to receive("edit_message_#{type}").with(params.merge(
|
||||
message_id: payload[:message][:message_id],
|
||||
chat_id: payload[:message][:chat]['id'],
|
||||
)) { result }
|
||||
should eq result
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Ссылка в новой задаче
Block a user