From 056cd42caf2b07111f4ea789299bbc5cc186b766 Mon Sep 17 00:00:00 2001 From: Yanzhen Chen Date: Thu, 21 May 2026 18:07:35 -0400 Subject: [PATCH 1/5] test: refactored sign_in method in authentication_helper.rb to set session variables. --- spec/support/authentication_helper.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/support/authentication_helper.rb b/spec/support/authentication_helper.rb index b5a6b1b2fa..45bbc88d64 100644 --- a/spec/support/authentication_helper.rb +++ b/spec/support/authentication_helper.rb @@ -1,9 +1,9 @@ module AuthenticationHelper def sign_in(user) - real_controller = @controller - @controller = MainController.new - post :login, params: { user_login: user.user_name, user_password: 'x' } - @controller = real_controller + session[:auth_type] = 'local' + session[:real_user_name] = user.user_name + session[:timeout] = Settings.session_timeout.seconds.from_now.to_s + session[:has_warned] = false end def get_as(user, action, params: {}, format: nil, session: {}) From 25e731ce7082d7c49ace697a8e46c5ffe4f91c0a Mon Sep 17 00:00:00 2001 From: Yanzhen Chen Date: Thu, 21 May 2026 18:15:31 -0400 Subject: [PATCH 2/5] updated changelog --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index 55f2e4aecd..156ad0dfb5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -29,6 +29,7 @@ - Fixed `(hidden)` assignment labeling for assignments with `visible_on` and/or `visible_until` set (#7944) ### 🔧 Internal changes +- Refactored `AuthenticationHelper#sign_in` to set session values directly instead of going through `MainController#login` (#7962) - Fixed flaky test `can bulk assign duplicated TAs to grade entry students` in `/spec/models/grade_entry_student_spec.rb` (#7958) - Added tests for `GroupsController` to fully cover `global_actions` (#7955) - Added tests for `graders_controller` to fully cover `grader_criteria_mapping` function (#7949) From 212d893d95fbb65ca0ee42195f3ce6ce3472338f Mon Sep 17 00:00:00 2001 From: Yanzhen Chen Date: Thu, 21 May 2026 23:46:53 -0400 Subject: [PATCH 3/5] test: update main_controller_spec for sign_in helper refactor --- spec/controllers/main_controller_spec.rb | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/spec/controllers/main_controller_spec.rb b/spec/controllers/main_controller_spec.rb index f87afcafae..b2b89b1f5c 100644 --- a/spec/controllers/main_controller_spec.rb +++ b/spec/controllers/main_controller_spec.rb @@ -152,14 +152,15 @@ context 'logging in during an LTI launch' do let(:lti) { create(:lti_deployment) } + let(:lti_redirect_url) { redirect_login_canvas_path } before do - cookies.encrypted.permanent[:lti_data] = JSON.generate({ lti_redirect: redirect_login_canvas_path }) + cookies.encrypted.permanent[:lti_data] = JSON.generate({ lti_redirect: lti_redirect_url }) end it 'redirects to redirect_login' do - sign_in instructor - expect(response).to redirect_to action: 'redirect_login', controller: 'canvas' + post :login, params: { user_login: instructor.user_name, user_password: 'a' } + expect(response).to redirect_to lti_redirect_url end context 'when logged in during lti launch' do @@ -207,7 +208,7 @@ context 'after logging in without remote user auth' do before do - sign_in student + post :login, params: { user_login: student.user_name, user_password: 'a' } end it_behaves_like 'student tests' @@ -217,7 +218,7 @@ before do env_hash = { HTTP_X_FORWARDED_USER: student.user_name } request.headers.merge! env_hash - sign_in student + post :login, params: { user_login: student.user_name, user_password: 'a' } end it_behaves_like 'student tests' @@ -233,7 +234,7 @@ context 'after logging in without remote user auth' do before do - sign_in ta + post :login, params: { user_login: ta.user_name, user_password: 'a' } end it_behaves_like 'ta tests' @@ -243,7 +244,7 @@ before do env_hash = { HTTP_X_FORWARDED_USER: ta.user_name } request.headers.merge! env_hash - sign_in ta + post :login, params: { user_login: ta.user_name, user_password: 'a' } end it_behaves_like 'ta tests' @@ -259,7 +260,7 @@ context 'after logging in without remote user auth' do before do - sign_in admin_user + post :login, params: { user_login: admin_user.user_name, user_password: 'a' } end it_behaves_like 'admin tests' @@ -269,7 +270,7 @@ before do env_hash = { HTTP_X_FORWARDED_USER: admin_user.user_name } request.headers.merge! env_hash - sign_in admin_user + post :login, params: { user_login: admin_user.user_name, user_password: 'a' } end it_behaves_like 'admin tests' From 0ed20ea346670d083d7aaf7dea34e45bf2527e07 Mon Sep 17 00:00:00 2001 From: Yanzhen Chen Date: Fri, 22 May 2026 00:22:41 -0400 Subject: [PATCH 4/5] chore: retrigger CI From 82aebbb208e8a31f0e2a074686f0e0267c7f60d7 Mon Sep 17 00:00:00 2001 From: Yanzhen Chen Date: Fri, 22 May 2026 13:54:17 -0400 Subject: [PATCH 5/5] updated changelog to reflect the test changes --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index 156ad0dfb5..cfff22783b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -30,6 +30,7 @@ ### 🔧 Internal changes - Refactored `AuthenticationHelper#sign_in` to set session values directly instead of going through `MainController#login` (#7962) +- Updated `MainController` specs to dispatch `post :login` directly in tests that assert on login's response, instead of relying on `sign_in`'s internal request (#7962) - Fixed flaky test `can bulk assign duplicated TAs to grade entry students` in `/spec/models/grade_entry_student_spec.rb` (#7958) - Added tests for `GroupsController` to fully cover `global_actions` (#7955) - Added tests for `graders_controller` to fully cover `grader_criteria_mapping` function (#7949)