diff --git a/app/controllers/v0/disability_compensation_in_progress_forms_controller.rb b/app/controllers/v0/disability_compensation_in_progress_forms_controller.rb index 19e6c66de89..465a763d214 100644 --- a/app/controllers/v0/disability_compensation_in_progress_forms_controller.rb +++ b/app/controllers/v0/disability_compensation_in_progress_forms_controller.rb @@ -50,7 +50,7 @@ def data_and_metadata_with_updated_rated_disabilities end def set_started_form_version(data) - if data['startedFormVersion'].blank? + if data['started_form_version'].blank? || data['startedFormVersion'].blank? log_started_form_version(data, 'existing IPF missing startedFormVersion') data['startedFormVersion'] = '2019' end diff --git a/spec/requests/v0/disability_compensation_in_progress_forms_controller_spec.rb b/spec/requests/v0/disability_compensation_in_progress_forms_controller_spec.rb index dbdf5c9b6f8..9d24ebb76ad 100644 --- a/spec/requests/v0/disability_compensation_in_progress_forms_controller_spec.rb +++ b/spec/requests/v0/disability_compensation_in_progress_forms_controller_spec.rb @@ -13,6 +13,20 @@ let(:loa1_user) { build(:user, :loa1) } describe '#show' do + before do + allow(Flipper).to receive(:enabled?).with( + 'disability_compensation_lighthouse_rated_disabilities_provider_foreground', instance_of(User) + ).and_return(true) + allow(Flipper).to receive(:enabled?).with(:in_progress_form_custom_expiration) + allow(Flipper).to receive(:enabled?).with(:disability_compensation_sync_modern_0781_flow, instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:disability_compensation_remove_pciu, instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:remove_pciu, instance_of(User)) + allow(Flipper).to receive(:enabled?).with('disability_compensation_lighthouse_ppiu_direct_deposit_provider', + instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:disability_526_max_cfi_service_switch, instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:intent_to_file_lighthouse_enabled, instance_of(User)) + end + context 'using the Lighthouse Rated Disabilities Provider' do let(:rated_disabilities_from_lighthouse) do [{ 'name' => 'Diabetes mellitus0', @@ -42,7 +56,6 @@ end before do - Flipper.enable(ApiProviderFactory::FEATURE_TOGGLE_RATED_DISABILITIES_FOREGROUND) allow_any_instance_of(Auth::ClientCredentials::Service).to receive(:get_token).and_return('blahblech') sign_in_as(lighthouse_user) @@ -104,8 +117,7 @@ end context 'when toxic exposure' do - # if the user with an IPF was not chosen for Toxic Exposure 1.1 release - it 'does return 2019 as startedFormVersion' do + it 'returns startedFormVersion as 2019 for existing InProgressForms' do VCR.use_cassette('lighthouse/veteran_verification/disability_rating/200_response') do get v0_disability_compensation_in_progress_form_url(in_progress_form_lighthouse.form_id), params: nil end @@ -115,26 +127,49 @@ expect(json_response['formData']['startedFormVersion']).to eq('2019') end end - end - context 'prefills formData when user does not have an InProgressForm pending submission' do - before do - sign_in_as(user) - end + context 'prefills formData when user does not have an InProgressForm pending submission' do + let(:user) { loa1_user } + let!(:form_id) { '21-526EZ' } - let(:user) { loa1_user } - let!(:form_id) { '21-526EZ' } + before do + sign_in_as(user) + end + + it 'adds default startedFormVersion for new InProgressForm' do + get v0_disability_compensation_in_progress_form_url(form_id), params: nil + json_response = JSON.parse(response.body) + expect(json_response['formData']['startedFormVersion']).to eq('2022') + end - it 'adds startedFormVersion when corresponding flag is enabled for user' do - get v0_disability_compensation_in_progress_form_url(form_id), params: nil - json_response = JSON.parse(response.body) - expect(json_response['formData']['startedFormVersion']).to eq('2022') + it 'returns 2022 when existing IPF with 2022 as startedFormVersion' do + parsed_form_data = JSON.parse(in_progress_form_lighthouse.form_data) + parsed_form_data['startedFormVersion'] = '2022' + in_progress_form_lighthouse.form_data = parsed_form_data.to_json + in_progress_form_lighthouse.save! + VCR.use_cassette('lighthouse/veteran_verification/disability_rating/200_response') do + get v0_disability_compensation_in_progress_form_url(in_progress_form_lighthouse.form_id), params: nil + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body) + expect(json_response['formData']['startedFormVersion']).to eq('2022') + end + end end end context 'using the EVSS Rated Disabilities Provider' do before do - Flipper.disable(ApiProviderFactory::FEATURE_TOGGLE_RATED_DISABILITIES_FOREGROUND) + allow(Flipper).to receive(:enabled?).with( + 'disability_compensation_lighthouse_rated_disabilities_provider_foreground', instance_of(User) + ).and_return(false) + allow(Flipper).to receive(:enabled?).with(:in_progress_form_custom_expiration).and_return(false) + allow(Flipper).to receive(:enabled?).with(:disability_compensation_sync_modern_0781_flow, instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:disability_compensation_remove_pciu, instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:remove_pciu, instance_of(User)) + allow(Flipper).to receive(:enabled?).with('disability_compensation_lighthouse_ppiu_direct_deposit_provider', + instance_of(User)) + allow(Flipper).to receive(:enabled?).with(:disability_526_max_cfi_service_switch, instance_of(User)) + sign_in_as(user) end @@ -230,6 +265,18 @@ end end + context 'when toxic exposure' do + it 'returns startedFormVersion as 2019' do + VCR.use_cassette('evss/disability_compensation_form/rated_disabilities') do + get v0_disability_compensation_in_progress_form_url(in_progress_form.form_id), params: nil + end + + expect(response).to have_http_status(:ok) + json_response = JSON.parse(response.body) + expect(json_response['formData']['startedFormVersion']).to eq('2019') + end + end + describe '#index' do subject do get v0_disability_compensation_in_progress_forms_url, params: nil @@ -256,7 +303,6 @@ metadata: new_form.metadata }.to_json, headers: { 'CONTENT_TYPE' => 'application/json' } end.to change(InProgressForm, :count).by(1) - expect(response).to have_http_status(:ok) end end