diff --git a/app/lib/pdf_filler/f13614c_pdf.rb b/app/lib/pdf_filler/f13614c_pdf.rb index 7700fc0bf9..3c85da94ac 100644 --- a/app/lib/pdf_filler/f13614c_pdf.rb +++ b/app/lib/pdf_filler/f13614c_pdf.rb @@ -86,8 +86,8 @@ def hash_for_pdf "statusLegallySeparated[0].statusLegallySeparated[0]" => @intake.separated_yes?, "statusDivorced[0].statusDivorced[0]" => @intake.divorced_yes?, "statusWidowed[0].statusWidowed[0]" => @intake.widowed_yes?, - "liveWithSpouse[0].liveWithYes[0]" => @intake.lived_with_spouse_yes?, - "liveWithSpouse[0].liveWithNo[0]" => @intake.lived_with_spouse_no?, + "liveApart[0].liveApartNo[0]" => @intake.lived_with_spouse_yes?, + "liveApart[0].liveApartYes[0]" => @intake.lived_with_spouse_no?, "marriedForAll[0].forAllYes[0]" => @intake.married_for_all_of_tax_year_yes?, "marriedForAll[0].forAllNo[0]" => @intake.married_for_all_of_tax_year_no?, } @@ -102,9 +102,6 @@ def hash_for_pdf answers["form1[0].page1[0].anyoneElseClaim[0].otherClaimYes[0]"] = yes_no_unfilled_to_checkbox(@intake.claimed_by_another) answers["form1[0].page1[0].anyoneElseClaim[0].otherClaimNo[0]"] = yes_no_unfilled_to_opposite_checkbox(@intake.claimed_by_another) - answers["form1[0].page1[0].howToVote[0].voteInformationYes[0]"] = yes_no_unfilled_to_checkbox(@intake.register_to_vote) - answers["form1[0].page1[0].howToVote[0].voteInformationNo[0]"] = yes_no_unfilled_to_opposite_checkbox(@intake.register_to_vote) - # PAGE 2 answers.merge!( keep_and_normalize( @@ -307,7 +304,7 @@ def hash_for_pdf { "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundYou[0]" => (@intake.presidential_campaign_fund_donation_primary? || @intake.presidential_campaign_fund_donation_primary_and_spouse?), "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundSpouse[0]" => (@intake.presidential_campaign_fund_donation_spouse? || @intake.presidential_campaign_fund_donation_primary_and_spouse?), - "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundNo[0]" => (!(@intake.presidential_campaign_fund_donation_spouse? || @intake.presidential_campaign_fund_donation_primary_and_spouse?) && !(@intake.presidential_campaign_fund_donation_primary? || @intake.presidential_campaign_fund_donation_primary_and_spouse?)), + "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundNo[0]" => (!@intake.presidential_campaign_fund_donation_unfilled? && !(@intake.presidential_campaign_fund_donation_spouse? || @intake.presidential_campaign_fund_donation_primary_and_spouse?) && !(@intake.presidential_campaign_fund_donation_primary? || @intake.presidential_campaign_fund_donation_primary_and_spouse?)), } ) ) @@ -315,7 +312,7 @@ def hash_for_pdf # ty2024 page 5 - answers["form1[0].page5[0].AdditionalComments[0].AdditionalNotesComments[0]"] = (@intake.additional_notes_comments || '') << "\n\n" << dependents_4th_and_up + answers["form1[0].page5[0].AdditionalComments[0].AdditionalNotesComments[0]"] = (@intake.additional_notes_comments || '') << "\n\n" << dependents_5th_and_up # end - ty2024 page 5 @@ -451,7 +448,7 @@ def yes_no_checkboxes(pdf_key_base, enum_value, include_unsure: false, option_pr def dependents_info answers = {} - @dependents.first(3).each_with_index do |dependent, index| + @dependents.first(4).each_with_index do |dependent, index| single_dependent_params(dependent, index: index + 1).each do |key, value| answers[key] = value end @@ -583,13 +580,13 @@ def single_dependent_params(dependent, index:) } end - def dependents_4th_and_up - return '' if @dependents.length < 4 + def dependents_5th_and_up + return '' if @dependents.length < 5 s = "Additional Dependents:\n" sep = ' // ' - @dependents[3..].map do |dependent| + @dependents[4..].map do |dependent| s << dependent.full_name << sep s << strftime_date(dependent.birth_date) << sep s << dependent.relationship << sep diff --git a/spec/lib/pdf_filler/f13614c_pdf_spec.rb b/spec/lib/pdf_filler/f13614c_pdf_spec.rb index baebc2a402..8c1f23cc9d 100644 --- a/spec/lib/pdf_filler/f13614c_pdf_spec.rb +++ b/spec/lib/pdf_filler/f13614c_pdf_spec.rb @@ -199,6 +199,26 @@ filer_provided_over_half_support: "na", filer_provided_over_half_housing_support: "yes", ) + create( + :dependent, + intake: intake, + first_name: "Polly", + last_name: "Pony", + relationship: "Parent", + birth_date: Date.new(1955, 7, 20), + months_in_home: 8, + was_married: "yes", + disabled: "yes", + north_american_resident: "no", + us_citizen: "yes", + was_student: "no", + can_be_claimed_by_other: "no", + provided_over_half_own_support: "no", + below_qualifying_relative_income_requirement: "yes", + filer_provided_over_half_support: "yes", + filer_provided_over_half_housing_support: "yes", + has_ip_pin: "no", + ) end it 'fills out the dependent info section on page 1 correctly' do @@ -275,16 +295,13 @@ expect(intake_pdf.hash_for_pdf.keys & all_fields_in_pdf).to match_array(intake_pdf.hash_for_pdf.keys) end - # TODO reenable for TY2025 - xit 'fills out written language preference and voter information sections correctly' do + it 'fills out written language preference and voter information sections correctly' do output_file = intake_pdf.output_file result = non_preparer_fields(output_file.path) expect(result).to include( "form1[0].page1[0].writtenCommunicationLanguage[0].otherLanguageNo[0]" => '', "form1[0].page1[0].writtenCommunicationLanguage[0].otherLanguageYou[0]" => '1', "form1[0].page1[0].writtenCommunicationLanguage[0].whatLanguage[0]" => "Russian", - "form1[0].page1[0].howToVote[0].voteInformationYes[0]" => "", - "form1[0].page1[0].howToVote[0].voteInformationNo[0]" => "1", ) end @@ -304,8 +321,6 @@ "form1[0].page1[0].haveBlanceDue[0].blanceDirectPay[0]" => "Off", "form1[0].page1[0].haveBlanceDue[0].blanceInstallmentAgreement[0]" => "Off", "form1[0].page1[0].haveBlanceDue[0].blanceMailPayment[0]" => "1", - "form1[0].page1[0].howToVote[0].voteInformationNo[0]" => "1", - "form1[0].page1[0].howToVote[0].voteInformationYes[0]" => "", "form1[0].page1[0].hyperlink[0]" => nil, "form1[0].page1[0].liveWorkStates[0].liveWorkNo[0]" => "Off", "form1[0].page1[0].liveWorkStates[0].liveWorkYes[0]" => "1", @@ -314,8 +329,10 @@ "form1[0].page1[0].mailingState[0]" => "NJ", "form1[0].page1[0].mailingZIPCode[0]" => "08052", "form1[0].page1[0].maillingApartmentNumber[0]" => "", - "form1[0].page1[0].maritalStatus[0].liveWithSpouse[0].liveWithNo[0]" => "Off", - "form1[0].page1[0].maritalStatus[0].liveWithSpouse[0].liveWithYes[0]" => "1", + +"form1[0].page1[0].maritalStatus[0].lastDay[0].lastDayNo[0]" => "Off", + +"form1[0].page1[0].maritalStatus[0].lastDay[0].lastDayYes[0]" => "Off", + "form1[0].page1[0].maritalStatus[0].liveApart[0].liveApartYes[0]" => "Off", + "form1[0].page1[0].maritalStatus[0].liveApart[0].liveApartNo[0]" => "1", "form1[0].page1[0].maritalStatus[0].marriedForAll[0].forAllNo[0]" => "Off", "form1[0].page1[0].maritalStatus[0].marriedForAll[0].forAllYes[0]" => "Off", "form1[0].page1[0].maritalStatus[0].statusDivorced[0].dateFinalDecree[0]" => "2015", @@ -371,6 +388,21 @@ "form1[0].page1[0].namesOf[0].Row3[0].supportForPerson[0]" => "N/A", "form1[0].page1[0].namesOf[0].Row3[0].totallyPermanentlyDisabled[0]" => "Y", "form1[0].page1[0].namesOf[0].Row3[0].usCitizen[0]" => "N", + "form1[0].page1[0].namesOf[0].Row4[0].costMaintainingHome[0]" => "Yes", + "form1[0].page1[0].namesOf[0].Row4[0].dateOfBirth[0]" => "7/20/1955", + "form1[0].page1[0].namesOf[0].Row4[0].fullTimeStudent[0]" => "N", + "form1[0].page1[0].namesOf[0].Row4[0].issuedIPPIN[0]" => "N", + "form1[0].page1[0].namesOf[0].Row4[0].lessThanIncome[0]" => "Yes", + "form1[0].page1[0].namesOf[0].Row4[0].monthsLivedHome[0]" => "8", + "form1[0].page1[0].namesOf[0].Row4[0].nameFirstLast[0]" => "Polly Pony", + "form1[0].page1[0].namesOf[0].Row4[0].ownSupport[0]" => "No", + "form1[0].page1[0].namesOf[0].Row4[0].qualifyingChildDependent[0]" => "No", + "form1[0].page1[0].namesOf[0].Row4[0].relationshipToYou[0]" => "Parent", + "form1[0].page1[0].namesOf[0].Row4[0].residentUSCandaMexico[0]" => "N", + "form1[0].page1[0].namesOf[0].Row4[0].singleMarried[0]" => "M", + "form1[0].page1[0].namesOf[0].Row4[0].supportForPerson[0]" => "Yes", + "form1[0].page1[0].namesOf[0].Row4[0].totallyPermanentlyDisabled[0]" => "Y", + "form1[0].page1[0].namesOf[0].Row4[0].usCitizen[0]" => "Y", "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundNo[0]" => "Off", "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundSpouse[0]" => "Off", "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundYou[0]" => "1", @@ -975,7 +1007,7 @@ describe 'additional comments field' do let(:additional_comments_key) { "form1[0].page5[0].AdditionalComments[0].AdditionalNotesComments[0]" } - context "when there are only 3 or less dependents" do + context "when there are only 4 or less dependents" do it "does not reference additional dependents" do expect(intake_pdf.hash_for_pdf[additional_comments_key]).to eq("if there is another gnome living in my garden but only i have an income, does that make me head of household?\n\n") end @@ -1074,6 +1106,26 @@ ) end end + + context "when presidential campaign fund is unfilled" do + let(:intake) do + create( + :intake, + client: build(:client, :with_consent, consented_to_service_at: Date.new(2024, 1, 1)), + presidential_campaign_fund_donation: "unfilled" + ) + end + + it "leaves all presidential election fund options unselected" do + output_file = intake_pdf.output_file + result = non_preparer_fields(output_file.path) + expect(result).to include( + "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundYou[0]" => "Off", + "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundSpouse[0]" => "Off", + "form1[0].page1[0].presidentialElectionFund[0].presidentialElectionFundNo[0]" => "Off" + ) + end + end end end end