From ff7de976d0fd6ecbb4bfbc389f198a3e1dd8fbf0 Mon Sep 17 00:00:00 2001 From: Max Melentiev Date: Fri, 11 Aug 2017 14:39:07 +0300 Subject: [PATCH] Add specs for #edit_message --- .../bot/updates_controller/reply_helpers.rb | 4 +-- .../updates_controller/reply_helpers_spec.rb | 26 ++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/telegram/bot/updates_controller/reply_helpers.rb b/lib/telegram/bot/updates_controller/reply_helpers.rb index 3e90954..2a82856 100644 --- a/lib/telegram/bot/updates_controller/reply_helpers.rb +++ b/lib/telegram/bot/updates_controller/reply_helpers.rb @@ -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 diff --git a/spec/telegram/bot/updates_controller/reply_helpers_spec.rb b/spec/telegram/bot/updates_controller/reply_helpers_spec.rb index c29111d..d5f2e0c 100644 --- a/spec/telegram/bot/updates_controller/reply_helpers_spec.rb +++ b/spec/telegram/bot/updates_controller/reply_helpers_spec.rb @@ -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