upload limits: fix point cap being exceeded.

This commit is contained in:
evazion
2020-01-31 02:46:01 -06:00
parent 76630bbf73
commit 067c6a10e7
2 changed files with 11 additions and 0 deletions

View File

@@ -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))

View File

@@ -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