Skip to content

Commit 712010d

Browse files
feat: enhance get_message method to support options and add tests for deleted messages
1 parent ac11fc1 commit 712010d

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

lib/stream-chat/client.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ def review_flag_report(report_id, review_result, user_id, **details)
177177
end
178178

179179
# Returns a message.
180-
sig { params(id: String).returns(StreamChat::StreamResponse) }
181-
def get_message(id)
182-
get("messages/#{id}")
180+
sig { params(id: String, options: T.untyped).returns(StreamChat::StreamResponse) }
181+
def get_message(id, **options)
182+
get("messages/#{id}", params: options)
183183
end
184184

185185
# Searches for messages.

spec/client_spec.rb

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -266,14 +266,36 @@ def loop_times(times)
266266
@client.mark_all_read(@random_user[:id])
267267
end
268268

269-
it 'gets message by id' do
270-
msg_id = SecureRandom.uuid
271-
message = @channel.send_message({
272-
'id' => msg_id,
273-
'text' => 'Hello world'
274-
}, @random_user[:id])[:message]
269+
describe '#get_message' do
270+
# runs before all tests in this describe block once
271+
before(:all) do
272+
@msg_id = SecureRandom.uuid
273+
@channel.send_message({
274+
'id' => @msg_id,
275+
'text' => 'This is not deleted'
276+
}, @random_user[:id])
277+
@deleted_msg_id = SecureRandom.uuid
278+
@channel.send_message({
279+
'id' => @deleted_msg_id,
280+
'text' => 'This is deleted'
281+
}, @random_user[:id])
282+
@client.delete_message(@deleted_msg_id)
283+
end
275284

276-
expect(@client.get_message(msg_id)[:message]).to eq(message)
285+
it 'gets message by id' do
286+
message = @client.get_message(@msg_id)[:message]
287+
expect(message.id).to eq(@msg_id)
288+
end
289+
290+
it 'gets deleted message when show_deleted_message is true' do
291+
message = @client.get_message(@deleted_msg_id, show_deleted_message: true)[:message]
292+
expect(message.id).to eq(@deleted_msg_id)
293+
end
294+
295+
it 'also it gets non-deleted message when show_deleted_message is true' do
296+
message = @client.get_message(@msg_id, show_deleted_message: true)[:message]
297+
expect(message.id).to eq(@msg_id)
298+
end
277299
end
278300

279301
it 'pins and unpins a message' do

0 commit comments

Comments
 (0)