diff --git a/lib/stream-chat/client.rb b/lib/stream-chat/client.rb index 4abb6fe..d026861 100644 --- a/lib/stream-chat/client.rb +++ b/lib/stream-chat/client.rb @@ -177,9 +177,9 @@ def review_flag_report(report_id, review_result, user_id, **details) end # Returns a message. - sig { params(id: String).returns(StreamChat::StreamResponse) } - def get_message(id) - get("messages/#{id}") + sig { params(id: String, options: T.untyped).returns(StreamChat::StreamResponse) } + def get_message(id, **options) + get("messages/#{id}", params: options) end # Searches for messages. diff --git a/spec/client_spec.rb b/spec/client_spec.rb index 9cd583e..cd4f87b 100644 --- a/spec/client_spec.rb +++ b/spec/client_spec.rb @@ -266,14 +266,40 @@ def loop_times(times) @client.mark_all_read(@random_user[:id]) end - it 'gets message by id' do - msg_id = SecureRandom.uuid - message = @channel.send_message({ - 'id' => msg_id, - 'text' => 'Hello world' - }, @random_user[:id])[:message] + describe '#get_message' do + # runs before all tests in this describe block once + before(:all) do + @user_id = SecureRandom.uuid + @msg_id = SecureRandom.uuid + @channel.send_message({ + 'id' => @msg_id, + 'text' => 'This is not deleted' + }, @user_id) + @deleted_msg_id = SecureRandom.uuid + @channel.send_message({ + 'id' => @deleted_msg_id, + 'text' => 'This is deleted' + }, @user_id) + @client.delete_message(@deleted_msg_id) + end + + it 'gets message by id' do + response = @client.get_message(@msg_id) + message = response['message'] + expect(message['id']).to eq(@msg_id) + end + + it 'gets deleted message when show_deleted_message is true' do + response = @client.get_message(@deleted_msg_id, show_deleted_message: true) + message = response['message'] + expect(message['id']).to eq(@deleted_msg_id) + end - expect(@client.get_message(msg_id)[:message]).to eq(message) + it 'also it gets non-deleted message when show_deleted_message is true' do + response = @client.get_message(@msg_id, show_deleted_message: true) + message = response['message'] + expect(message['id']).to eq(@msg_id) + end end it 'pins and unpins a message' do