eBooru/test/unit/user_feedback_test.rb
Earlopain 87313c437c [Tests] Include FactoryBot::Syntax::Methods
The newly included create method behaves exacly like the self-written one,
with the added benefit of it not appearing in backtraces.
2022-11-25 21:06:54 +01:00

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