discourse/plugins/chat/spec/system/sidebars_spec.rb

64 lines
1.6 KiB
Ruby

# frozen_string_literal: true
RSpec.describe "Navigation", type: :system do
fab!(:category)
fab!(:topic)
fab!(:post) { Fabricate(:post, topic: topic) }
fab!(:user, :admin)
fab!(:category_channel)
fab!(:category_channel_2, :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 = "header dropdown"
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