mirror of
https://github.com/discourse/discourse.git
synced 2024-12-03 15:03:39 +08:00
ac92cc526d
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.
53 lines
2.0 KiB
Ruby
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
|