2023-01-13 06:47:58 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
describe "Viewing sidebar", type: :system, js: true do
|
|
|
|
fab!(:admin) { Fabricate(:admin) }
|
|
|
|
fab!(:user) { Fabricate(:user) }
|
|
|
|
fab!(:category_sidebar_section_link) { Fabricate(:category_sidebar_section_link, user: user) }
|
|
|
|
|
2023-03-10 12:54:57 +08:00
|
|
|
before { sign_in(user) }
|
2023-02-21 09:59:56 +08:00
|
|
|
|
2023-01-13 06:47:58 +08:00
|
|
|
describe "when using the legacy navigation menu" do
|
|
|
|
before { SiteSetting.navigation_menu = "legacy" }
|
|
|
|
|
2023-02-21 09:59:56 +08:00
|
|
|
it "should display the sidebar when `navigation_menu` query param is 'sidebar'" do
|
|
|
|
visit("/latest?navigation_menu=sidebar")
|
2023-01-13 06:47:58 +08:00
|
|
|
|
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_visible
|
|
|
|
expect(sidebar).to have_category_section_link(category_sidebar_section_link.linkable)
|
2023-02-20 11:34:37 +08:00
|
|
|
expect(page).not_to have_css(".hamburger-dropdown")
|
|
|
|
end
|
2023-02-21 09:59:56 +08:00
|
|
|
|
|
|
|
it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do
|
|
|
|
visit("/latest?navigation_menu=header_dropdown")
|
|
|
|
|
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_not_visible
|
|
|
|
|
|
|
|
header_dropdown = PageObjects::Components::SidebarHeaderDropdown.new
|
|
|
|
header_dropdown.click
|
|
|
|
|
|
|
|
expect(header_dropdown).to be_visible
|
|
|
|
end
|
2023-02-20 11:34:37 +08:00
|
|
|
end
|
|
|
|
|
2023-02-22 06:43:14 +08:00
|
|
|
describe "when using the header dropdown navigation menu" do
|
|
|
|
before { SiteSetting.navigation_menu = "header dropdown" }
|
|
|
|
|
|
|
|
it "should display the sidebar when `navigation_menu` query param is 'sidebar'" do
|
|
|
|
visit("/latest?navigation_menu=sidebar")
|
|
|
|
|
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_visible
|
|
|
|
expect(page).not_to have_css(".hamburger-dropdown")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do
|
|
|
|
visit("/latest?navigation_menu=legacy")
|
|
|
|
|
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_not_visible
|
|
|
|
|
|
|
|
legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new
|
|
|
|
legacy_header_dropdown.click
|
|
|
|
|
|
|
|
expect(legacy_header_dropdown).to be_visible
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-02-20 11:34:37 +08:00
|
|
|
describe "when using the sidebar navigation menu" do
|
|
|
|
before { SiteSetting.navigation_menu = "sidebar" }
|
|
|
|
|
2023-02-21 09:59:56 +08:00
|
|
|
it "should display the legacy dropdown menu when `navigation_menu` query param is 'legacy'" do
|
|
|
|
visit("/latest?navigation_menu=legacy")
|
2023-02-20 11:34:37 +08:00
|
|
|
|
2023-02-21 09:59:56 +08:00
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_not_visible
|
|
|
|
|
|
|
|
legacy_header_dropdown = PageObjects::Components::LegacyHeaderDropdown.new
|
|
|
|
legacy_header_dropdown.click
|
|
|
|
|
|
|
|
expect(legacy_header_dropdown).to be_visible
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should display the sidebar dropdown menu when `navigation_menu` query param is 'header_dropdown'" do
|
|
|
|
visit("/latest?navigation_menu=header_dropdown")
|
2023-02-20 11:34:37 +08:00
|
|
|
|
|
|
|
sidebar = PageObjects::Components::Sidebar.new
|
|
|
|
|
|
|
|
expect(sidebar).to be_not_visible
|
2023-02-21 09:59:56 +08:00
|
|
|
|
|
|
|
header_dropdown = PageObjects::Components::SidebarHeaderDropdown.new
|
|
|
|
header_dropdown.click
|
|
|
|
|
|
|
|
expect(header_dropdown).to be_visible
|
2023-01-13 06:47:58 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|