feedbacks: don't send redundant dmails when user is banned or loses approver status.

When a user is banned, send them a "You have been banned" dmail instead of a "Your user record has
been updated" dmail.

When a user loses approver status due to inactivity, don't seen them a "Your user record has been
updated" dmail for the "Lost approver privileges" neutral feedback they receive.
This commit is contained in:
evazion
2022-11-20 16:39:36 -06:00
parent bbe32f5e5d
commit 001ce99dd3
4 changed files with 23 additions and 10 deletions

View File

@@ -10,6 +10,8 @@ class ApproverPrunerTest < ActiveSupport::TestCase
assert_equal([@approver.id], ApproverPruner.inactive_approvers.map(&:id))
assert_nothing_raised { ApproverPruner.prune! }
assert_equal(User::Levels::CONTRIBUTOR, @approver.reload.level)
assert_equal(1, @approver.dmails.received.count)
assert_equal("Approver inactivity", @approver.dmails.received.last.title)
end
should "not demote active approvers" do

View File

@@ -38,14 +38,20 @@ class BanTest < ActiveSupport::TestCase
end
should "update the user's feedback" do
user = FactoryBot.create(:user)
admin = FactoryBot.create(:admin_user)
assert(user.feedback.empty?)
CurrentUser.scoped(admin) do
FactoryBot.create(:ban, :user => user, :banner => admin)
end
assert(!user.feedback.empty?)
assert_equal("negative", user.feedback.last.category)
user = create(:user)
ban = create(:ban, user: user, duration: 100.years, reason: "lol")
assert_equal(1, user.feedback.negative.count)
assert_equal("Banned forever: lol", user.feedback.last.body)
end
should "send the user a dmail" do
user = create(:user)
ban = create(:ban, user: user, duration: 100.years, reason: "lol")
assert_equal(1, user.dmails.count)
assert_equal("You have been banned", user.dmails.last.title)
assert_equal("You have been banned forever: lol", user.dmails.last.body)
end
end