* Rename banned and comment_banned roles * Add data update script to rename roles containing 'ban' * Add named error for Suspended users * Update unidiomatic method names * Rename misc banned to suspended * Apply suggestions from code review Co-authored-by: Michael Kohl <me@citizen428.net> * Add unit tests for suspended methods This commit also adds TODO comments for removing banned and comment_banned from the codebase after data update scripts have successfully run on all of our Forems. Co-authored-by: Michael Kohl <me@citizen428.net>
63 lines
2.3 KiB
Ruby
63 lines
2.3 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe ReCaptcha::CheckEnabled, type: :request do
|
|
let(:admin) { create(:user, :super_admin) }
|
|
let(:recent_user) { create(:user) }
|
|
let(:older_user) { create(:user, created_at: 3.months.ago) }
|
|
let(:trusted_user) { create(:user, :trusted) }
|
|
let(:vomitted_user) do
|
|
user = create(:user, created_at: 3.months.ago)
|
|
create(:vomit_reaction, category: "vomit", reactable: user, user: trusted_user, status: "confirmed")
|
|
user
|
|
end
|
|
|
|
describe "ReCaptcha for user actions like Abuse Reports (FeedbackMessages)" do
|
|
context "when recaptcha SiteConfig keys are not configured" do
|
|
it "marks ReCaptcha as not enabled regardless of the param passed in" do
|
|
allow(SiteConfig).to receive(:recaptcha_site_key).and_return(nil)
|
|
allow(SiteConfig).to receive(:recaptcha_secret_key).and_return(nil)
|
|
|
|
expect(described_class.call).to be(false)
|
|
expect(described_class.call(older_user)).to be(false)
|
|
end
|
|
end
|
|
|
|
context "when recaptcha SiteConfig keys are configured" do
|
|
before do
|
|
allow(SiteConfig).to receive(:recaptcha_site_key).and_return("someSecretKey")
|
|
allow(SiteConfig).to receive(:recaptcha_secret_key).and_return("someSiteKey")
|
|
end
|
|
|
|
it "marks ReCaptcha as enabled when logged out (parameter is nil)" do
|
|
expect(described_class.call).to be(true)
|
|
end
|
|
|
|
it "marks ReCaptcha as not enabled when older user is logged in" do
|
|
sign_in older_user
|
|
expect(described_class.call(older_user)).to be(false)
|
|
end
|
|
|
|
it "marks ReCaptcha as not enabled when admin is logged in" do
|
|
sign_in admin
|
|
expect(described_class.call(admin)).to be(false)
|
|
end
|
|
|
|
it "marks ReCaptcha as not enabled when trusted user is logged in" do
|
|
sign_in trusted_user
|
|
expect(described_class.call(trusted_user)).to be(false)
|
|
end
|
|
|
|
it "marks ReCaptcha as enabled when user with vomits is logged in" do
|
|
sign_in vomitted_user
|
|
expect(described_class.call(vomitted_user)).to be(true)
|
|
end
|
|
|
|
it "marks ReCaptcha as enabled when a suspended user is logged in" do
|
|
older_user.add_role(:suspended)
|
|
sign_in older_user
|
|
expect(described_class.call(older_user)).to be(true)
|
|
older_user.remove_role(:suspended)
|
|
end
|
|
end
|
|
end
|
|
end
|