60 lines
1.8 KiB
Ruby
60 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Viewing user staff info as an admin", type: :system do
|
|
fab!(:user) { Fabricate(:user) }
|
|
fab!(:admin) { Fabricate(: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 flagged posts" do
|
|
before do
|
|
%i[disagree ignore delete_and_ignore].each do |review_action|
|
|
PostActionCreator
|
|
.off_topic(admin, Fabricate(:post, user: user))
|
|
.reviewable
|
|
.perform(admin, review_action)
|
|
end
|
|
end
|
|
|
|
context "when there are no approved flagged posts" do
|
|
it "should not display a flagged-posts staff counter" do
|
|
user_page.visit(user)
|
|
expect(user_page).to have_no_staff_info_flagged_posts_counter
|
|
end
|
|
end
|
|
|
|
context "when there are approved flagged posts" do
|
|
before do
|
|
2.times do
|
|
PostActionCreator
|
|
.off_topic(admin, Fabricate(:post, user: user))
|
|
.reviewable
|
|
.perform(admin, :agree_and_keep)
|
|
end
|
|
end
|
|
|
|
it "should display a flagged-posts staff counter with the right count and link to user's flagged posts" do
|
|
user_page.visit(user)
|
|
|
|
expect(user_page).to have_staff_info_flagged_posts_count(count: 2)
|
|
|
|
user_page.staff_info_flagged_posts_counter.click
|
|
|
|
expect(user_page).to have_reviewable_flagged_posts_path(user)
|
|
end
|
|
end
|
|
end
|
|
end
|