discourse/plugins/chat/spec/system/sidebars_spec.rb
Joffrey JAFFEUX c996e5502f
FEATURE: enable_public_channels site setting (#22565)
`SiteSetting.enable_public_channels` allows site admin to decide if public channels are available at all. There's no distinction between admins or not as we expect admins to create private category channels if they want to limit usage.
2023-07-13 10:00:25 +02:00

65 lines
1.7 KiB
Ruby

# frozen_string_literal: true
RSpec.describe "Navigation", type: :system do
fab!(:category) { Fabricate(:category) }
fab!(:topic) { Fabricate(:topic) }
fab!(:post) { Fabricate(:post, topic: topic) }
fab!(:user) { Fabricate(:admin) }
fab!(:category_channel) { Fabricate(:category_channel) }
fab!(:category_channel_2) { Fabricate(:category_channel) }
let(:chat_page) { PageObjects::Pages::Chat.new }
let(:sidebar_page) { PageObjects::Pages::Sidebar.new }
before do
chat_system_bootstrap(user, [category_channel, category_channel_2])
sign_in(user)
SiteSetting.navigation_menu = "legacy"
end
it "uses chat (not core) sidebar" do
visit("/chat")
expect(page).to have_css(".channels-list")
expect(page).to have_no_css("#d-sidebar")
end
context "when sidebar is enabled as the navigation menu" do
before { SiteSetting.navigation_menu = "sidebar" }
it "uses core sidebar" do
visit("/chat")
expect(page).to have_css("#d-sidebar")
expect(page).to have_no_css(".channels-list")
end
context "when visiting on mobile" do
it "has no sidebar" do
visit("/?mobile_view=1")
chat_page.visit_channel(category_channel_2)
expect(page).to have_no_css("#d-sidebar")
end
end
context "when public channels are disabled" do
before { SiteSetting.enable_public_channels = false }
it "has public channels section" do
visit("/")
expect(sidebar_page).to have_no_public_channels_section
end
end
end
context "when visiting on mobile" do
it "has no sidebar" do
visit("/?mobile_view=1")
chat_page.visit_channel(category_channel_2)
expect(page).to have_no_css(".channels-list")
end
end
end