58 lines
1.9 KiB
Ruby
58 lines
1.9 KiB
Ruby
require 'test_helper'
|
|
|
|
class PostAppealTest < ActiveSupport::TestCase
|
|
context "In all cases" do
|
|
setup do
|
|
@user = create(:user, upload_points: 1000)
|
|
end
|
|
|
|
context "a user" do
|
|
setup do
|
|
@post = create(:post, tag_string: "aaa", is_deleted: true)
|
|
end
|
|
|
|
should "not be able to appeal a post more than once" do
|
|
@post_appeal = create(:post_appeal, post: @post, creator: @user)
|
|
@post_appeal = build(:post_appeal, post: @post, creator: @user)
|
|
|
|
assert_equal(false, @post_appeal.valid?)
|
|
assert_includes(@post_appeal.errors.full_messages, "You have already appealed this post")
|
|
end
|
|
|
|
should "not be able to appeal an active post" do
|
|
@post.update!(is_deleted: false)
|
|
@post_appeal = build(:post_appeal, post: @post, creator: @user)
|
|
|
|
assert_equal(false, @post_appeal.valid?)
|
|
assert_equal(["Post cannot be appealed"], @post_appeal.errors.full_messages)
|
|
end
|
|
|
|
context "appeal limits" do
|
|
context "for members" do
|
|
should "not be able to appeal more than their upload limit" do
|
|
create_list(:post_appeal, 5, creator: @user)
|
|
|
|
assert_equal(15, @user.upload_limit.upload_slots)
|
|
assert_equal(15, @user.upload_limit.used_upload_slots)
|
|
|
|
@post_appeal = build(:post_appeal, creator: @user)
|
|
assert_equal(false, @post_appeal.valid?)
|
|
assert_equal(["have reached your appeal limit"], @post_appeal.errors[:creator])
|
|
end
|
|
end
|
|
|
|
context "for users with unrestricted uploads" do
|
|
should "should not have an appeal limit" do
|
|
@user = create(:contributor)
|
|
create_list(:post_appeal, 10, creator: @user)
|
|
|
|
assert_equal(15, @user.upload_limit.upload_slots)
|
|
assert_equal(30, @user.upload_limit.used_upload_slots)
|
|
assert_equal(false, @user.is_appeal_limited?)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|