discourse/plugins/chat/spec/system/admin_sidebar_navigation_spec.rb
Martin Brennan ac92cc526d
FIX: Admin sidebar was hiding chat/forum toggle button (#25781)
We have separated and combined modes for sidebar panels.
Separated means the panels show only their own sections,
combined means sections from all panels are shown.

The admin sidebar only shows its own panels, so it must set
the mode to separated; however when we navigate to chat or
home we must revert to the initial mode setttings.
2024-02-21 14:44:09 +10:00

53 lines
2.0 KiB
Ruby

# frozen_string_literal: true
describe "Admin Revamp | Sidebar Navigation | Plugin Links", type: :system do
fab!(:admin)
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
before do
chat_system_bootstrap
SiteSetting.admin_sidebar_enabled_groups = Group::AUTO_GROUPS[:admins]
sign_in(admin)
end
it "shows links to enabled plugin admin routes" do
visit("/admin")
expect(sidebar).to have_section_link("Chat", href: "/admin/plugins/chat")
end
it "does not duplicate links to enabled plugin admin routes when showing and hiding sidebar" do
visit("/admin")
expect(sidebar).to have_section_link("Chat", href: "/admin/plugins/chat", count: 1)
find(".header-sidebar-toggle").click
find(".header-sidebar-toggle").click
expect(sidebar).to have_section_link("Chat", href: "/admin/plugins/chat", count: 1)
end
describe "admin sidebar respects separated and combined sidebar modes" do
it "reverts to always (separated) mode after entering and leaving admin section" do
admin.user_option.update!(
chat_separate_sidebar_mode: UserOption.chat_separate_sidebar_modes[:always],
)
visit("/")
expect(sidebar).to have_switch_button("chat")
sidebar.click_link_in_section("community", "admin")
expect(sidebar).to have_no_switch_button("chat")
find("#site-logo").click
expect(sidebar).to have_switch_button("chat")
end
it "reverts to the never (combined) mode after entering and leaving admin section" do
admin.user_option.update!(
chat_separate_sidebar_mode: UserOption.chat_separate_sidebar_modes[:never],
)
visit("/")
expect(sidebar).to have_section("chat-channels")
expect(sidebar).to have_no_switch_button("chat")
sidebar.click_link_in_section("community", "admin")
expect(sidebar).to have_no_section("chat-channels")
find("#site-logo").click
expect(sidebar).to have_section("chat-channels")
end
end
end