Skip to content

Commit d62a54b

Browse files
[CHA-768] feat: enhance get_message method to support options and add tests for deleted messages (#153)
* feat: enhance get_message method to support options and add tests for deleted messages
1 parent ac11fc1 commit d62a54b

File tree

2 files changed

+36
-10
lines changed

2 files changed

+36
-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: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -266,14 +266,40 @@ 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+
@user_id = SecureRandom.uuid
273+
@msg_id = SecureRandom.uuid
274+
@channel.send_message({
275+
'id' => @msg_id,
276+
'text' => 'This is not deleted'
277+
}, @user_id)
278+
@deleted_msg_id = SecureRandom.uuid
279+
@channel.send_message({
280+
'id' => @deleted_msg_id,
281+
'text' => 'This is deleted'
282+
}, @user_id)
283+
@client.delete_message(@deleted_msg_id)
284+
end
285+
286+
it 'gets message by id' do
287+
response = @client.get_message(@msg_id)
288+
message = response['message']
289+
expect(message['id']).to eq(@msg_id)
290+
end
291+
292+
it 'gets deleted message when show_deleted_message is true' do
293+
response = @client.get_message(@deleted_msg_id, show_deleted_message: true)
294+
message = response['message']
295+
expect(message['id']).to eq(@deleted_msg_id)
296+
end
275297

276-
expect(@client.get_message(msg_id)[:message]).to eq(message)
298+
it 'also it gets non-deleted message when show_deleted_message is true' do
299+
response = @client.get_message(@msg_id, show_deleted_message: true)
300+
message = response['message']
301+
expect(message['id']).to eq(@msg_id)
302+
end
277303
end
278304

279305
it 'pins and unpins a message' do

0 commit comments

Comments
 (0)