mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Admin can't see user sidebar preferences of other users (#19570)
This commit is contained in:
committed by
GitHub
parent
9f927cf999
commit
1d926e88a9
27
spec/system/page_objects/pages/user_preferences_sidebar.rb
Normal file
27
spec/system/page_objects/pages/user_preferences_sidebar.rb
Normal file
@@ -0,0 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module PageObjects
|
||||
module Pages
|
||||
class UserPreferencesSidebar < PageObjects::Pages::Base
|
||||
def visit(user)
|
||||
page.visit("/u/#{user.username}/preferences/sidebar")
|
||||
self
|
||||
end
|
||||
|
||||
def has_sidebar_categories_preference?(*categories)
|
||||
category_selector_header = page.find(".category-selector .select-kit-header-wrapper")
|
||||
category_selector_header.has_content?(categories.map(&:name).join(", "))
|
||||
end
|
||||
|
||||
def has_sidebar_tags_preference?(*tags)
|
||||
tag_selector_header = page.find(".tag-chooser .select-kit-header-wrapper")
|
||||
tag_selector_header.has_content?(tags.map(&:name).join(", "))
|
||||
end
|
||||
|
||||
def has_sidebar_list_destination_preference?(type)
|
||||
list_selector_header = page.find(".preferences-sidebar-navigation__list-destination-selector .select-kit-header-wrapper")
|
||||
list_selector_header.has_content?(I18n.t("js.user.experimental_sidebar.list_destination_#{type}"))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
36
spec/system/viewing_sidebar_preferences_spec.rb
Normal file
36
spec/system/viewing_sidebar_preferences_spec.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe 'Viewing sidebar preferences', type: :system, js: true do
|
||||
let(:user_preferences_sidebar_page) { PageObjects::Pages::UserPreferencesSidebar.new }
|
||||
|
||||
before do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
end
|
||||
|
||||
context 'as an admin' do
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:category) { Fabricate(:category) }
|
||||
fab!(:category2) { Fabricate(:category) }
|
||||
fab!(:category_sidebar_section_link) { Fabricate(:category_sidebar_section_link, user: user, linkable: category) }
|
||||
fab!(:category2_sidebar_section_link) { Fabricate(:category_sidebar_section_link, user: user, linkable: category2) }
|
||||
fab!(:tag) { Fabricate(:tag) }
|
||||
fab!(:tag2) { Fabricate(:tag) }
|
||||
fab!(:tag_sidebar_section_link) { Fabricate(:tag_sidebar_section_link, user: user, linkable: tag) }
|
||||
fab!(:tag2_sidebar_section_link) { Fabricate(:tag_sidebar_section_link, user: user, linkable: tag2) }
|
||||
|
||||
before do
|
||||
sign_in(admin)
|
||||
end
|
||||
|
||||
it 'should be able to view sidebar preferences of another user' do
|
||||
user.user_option.update!(sidebar_list_destination: "unread_new")
|
||||
|
||||
user_preferences_sidebar_page.visit(user)
|
||||
|
||||
expect(user_preferences_sidebar_page).to have_sidebar_categories_preference(category, category2)
|
||||
expect(user_preferences_sidebar_page).to have_sidebar_tags_preference(tag, tag2)
|
||||
expect(user_preferences_sidebar_page).to have_sidebar_list_destination_preference("unread_new")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user