mirror of
https://github.com/discourse/discourse.git
synced 2025-05-29 00:20:54 +08:00
DEV: Move spec/components to spec/lib (#15987)
Lib specs were inexplicably split into two directories (`lib` and `components`) This moves them all into `lib`.
This commit is contained in:
64
spec/lib/spam_handler_spec.rb
Normal file
64
spec/lib/spam_handler_spec.rb
Normal file
@ -0,0 +1,64 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
require "spam_handler"
|
||||
|
||||
describe SpamHandler do
|
||||
|
||||
describe "#should_prevent_registration_from_ip?" do
|
||||
|
||||
it "works" do
|
||||
# max_new_accounts_per_registration_ip = 0 disables the check
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 0
|
||||
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[1])
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
|
||||
# only prevents registration for TL0
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 2
|
||||
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[1])
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[1])
|
||||
expect { Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0]) }.to raise_error(ActiveRecord::RecordInvalid)
|
||||
end
|
||||
|
||||
it "doesn't limit registrations since there is a TL2+ user with that IP" do
|
||||
# setup
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 0
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[2])
|
||||
|
||||
# should not limit registration
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 1
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
end
|
||||
|
||||
it "doesn't limit registrations since there is a staff member with that IP" do
|
||||
# setup
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 0
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
Fabricate(:moderator, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
|
||||
Group.refresh_automatic_groups!(:staff)
|
||||
|
||||
# should not limit registration
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 1
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
end
|
||||
|
||||
it "doesn't limit registrations when the IP is allowlisted" do
|
||||
# setup
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 0
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
ScreenedIpAddress.stubs(:is_allowed?).with("42.42.42.42").returns(true)
|
||||
|
||||
# should not limit registration
|
||||
SiteSetting.max_new_accounts_per_registration_ip = 1
|
||||
Fabricate(:user, ip_address: "42.42.42.42", trust_level: TrustLevel[0])
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue
Block a user