mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-02 14:07:35 +08:00
This makes the helpful flags link clickable like the others, and adjusts styling a bit to improve the roundness and spacing Before: <img width="325" alt="image" src="https://github.com/user-attachments/assets/09c9f474-333b-4afe-9ad9-1164773412ce" /> After: <img width="345" alt="image" src="https://github.com/user-attachments/assets/824d3624-184c-4469-a8a3-69a54251ecb8" />
79 lines
2.7 KiB
Ruby
79 lines
2.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Viewing user staff info as an admin" do
|
|
fab!(:user)
|
|
fab!(:admin)
|
|
let(:user_page) { PageObjects::Pages::User.new }
|
|
|
|
before { sign_in(admin) }
|
|
|
|
context "for warnings" do
|
|
fab!(:topic) { Fabricate(:private_message_topic, user: admin, recipient: user) }
|
|
fab!(:user_warning) { UserWarning.create!(user: user, created_by: admin, topic: topic) }
|
|
|
|
it "should display the right link to user's warnings with the right count in text" do
|
|
user_page.visit(user).click_staff_info_warnings_link(user, warnings_count: 1)
|
|
|
|
expect(user_page).to have_warning_messages_path(user)
|
|
end
|
|
end
|
|
|
|
context "for silencings" do
|
|
fab!(:silencing) do
|
|
Fabricate(:user_history, action: UserHistory.actions[:silence_user], target_user: user)
|
|
end
|
|
it "should display the right link to user's silencings with the right count in text" do
|
|
user_page.visit(user)
|
|
silencings_counters = page.find(".staff-counters .silencings")
|
|
expect(silencings_counters).to have_text("1")
|
|
|
|
user_page.click_staff_info_silencings_link
|
|
expect(user_page).to have_current_path("/admin/logs/staff_action_logs", ignore_query: true)
|
|
|
|
current_url = user_page.current_url
|
|
uri = URI.parse(current_url)
|
|
filters = JSON.parse(URI.decode_www_form(uri.query).to_h["filters"])
|
|
|
|
expect(filters["target_user"]).to eq(user.username)
|
|
expect(filters["action_name"]).to eq("silence_user")
|
|
end
|
|
end
|
|
|
|
context "for flags given" do
|
|
fab!(:flagged_post) { Fabricate(:post, user: admin) }
|
|
|
|
before do
|
|
Group.refresh_automatic_groups!
|
|
PostActionCreator.create(user, flagged_post, :inappropriate)
|
|
end
|
|
|
|
it "shows count and links to review queue filtered by flagger" do
|
|
user_page.visit(user)
|
|
|
|
expect(user_page).to have_staff_counter_flags_given(count: 1)
|
|
|
|
user_page.click_staff_info_flags_given_link
|
|
|
|
expect(page).to have_current_path(%r{/review})
|
|
expect(page).to have_current_path(/flagged_by=#{user.username}/)
|
|
expect(page).to have_current_path(/status=approved/)
|
|
end
|
|
end
|
|
|
|
context "for flags" do
|
|
fab!(:reviewable_flagged_post) { Fabricate(:reviewable_flagged_post, target_created_by: user) }
|
|
fab!(:reviewable_queued_post) { Fabricate(:reviewable_queued_post, target_created_by: user) }
|
|
|
|
let(:review_page) { PageObjects::Pages::Review.new }
|
|
|
|
it "shows count and links to review queue for all reviewable types" do
|
|
user_page.visit(user)
|
|
|
|
expect(user_page).to have_staff_counter_flags(count: 2)
|
|
|
|
user_page.click_staff_info_flags_link
|
|
|
|
expect(review_page).to have_reviewables([reviewable_flagged_post, reviewable_queued_post])
|
|
end
|
|
end
|
|
end
|