From 7a375b6235990afa123105db92165baa9b8d34ed Mon Sep 17 00:00:00 2001 From: Mike Moyer <87040148+mmoyer-va@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:51:40 -0500 Subject: [PATCH] MHV-65985 Added a check to block BBInternal client init threads if ICN is not set (#20191) * MHV-65985 Added a check to block client init threads if ICN is not set * MHV-65985 Fixed/added unit tests * MHV-65985 Fixed some unit tests --- lib/medical_records/bb_internal/client.rb | 4 ++-- .../my_health/v1/medical_records/imaging_spec.rb | 1 + .../v1/medical_records/radiology_spec.rb | 1 + .../medical_records/bb_internal/client_spec.rb | 15 ++++++++++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/medical_records/bb_internal/client.rb b/lib/medical_records/bb_internal/client.rb index 692fbc2f8a4..b0f0892f224 100644 --- a/lib/medical_records/bb_internal/client.rb +++ b/lib/medical_records/bb_internal/client.rb @@ -323,10 +323,10 @@ def map_study_ids(data) end ## - # Overriding MHVSessionBasedClient's method to ensure the thread blocks if patient ID is not yet set. + # Overriding MHVSessionBasedClient's method to ensure the thread blocks if ICN or patient ID are not yet set. # def invalid?(session) - super(session) || session.patient_id.blank? + super(session) || session.icn.blank? || session.patient_id.blank? end ## diff --git a/modules/my_health/spec/requests/my_health/v1/medical_records/imaging_spec.rb b/modules/my_health/spec/requests/my_health/v1/medical_records/imaging_spec.rb index 4c98dee0e38..5205ae55f29 100644 --- a/modules/my_health/spec/requests/my_health/v1/medical_records/imaging_spec.rb +++ b/modules/my_health/spec/requests/my_health/v1/medical_records/imaging_spec.rb @@ -19,6 +19,7 @@ bb_internal_client = BBInternal::Client.new( session: { user_id: 11_375_034, + icn: '1000000000V000000', patient_id: '11382904', expires_at: 1.hour.from_now, token: 'SESSION_TOKEN' diff --git a/modules/my_health/spec/requests/my_health/v1/medical_records/radiology_spec.rb b/modules/my_health/spec/requests/my_health/v1/medical_records/radiology_spec.rb index 3bdf1a71c98..fa0ed38e27b 100644 --- a/modules/my_health/spec/requests/my_health/v1/medical_records/radiology_spec.rb +++ b/modules/my_health/spec/requests/my_health/v1/medical_records/radiology_spec.rb @@ -17,6 +17,7 @@ bb_internal_client = BBInternal::Client.new( session: { user_id: 11_375_034, + icn: '1000000000V000000', patient_id: '11382904', expires_at: 1.hour.from_now, token: 'SESSION_TOKEN' diff --git a/spec/lib/medical_records/bb_internal/client_spec.rb b/spec/lib/medical_records/bb_internal/client_spec.rb index 42ff7f7c9e2..97571b19a81 100644 --- a/spec/lib/medical_records/bb_internal/client_spec.rb +++ b/spec/lib/medical_records/bb_internal/client_spec.rb @@ -439,10 +439,21 @@ end describe '#invalid?' do - let(:session_data) { OpenStruct.new(patient_id: patient_id, expired?: session_expired) } + let(:session_data) { OpenStruct.new(icn: icn, patient_id: patient_id, expired?: session_expired) } context 'when session is expired' do let(:session_expired) { true } + let(:icn) { '1000000000V000000' } + let(:patient_id) { '12345' } + + it 'returns true' do + expect(client.send(:invalid?, session_data)).to be true + end + end + + context 'when session has no icn' do + let(:session_expired) { false } + let(:icn) { nil } let(:patient_id) { '12345' } it 'returns true' do @@ -452,6 +463,7 @@ context 'when session has no patient_id' do let(:session_expired) { false } + let(:icn) { '1000000000V000000' } let(:patient_id) { nil } it 'returns true' do @@ -461,6 +473,7 @@ context 'when session is valid' do let(:session_expired) { false } + let(:icn) { '1000000000V000000' } let(:patient_id) { '12345' } it 'returns false' do