docbrown/spec/system/user/trusted_user_flags_user_spec.rb
Mac Siri 842e6880b8
Routine rubocop fix on /spec (#19217)
* Softrun rubocop

* Hardrun rubocop (-A)

* Change a rubocop rule

* Add missing cops

* Undo & redo rubocop -A
2023-03-21 09:55:26 -04:00

49 lines
1.3 KiB
Ruby

require "rails_helper"
RSpec.describe "Flagging users from profile pages", js: true do
let(:user) { create(:user) }
let(:unflag_text) { "Unflag @#{user.username}" }
let(:flag_text) { "Flag @#{user.username}" }
context "when not logged in" do
it "does not show the flag button" do
visit user_profile_path(user.username)
click_button(id: "user-profile-dropdown")
expect(page).not_to have_link(flag_text)
end
end
context "when signed in as a non-trusted user" do
it "does not show the flag button" do
sign_in create(:user)
visit user_profile_path(user.username)
click_button(id: "user-profile-dropdown")
expect(page).not_to have_link(flag_text)
end
end
context "when signed in as the user" do
it "does not show a button for flagging yourself" do
sign_in user
visit user_profile_path(user.username)
expect(page).not_to have_selector("user-profile-dropdown")
end
end
context "when signed in as a trusted user" do
it "allows toggling the flagged status" do
sign_in create(:user, :trusted)
visit user_profile_path(user.username)
click_button(id: "user-profile-dropdown")
accept_confirm do
click_link(id: "user-profile-dropdownmenu-flag-button")
end
expect(page).to have_link(unflag_text)
end
end
end