2024-02-25 12:15:55 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require "test_helper"
|
2016-10-31 20:51:44 -04:00
|
|
|
|
|
|
|
class PostApprovalTest < ActiveSupport::TestCase
|
2017-04-03 16:15:06 -04:00
|
|
|
context "a pending post" do
|
|
|
|
setup do
|
2022-11-25 15:06:54 -05:00
|
|
|
@user = create(:user)
|
2017-04-03 16:15:06 -04:00
|
|
|
CurrentUser.user = @user
|
|
|
|
|
2022-11-25 15:06:54 -05:00
|
|
|
@post = create(:post, uploader_id: @user.id, tag_string: "touhou", is_pending: true)
|
2017-04-03 16:15:06 -04:00
|
|
|
|
2022-11-25 15:06:54 -05:00
|
|
|
@approver = create(:user)
|
2017-04-03 16:15:06 -04:00
|
|
|
@approver.can_approve_posts = true
|
|
|
|
@approver.save
|
|
|
|
CurrentUser.user = @approver
|
|
|
|
end
|
|
|
|
|
|
|
|
should "allow approval" do
|
2017-04-03 16:18:42 -04:00
|
|
|
assert_equal(false, @post.approved_by?(@approver))
|
2017-04-03 16:15:06 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
context "That is approved" do
|
2022-09-20 05:11:34 -04:00
|
|
|
should "not create a postapproval record when approved by the uploader" do
|
|
|
|
assert_no_difference("PostApproval.count") do
|
|
|
|
@post.approve!(@post.uploader)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
should "create a postapproval record when approved by someone else" do
|
2017-04-03 16:15:06 -04:00
|
|
|
assert_difference("PostApproval.count") do
|
2022-09-20 05:11:34 -04:00
|
|
|
@post.approve!(create(:janitor_user))
|
2017-04-03 16:15:06 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2018-05-05 14:07:49 -04:00
|
|
|
|
|
|
|
context "#search method" do
|
|
|
|
should "work" do
|
2022-09-20 05:11:34 -04:00
|
|
|
@post.approve!(@approver)
|
2023-08-22 17:23:08 -04:00
|
|
|
@approvals = PostApproval.search(user_name: @approver.name, post_tags_match: "touhou", post_id: @post.id.to_s)
|
2018-05-05 14:07:49 -04:00
|
|
|
|
2022-09-20 05:11:34 -04:00
|
|
|
assert_equal([@post.id], @approvals.map(&:post_id))
|
2018-05-05 14:07:49 -04:00
|
|
|
end
|
|
|
|
end
|
2017-04-03 16:15:06 -04:00
|
|
|
end
|
2016-10-31 20:51:44 -04:00
|
|
|
end
|