Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

Commit dcf4100

Browse files
Fix cerner eligibility test failure caused by Settings mutation leak (#27411)
1 parent ba1af3c commit dcf4100

2 files changed

Lines changed: 39 additions & 21 deletions

File tree

modules/mobile/spec/requests/mobile/v0/user/authorized_services_spec.rb

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@
6161
end
6262

6363
it 'includes properly set meta flags for user not at pretransitioned oh facility' do
64-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357'
65-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '456, 789'
66-
Settings.mhv.oh_facility_checks.oh_migrations_list = ''
64+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
65+
pretransitioned_oh_facilities: '612, 357',
66+
facilities_ready_for_info_alert: '456, 789',
67+
oh_migrations_list: ''
68+
)
6769
get '/mobile/v0/user/authorized-services', headers: sis_headers,
6870
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
6971
assert_schema_conform(200)
@@ -74,9 +76,11 @@
7476
end
7577

7678
it 'includes properly set meta flags for user at pretransitioned oh facility but not ready for info alert' do
77-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357, 555'
78-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '456, 789'
79-
Settings.mhv.oh_facility_checks.oh_migrations_list = ''
79+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
80+
pretransitioned_oh_facilities: '612, 357, 555',
81+
facilities_ready_for_info_alert: '456, 789',
82+
oh_migrations_list: ''
83+
)
8084
get '/mobile/v0/user/authorized-services', headers: sis_headers,
8185
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
8286
assert_schema_conform(200)
@@ -90,9 +94,11 @@
9094
end
9195

9296
it 'includes properly set meta flags for user at pretransitioned oh facility and ready for info alert' do
93-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357, 555'
94-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '555'
95-
Settings.mhv.oh_facility_checks.oh_migrations_list = ''
97+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
98+
pretransitioned_oh_facilities: '612, 357, 555',
99+
facilities_ready_for_info_alert: '555',
100+
oh_migrations_list: ''
101+
)
96102
get '/mobile/v0/user/authorized-services', headers: sis_headers,
97103
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
98104
assert_schema_conform(200)
@@ -106,9 +112,12 @@
106112
end
107113

108114
it 'includes properly set meta flags for actively migrating facility' do
109-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357'
110-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '612'
111-
Settings.mhv.oh_facility_checks.oh_migrations_list = '2026-10-01:[555,Facility A],[612,Facility B]'
115+
migrations_list = '2026-10-01:[555,Facility A],[612,Facility B]'
116+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
117+
pretransitioned_oh_facilities: '612, 357',
118+
facilities_ready_for_info_alert: '612',
119+
oh_migrations_list: migrations_list
120+
)
112121
get '/mobile/v0/user/authorized-services', headers: sis_headers,
113122
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
114123
assert_schema_conform(200)
@@ -372,9 +381,12 @@
372381
end
373382

374383
it 'includes properly sets migratingFacilitiesList when user does not have a migrating facility' do
375-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357'
376-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '612'
377-
Settings.mhv.oh_facility_checks.oh_migrations_list = '2026-10-01:[999,Facility A],[888,Facility B]'
384+
migrations_list = '2026-10-01:[999,Facility A],[888,Facility B]'
385+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
386+
pretransitioned_oh_facilities: '612, 357',
387+
facilities_ready_for_info_alert: '612',
388+
oh_migrations_list: migrations_list
389+
)
378390
get '/mobile/v0/user/authorized-services', headers: sis_headers,
379391
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
380392
assert_schema_conform(200)
@@ -384,9 +396,12 @@
384396
end
385397

386398
it 'includes properly sets migratingFacilitiesList when user does have a migrating facility' do
387-
Settings.mhv.oh_facility_checks.pretransitioned_oh_facilities = '612, 357'
388-
Settings.mhv.oh_facility_checks.facilities_ready_for_info_alert = '612'
389-
Settings.mhv.oh_facility_checks.oh_migrations_list = '2026-10-01:[555,Facility A],[555,Facility B]'
399+
migrations_list = '2026-10-01:[555,Facility A],[555,Facility B]'
400+
allow(Settings.mhv.oh_facility_checks).to receive_messages(
401+
pretransitioned_oh_facilities: '612, 357',
402+
facilities_ready_for_info_alert: '612',
403+
oh_migrations_list: migrations_list
404+
)
390405
get '/mobile/v0/user/authorized-services', headers: sis_headers,
391406
params: { 'appointmentIEN' => '123', 'locationId' => '123' }
392407
assert_schema_conform(200)

spec/controllers/v1/sessions_controller_spec.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,10 @@ def expect_logger_msg(level, msg)
949949
end
950950

951951
context 'when cerner eligibility is checked' do
952+
let(:user) { build(:user, :loa3, cerner_id:, cerner_facility_ids:) }
953+
let(:correlation_mpi_record) { build(:mpi_profile, ssn: correlation_mpi_ssn, cerner_id:, cerner_facility_ids:) }
954+
let(:cerner_id) { 'some-cerner-id' }
955+
let(:cerner_facility_ids) { %w[123 555] }
952956
let(:cerner_eligible_cookie) { 'CERNER_ELIGIBLE' }
953957
let(:expected_log_message) { '[SessionsController] Cerner Eligibility' }
954958
let(:previous_value) { nil }
@@ -957,12 +961,11 @@ def expect_logger_msg(level, msg)
957961
before do
958962
SAMLRequestTracker.create(uuid: login_uuid, payload: { type: 'idme', application: 'some-applicaton' })
959963
allow(Rails.logger).to receive(:info)
960-
allow(IdentitySettings.sign_in).to receive(:info_cookie_domain).and_return('some-domain')
961964
end
962965

963966
context 'when the cerner eligible cookie is not present' do
964967
before do
965-
allow_any_instance_of(User).to receive(:cerner_full?).and_return(eligible)
968+
allow(IdentitySettings.sign_in).to receive(:info_cookie_domain).and_return('some-domain')
966969
end
967970

968971
context 'when the user is cerner eligible' do
@@ -978,6 +981,7 @@ def expect_logger_msg(level, msg)
978981
end
979982

980983
context 'when the user is not cerner eligible' do
984+
let(:cerner_id) { nil }
981985
let(:eligible) { false }
982986

983987
it 'sets the cookie and logs the cerner eligibility' do
@@ -994,7 +998,6 @@ def expect_logger_msg(level, msg)
994998
let(:previous_value) { true }
995999

9961000
before do
997-
allow_any_instance_of(User).to receive(:cerner_full?).and_return(eligible)
9981001
cookies[cerner_eligible_cookie] = true
9991002
end
10001003

0 commit comments

Comments
 (0)