user deletions: fix error when given incorrect password.

Use validations instead of raising an exception when the password is
incorrect so that the controller can display errors sensibly.

Also fix users being logged out even when the deletion attempt failed
due to an incorrect password.
This commit is contained in:
evazion
2020-04-03 23:36:27 -05:00
parent 53b761dfe9
commit 8134e92457
4 changed files with 36 additions and 18 deletions

View File

@@ -6,10 +6,8 @@ class UserDeletionTest < ActiveSupport::TestCase
should "fail" do
@user = create(:user)
@deletion = UserDeletion.new(@user, "wrongpassword")
assert_raise(UserDeletion::ValidationError) do
@deletion.delete!
end
@deletion.delete!
assert_includes(@deletion.errors[:base], "Password is incorrect")
end
end
@@ -17,10 +15,8 @@ class UserDeletionTest < ActiveSupport::TestCase
should "fail" do
@user = create(:admin_user)
@deletion = UserDeletion.new(@user, "password")
assert_raise(UserDeletion::ValidationError) do
@deletion.delete!
end
@deletion.delete!
assert_includes(@deletion.errors[:base], "Admins cannot delete their account")
end
end
end