upload limits: fix point cap being exceeded.
This commit is contained in:
@@ -43,6 +43,7 @@ class UploadLimit
|
|||||||
user.with_lock do
|
user.with_lock do
|
||||||
if incremental
|
if incremental
|
||||||
user.upload_points += UploadLimit.upload_value(user.upload_points, post.is_deleted)
|
user.upload_points += UploadLimit.upload_value(user.upload_points, post.is_deleted)
|
||||||
|
user.upload_points = user.upload_points.clamp(0, MAXIMUM_POINTS)
|
||||||
user.save!
|
user.save!
|
||||||
else
|
else
|
||||||
user.update!(upload_points: UploadLimit.points_for_user(user))
|
user.update!(upload_points: UploadLimit.points_for_user(user))
|
||||||
|
|||||||
@@ -25,6 +25,16 @@ class UploadLimitTest < ActiveSupport::TestCase
|
|||||||
@post.approve!(@approver)
|
@post.approve!(@approver)
|
||||||
assert_equal(1010, @user.reload.upload_points)
|
assert_equal(1010, @user.reload.upload_points)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context "an approved post that is deleted" do
|
context "an approved post that is deleted" do
|
||||||
|
|||||||
Reference in New Issue
Block a user