mirror of
https://github.com/discourse/discourse.git
synced 2025-03-23 02:25:40 +08:00
FIX: correctly sorts public channels (#19555)
This commit is contained in:
parent
a6af981e1b
commit
2304761223
plugins/chat
assets/javascripts/discourse/services
spec/system/list_channels
@ -86,10 +86,12 @@ export default class ChatChannelsManager extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get publicMessageChannels() {
|
get publicMessageChannels() {
|
||||||
return this.channels.filter(
|
return this.channels
|
||||||
(channel) =>
|
.filter(
|
||||||
channel.isCategoryChannel && channel.currentUserMembership.following
|
(channel) =>
|
||||||
);
|
channel.isCategoryChannel && channel.currentUserMembership.following
|
||||||
|
)
|
||||||
|
.sort((a, b) => a.title.localeCompare(b.title));
|
||||||
}
|
}
|
||||||
|
|
||||||
get directMessageChannels() {
|
get directMessageChannels() {
|
||||||
|
@ -31,6 +31,23 @@ RSpec.describe "List channels | mobile", type: :system, js: true, mobile: true d
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when multiple category channels are present" do
|
||||||
|
fab!(:channel_1) { Fabricate(:category_channel, name: "b channel") }
|
||||||
|
fab!(:channel_2) { Fabricate(:category_channel, name: "a channel") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
channel_1.add(current_user)
|
||||||
|
channel_2.add(current_user)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "sorts them alphabetically" do
|
||||||
|
visit("/chat")
|
||||||
|
|
||||||
|
expect(page.find("#public-channels a:nth-child(1)")["data-chat-channel-id"]).to eq(channel_2.id.to_s)
|
||||||
|
expect(page.find("#public-channels a:nth-child(2)")["data-chat-channel-id"]).to eq(channel_1.id.to_s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "when direct message channels" do
|
context "when direct message channels" do
|
||||||
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
||||||
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
||||||
|
@ -32,6 +32,23 @@ RSpec.describe "List channels | no sidebar", type: :system, js: true do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when multiple category channels are present" do
|
||||||
|
fab!(:channel_1) { Fabricate(:category_channel, name: "b channel") }
|
||||||
|
fab!(:channel_2) { Fabricate(:category_channel, name: "a channel") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
channel_1.add(current_user)
|
||||||
|
channel_2.add(current_user)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "sorts them alphabetically" do
|
||||||
|
visit("/chat")
|
||||||
|
|
||||||
|
expect(page.find("#public-channels a:nth-child(1)")["data-chat-channel-id"]).to eq(channel_2.id.to_s)
|
||||||
|
expect(page.find("#public-channels a:nth-child(2)")["data-chat-channel-id"]).to eq(channel_1.id.to_s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "when direct message channels" do
|
context "when direct message channels" do
|
||||||
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
||||||
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
||||||
|
@ -41,6 +41,23 @@ RSpec.describe "List channels | sidebar", type: :system, js: true do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when multiple category channels are present" do
|
||||||
|
fab!(:channel_1) { Fabricate(:category_channel, name: "b channel") }
|
||||||
|
fab!(:channel_2) { Fabricate(:category_channel, name: "a channel") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
channel_1.add(current_user)
|
||||||
|
channel_2.add(current_user)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "sorts them alphabetically" do
|
||||||
|
visit("/")
|
||||||
|
|
||||||
|
expect(page.find("#sidebar-section-content-chat-channels li:nth-child(1)")).to have_css(".channel-#{channel_2.id}")
|
||||||
|
expect(page.find("#sidebar-section-content-chat-channels li:nth-child(2)")).to have_css(".channel-#{channel_1.id}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "when direct message channels" do
|
context "when direct message channels" do
|
||||||
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
fab!(:dm_channel_1) { Fabricate(:direct_message_channel, users: [current_user]) }
|
||||||
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
fab!(:inaccessible_dm_channel_1) { Fabricate(:direct_message_channel) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user