upload limits: fix point cap being exceeded.
This commit is contained in:
@@ -43,6 +43,7 @@ class UploadLimit
|
||||
user.with_lock do
|
||||
if incremental
|
||||
user.upload_points += UploadLimit.upload_value(user.upload_points, post.is_deleted)
|
||||
user.upload_points = user.upload_points.clamp(0, MAXIMUM_POINTS)
|
||||
user.save!
|
||||
else
|
||||
user.update!(upload_points: UploadLimit.points_for_user(user))
|
||||
|
||||
@@ -25,6 +25,16 @@ class UploadLimitTest < ActiveSupport::TestCase
|
||||
@post.approve!(@approver)
|
||||
assert_equal(1010, @user.reload.upload_points)
|
||||
end
|
||||
|
||||
should "not increase the uploader's upload points beyond the maximum" do
|
||||
@user.update!(upload_points: UploadLimit::MAXIMUM_POINTS)
|
||||
|
||||
@post = create(:post, uploader: @user, is_pending: true, created_at: 7.days.ago)
|
||||
assert_equal(UploadLimit::MAXIMUM_POINTS, @user.reload.upload_points)
|
||||
|
||||
@post.approve!(@approver)
|
||||
assert_equal(UploadLimit::MAXIMUM_POINTS, @user.reload.upload_points)
|
||||
end
|
||||
end
|
||||
|
||||
context "an approved post that is deleted" do
|
||||
|
||||
Reference in New Issue
Block a user