From ec36bfd06d8ed61e9410186df5e19958823613a5 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 28 Apr 2026 22:35:30 +0100 Subject: [PATCH] Test login error cases for sessions controller --- test/controllers/sessions_controller_test.rb | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/controllers/sessions_controller_test.rb b/test/controllers/sessions_controller_test.rb index 49bda996b..367722ddf 100644 --- a/test/controllers/sessions_controller_test.rb +++ b/test/controllers/sessions_controller_test.rb @@ -74,6 +74,29 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest assert_nil session[:_remember_for] end + def test_login_pending_user + user = create(:user, :pending) + + post login_path, :params => { :username => user.display_name, :password => "s3cr3t", :remember_me => "0" } + assert_redirected_to :controller => "confirmations", :action => "confirm", :display_name => user.display_name + end + + def test_login_suspended_user + user = create(:user, :suspended) + + post login_path, :params => { :username => user.display_name, :password => "s3cr3t", :remember_me => "0" } + assert_redirected_to login_path(:username => user.display_name, :remember_me => false) + assert_equal({ :partial => "sessions/suspended_flash" }, flash[:error]) + end + + def test_login_invalid_password + user = create(:user) + + post login_path, :params => { :username => user.display_name, :password => "s2cr2t", :remember_me => "0" } + assert_redirected_to login_path(:username => user.display_name, :remember_me => false) + assert_equal(I18n.t("sessions.new.auth failure"), flash[:error]) + end + def test_logout_without_referer post logout_path assert_redirected_to root_path -- 2.39.5