diff options
Diffstat (limited to 'test/controllers/sessions_controller_test.rb')
| -rw-r--r-- | test/controllers/sessions_controller_test.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/controllers/sessions_controller_test.rb b/test/controllers/sessions_controller_test.rb index a5f511f5..62acd28a 100644 --- a/test/controllers/sessions_controller_test.rb +++ b/test/controllers/sessions_controller_test.rb | |||
| @@ -23,4 +23,19 @@ class SessionsControllerTest < ActionController::TestCase | |||
| 23 | assert_nil session[:user_id] | 23 | assert_nil session[:user_id] |
| 24 | assert_response :redirect | 24 | assert_response :redirect |
| 25 | end | 25 | end |
| 26 | |||
| 27 | test "login with password only is withheld for enrolled users" do | ||
| 28 | users(:quentin).update!(:otp_secret => ROTP::Base32.random) | ||
| 29 | post :create, params: { login: 'quentin', password: 'monkey' } | ||
| 30 | assert_nil session[:user_id] | ||
| 31 | assert_equal users(:quentin).id, session[:pending_otp_user_id] | ||
| 32 | assert_redirected_to new_otp_challenge_path | ||
| 33 | end | ||
| 34 | |||
| 35 | test "otp_required without enrollment logs in but funnels into setup" do | ||
| 36 | users(:quentin).update!(:otp_required => true) | ||
| 37 | post :create, params: { login: 'quentin', password: 'monkey' } | ||
| 38 | assert session[:user_id] | ||
| 39 | assert_redirected_to edit_user_path(users(:quentin)) | ||
| 40 | end | ||
| 26 | end | 41 | end |
