discourse/spec/system/editing_sidebar_community_section_spec.rb
David Battersby 47c8197ea1
FEATURE: add drafts dropdown menu (#30277)
This change adds a new dropdown trigger next to the "New Topic" button.
When clicked a menu will display a list of topic/post drafts that can be
clicked to resume the draft within the composer.

The "New Topic" button will no longer change text to show "Open Draft"
when a draft topic exists, it will still attempt to load the existing
draft if one exists (this will change later when we support multiple
drafts in a separate PR).

The "My Posts" link in desktop sidebar will now be "My Drafts" and only
appear when the current user has existing drafts.
2025-01-13 13:33:57 +04:00

84 lines
2.4 KiB
Ruby

# frozen_string_literal: true
RSpec.describe "Editing Sidebar Community Section", type: :system do
fab!(:admin)
fab!(:user)
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
let(:sidebar_header_dropdown) { PageObjects::Components::NavigationMenu::HeaderDropdown.new }
it "should not display the edit section button to non admins" do
sign_in(user)
visit("/latest")
sidebar.click_community_section_more_button
expect(sidebar).to have_no_customize_community_section_button
end
it "allows admin to edit community section and reset to default" do
sign_in(admin)
visit("/latest")
expect(sidebar.primary_section_icons("community")).to eq(
%w[layer-group flag wrench paper-plane ellipsis-vertical],
)
modal = sidebar.click_community_section_more_button.click_customize_community_section_button
modal.fill_link("Topics", "/latest", "paper-plane")
modal.topics_link.drag_to(modal.review_link, delay: 0.4)
modal.save
modal.confirm_update
expect(sidebar.primary_section_links("community")).to eq(%w[Topics Review Admin Invite More])
expect(sidebar.primary_section_icons("community")).to eq(
%w[paper-plane flag wrench paper-plane ellipsis-vertical],
)
modal = sidebar.click_community_section_more_button.click_customize_community_section_button
modal.reset
expect(sidebar).to have_section("Community")
expect(sidebar.primary_section_links("community")).to eq(%w[Topics Review Admin Invite More])
expect(sidebar.primary_section_icons("community")).to eq(
%w[layer-group flag wrench paper-plane ellipsis-vertical],
)
end
it "allows admin to edit community section when no secondary section links" do
SidebarSection
.where(title: "Community")
.first
.sidebar_section_links
.where.not(position: 0)
.destroy_all
sign_in(admin)
visit("/latest")
modal = sidebar.click_customize_community_section_button
expect(modal).to be_visible
end
it "should allow admins to open modal to edit the section when `navigation_menu` site setting is `header dropdown`" do
SiteSetting.navigation_menu = "header dropdown"
sign_in(admin)
visit("/latest")
sidebar_header_dropdown.open
expect(sidebar_header_dropdown).to have_dropdown_visible
modal = sidebar_header_dropdown.click_customize_community_section_button
expect(modal).to be_visible
end
end