forked from e621ng/e621ng

The newly included create method behaves exacly like the self-written one, with the added benefit of it not appearing in backtraces.
45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
require 'test_helper'
|
|
|
|
class UserFeedbackTest < ActiveSupport::TestCase
|
|
context "A user's feedback" do
|
|
setup do
|
|
@user = create(:user)
|
|
@mod = create(:moderator_user)
|
|
CurrentUser.user = @mod
|
|
CurrentUser.ip_addr = "127.0.0.1"
|
|
end
|
|
|
|
teardown do
|
|
CurrentUser.user = nil
|
|
CurrentUser.ip_addr = nil
|
|
end
|
|
|
|
should "create a dmail" do
|
|
dmail = <<~EOS.chomp
|
|
@#{@mod.name} created a "positive record":/user_feedbacks?search[user_id]=#{@user.id} for your account:
|
|
|
|
good job!
|
|
EOS
|
|
assert_difference("Dmail.count", 1) do
|
|
create(:user_feedback, user: @user, body: "good job!")
|
|
assert_equal(dmail, @user.dmails.last.body)
|
|
end
|
|
end
|
|
|
|
should "not validate if the creator is the user" do
|
|
feedback = build(:user_feedback, user: @mod)
|
|
feedback.save
|
|
assert_equal(["You cannot submit feedback for yourself"], feedback.errors.full_messages)
|
|
end
|
|
|
|
should "not validate if the creator has no permissions" do
|
|
privileged = create(:privileged_user)
|
|
|
|
CurrentUser.user = privileged
|
|
feedback = build(:user_feedback, user: @user)
|
|
feedback.save
|
|
assert_equal(["You must be moderator"], feedback.errors.full_messages)
|
|
end
|
|
end
|
|
end
|