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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

61 lines
2.3 KiB
Ruby
Raw Normal View History

# 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
it "does not show plugin links in the admin sidebar in safe mode" do
visit("/safe-mode")
find("#btn-enter-safe-mode").click
expect(sidebar).to have_section_link("Admin", href: "/admin")
sidebar.click_link_in_section("community", "admin")
expect(sidebar).to have_no_section_link("Chat", href: "/admin/plugins/chat")
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