uploads: replace old upload limits with new upload limits.

This commit is contained in:
evazion
2020-02-03 18:37:14 -06:00
parent 24cb920608
commit 3c2a379d6f
20 changed files with 67 additions and 158 deletions

View File

@@ -1,5 +1,6 @@
FactoryBot.define do
factory(:post) do
created_at { 2.weeks.ago }
sequence :md5 do |n|
n.to_s
end

View File

@@ -1,5 +1,5 @@
FactoryBot.define do
factory(:user, aliases: [:creator, :updater, :uploader]) do
factory(:user, aliases: [:creator, :updater]) do
sequence :name do |n|
"user#{n}"
end
@@ -58,5 +58,9 @@ FactoryBot.define do
level {50}
can_approve_posts {true}
end
factory(:uploader) do
created_at { 2.weeks.ago }
end
end
end

View File

@@ -223,6 +223,22 @@ class UploadsControllerTest < ActionDispatch::IntegrationTest
end
end
context "when the uploader is limited" do
should "not allow uploading" do
@member = create(:user, created_at: 2.weeks.ago, upload_points: 0)
create_list(:post, @member.upload_limit.upload_slots, uploader: @member, is_pending: true)
assert_no_difference("Post.count") do
file = Rack::Test::UploadedFile.new("#{Rails.root}/test/files/test.jpg", "image/jpeg")
post_auth uploads_path, @member, params: { upload: { file: file, tag_string: "aaa", rating: "q" }}
end
@upload = Upload.last
assert_redirected_to @upload
assert_match(/have reached your upload limit/, @upload.status)
end
end
should "create a new upload" do
assert_difference("Upload.count", 1) do
file = Rack::Test::UploadedFile.new("#{Rails.root}/test/files/test.jpg", "image/jpeg")

View File

@@ -3,7 +3,7 @@ require 'test_helper'
class UploadLimitTest < ActiveSupport::TestCase
context "Upload limits:" do
setup do
@user = create(:user, upload_points: 1000)
@user = create(:user, upload_points: 1000, created_at: 2.weeks.ago)
@approver = create(:moderator_user)
end

View File

@@ -1,34 +0,0 @@
require 'test_helper'
class UploadTest < ActiveSupport::TestCase
SOURCE_URL = "https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/NAMA_Machine_d%27Anticyth%C3%A8re_1.jpg/538px-NAMA_Machine_d%27Anticyth%C3%A8re_1.jpg?download"
context "In all cases" do
setup do
mock_iqdb_service!
user = FactoryBot.create(:contributor_user)
CurrentUser.user = user
CurrentUser.ip_addr = "127.0.0.1"
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "An upload" do
context "from a user that is limited" do
setup do
CurrentUser.user = FactoryBot.create(:user, :created_at => 1.year.ago)
User.any_instance.stubs(:upload_limit).returns(0)
end
should "fail creation" do
@upload = FactoryBot.build(:jpg_upload, :tag_string => "")
@upload.save
assert_equal(["You have reached your upload limit for the day"], @upload.errors.full_messages)
end
end
end
end
end

View File

@@ -48,24 +48,6 @@ class UserTest < ActiveSupport::TestCase
end
end
should "limit post uploads" do
assert(!@user.can_upload?)
@user.update_column(:created_at, 15.days.ago)
assert(@user.can_upload?)
assert_equal(10, @user.upload_limit)
9.times do
FactoryBot.create(:post, :uploader => @user, :is_pending => true)
end
@user = User.find(@user.id)
assert_equal(1, @user.upload_limit)
assert(@user.can_upload?)
FactoryBot.create(:post, :uploader => @user, :is_pending => true)
@user = User.find(@user.id)
assert(!@user.can_upload?)
end
should "limit comment votes" do
Danbooru.config.stubs(:member_comment_time_threshold).returns(1.week.from_now)
Danbooru.config.stubs(:member_comment_limit).returns(10)