Files
danbooru/test/unit/favorite_test.rb
evazion 7fa23c5fbf users: give all users unlimited favorites.
Let all users have unlimited favorites. Formerly the limit was 10k
favorites for regular members, 20k for Gold, and unlimited for Platinum.

Limiting favorites doesn't make sense since upvotes are unlimited.
2021-10-07 06:27:09 -05:00

52 lines
1.4 KiB
Ruby

require 'test_helper'
class FavoriteTest < ActiveSupport::TestCase
setup do
@user1 = FactoryBot.create(:user)
@user2 = FactoryBot.create(:user)
@p1 = FactoryBot.create(:post)
@p2 = FactoryBot.create(:post)
CurrentUser.user = @user1
CurrentUser.ip_addr = "127.0.0.1"
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "A favorite" do
should "delete from all tables" do
@p1.add_favorite!(@user1)
assert_equal(1, @user1.favorite_count)
Favorite.where(:user_id => @user1.id, :post_id => @p1.id).delete_all
assert_equal(0, Favorite.count)
end
should "know which table it belongs to" do
@p1.add_favorite!(@user1)
@p2.add_favorite!(@user1)
@p1.add_favorite!(@user2)
favorites = @user1.favorites.order("id desc")
assert_equal(2, favorites.count)
assert_equal(@p2.id, favorites[0].post_id)
assert_equal(@p1.id, favorites[1].post_id)
favorites = @user2.favorites.order("id desc")
assert_equal(1, favorites.count)
assert_equal(@p1.id, favorites[0].post_id)
end
should "not allow duplicates" do
@p1.add_favorite!(@user1)
error = assert_raises(Favorite::Error) { @p1.add_favorite!(@user1) }
assert_equal("You have already favorited this post", error.message)
assert_equal(1, @user1.favorite_count)
end
end
end