* Softrun rubocop * Hardrun rubocop (-A) * Change a rubocop rule * Add missing cops * Undo & redo rubocop -A
49 lines
1.3 KiB
Ruby
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
|