From 857349cbb0a4ea736da751fdcb38052d2c97d087 Mon Sep 17 00:00:00 2001 From: Riley Anderson <5150r.d.anderson@gmail.com> Date: Thu, 24 Oct 2024 10:51:53 -0600 Subject: [PATCH] Break MHV user account cache when user/mhv_user_account endpoint is called --- .../v0/user/mhv_user_accounts_controller.rb | 3 ++- .../user/mhv_user_accounts_controller_spec.rb | 19 ++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/app/controllers/v0/user/mhv_user_accounts_controller.rb b/app/controllers/v0/user/mhv_user_accounts_controller.rb index f43e574c70f..1875e0b9965 100644 --- a/app/controllers/v0/user/mhv_user_accounts_controller.rb +++ b/app/controllers/v0/user/mhv_user_accounts_controller.rb @@ -18,7 +18,8 @@ def show private def set_mhv_user_account - @mhv_user_account = current_user.mhv_user_account + @mhv_user_account = MHV::UserAccount::Creator.new(user_verification: current_user.user_verification, + break_cache: true).perform end def render_errors(error_message, status: :unprocessable_entity) diff --git a/spec/controllers/v0/user/mhv_user_accounts_controller_spec.rb b/spec/controllers/v0/user/mhv_user_accounts_controller_spec.rb index 37e836466e2..3f44d07b757 100644 --- a/spec/controllers/v0/user/mhv_user_accounts_controller_spec.rb +++ b/spec/controllers/v0/user/mhv_user_accounts_controller_spec.rb @@ -4,8 +4,7 @@ require 'mhv/account_creation/service' describe V0::User::MHVUserAccountsController, type: :controller do - let(:user) { build(:user, :loa3, vha_facility_ids:, icn:) } - let(:vha_facility_ids) { %w[450MH] } + let(:user) { build(:user, :loa3, icn:) } let(:icn) { '10101V964144' } let!(:user_verification) do @@ -42,21 +41,15 @@ allow(mhv_client).to receive(:create_account).and_return(mhv_response) end - it 'returns the MHV account' do + it 'breaks the cache and returns the MHV account' do get :show expect(response).to have_http_status(:ok) expect(JSON.parse(response.body)['data']['attributes']).to eq(mhv_response.with_indifferent_access) - end - end - - context 'when the user does not have an MHV account' do - let(:vha_facility_ids) { [] } - - it 'returns a 404' do - get :show - - expect(response).to have_http_status(:not_found) + expect(mhv_client).to have_received(:create_account).with(icn:, + email: user_credential_email.credential_email, + tou_occurred_at: terms_of_use_agreement.created_at, + break_cache: true) end end