FIX: Error when loading a channel with threading enabled but no threads (#22434)
Without this fix, the following error is raised: ``` ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: syntax error at or near ")" LINE 4: WHERE thread_id IN () ```
This commit is contained in:
parent
96b20077d9
commit
1e26a521c2
|
@ -84,6 +84,7 @@ module Chat
|
||||||
|
|
||||||
threads = unread_threads + read_threads
|
threads = unread_threads + read_threads
|
||||||
|
|
||||||
|
if threads.present?
|
||||||
last_replies =
|
last_replies =
|
||||||
Chat::Message
|
Chat::Message
|
||||||
.strict_loading
|
.strict_loading
|
||||||
|
@ -102,6 +103,7 @@ module Chat
|
||||||
.index_by(&:thread_id)
|
.index_by(&:thread_id)
|
||||||
|
|
||||||
threads.each { |thread| thread.last_reply = last_replies[thread.id] }
|
threads.each { |thread| thread.last_reply = last_replies[thread.id] }
|
||||||
|
end
|
||||||
|
|
||||||
threads
|
threads
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,6 +10,7 @@ RSpec.describe Chat::LookupChannelThreads do
|
||||||
|
|
||||||
fab!(:current_user) { Fabricate(:user) }
|
fab!(:current_user) { Fabricate(:user) }
|
||||||
fab!(:channel) { Fabricate(:chat_channel, threading_enabled: true) }
|
fab!(:channel) { Fabricate(:chat_channel, threading_enabled: true) }
|
||||||
|
fab!(:channel_with_no_threads) { Fabricate(:chat_channel, threading_enabled: true) }
|
||||||
fab!(:thread_1) { Fabricate(:chat_thread, channel: channel) }
|
fab!(:thread_1) { Fabricate(:chat_thread, channel: channel) }
|
||||||
fab!(:thread_2) { Fabricate(:chat_thread, channel: channel) }
|
fab!(:thread_2) { Fabricate(:chat_thread, channel: channel) }
|
||||||
fab!(:thread_3) { Fabricate(:chat_thread, channel: channel) }
|
fab!(:thread_3) { Fabricate(:chat_thread, channel: channel) }
|
||||||
|
@ -32,6 +33,12 @@ RSpec.describe Chat::LookupChannelThreads do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "does not return any threads when a channel has no threads" do
|
||||||
|
expect(
|
||||||
|
described_class.call(channel_id: channel_with_no_threads.id, guardian:).threads,
|
||||||
|
).to eq([])
|
||||||
|
end
|
||||||
|
|
||||||
context "when all steps pass" do
|
context "when all steps pass" do
|
||||||
before do
|
before do
|
||||||
msg_1 =
|
msg_1 =
|
||||||
|
|
Loading…
Reference in New Issue