Fix #5231: "Reason is too long" notice does not appear when editing an appeal

This commit is contained in:
evazion
2022-08-24 14:27:00 -05:00
parent d01b3c0637
commit c2597ff299
6 changed files with 50 additions and 8 deletions

View File

@@ -99,5 +99,42 @@ class PostAppealsControllerTest < ActionDispatch::IntegrationTest
end
end
end
context "update action" do
should "allow the appealer to update the appeal" do
@appealer = create(:user)
@post_appeal = create(:post_appeal, creator: @appealer, reason: "xxx")
put_auth post_appeal_path(@post_appeal), @appealer, params: { post_appeal: { reason: "yes" }}
assert_redirected_to @post_appeal.post
assert_equal("yes", @post_appeal.reload.reason)
end
should "return an error if the appeal is too long" do
@appealer = create(:user)
@post_appeal = create(:post_appeal, creator: @appealer, reason: "xxx")
put_auth post_appeal_path(@post_appeal), @appealer, params: { post_appeal: { reason: "x"*1000 }}
assert_response :success
assert_equal("xxx", @post_appeal.reload.reason)
end
should "not allow the appealer to update a rejected appeal" do
@appealer = create(:user)
@post_appeal = create(:post_appeal, creator: @appealer, reason: "xxx", status: "rejected")
put_auth post_appeal_path(@post_appeal), @appealer, params: { post_appeal: { reason: "no" }}
assert_response 403
assert_equal("xxx", @post_appeal.reload.reason)
end
should "not allow other users to update the appeal" do
@post_appeal = create(:post_appeal, reason: "xxx")
put_auth post_appeal_path(@post_appeal), create(:mod_user), params: { post_appeal: { reason: "no" }}
assert_response 403
assert_equal("xxx", @post_appeal.reload.reason)
end
end
end
end

View File

@@ -150,6 +150,13 @@ class PostFlagsControllerTest < ActionDispatch::IntegrationTest
assert_equal("no", @post_flag.reload.reason)
end
should "return an error if the flag is too long" do
put_auth post_flag_path(@post_flag), @flagger, params: { post_flag: { reason: "x"*1000 }}
assert_response :success
assert_equal("xxx", @post_flag.reload.reason)
end
should "not allow the flagger to update a resolved flag" do
@post_flag.update!(status: "rejected")
put_auth post_flag_path(@post_flag), @flagger, params: { post_flag: { reason: "no" }}