diff --git a/app/views/form/guidance/_financial_calculations_discounted_ownership.html.erb b/app/views/form/guidance/_financial_calculations_discounted_ownership.html.erb index fc507fe01..f87f9ba7f 100644 --- a/app/views/form/guidance/_financial_calculations_discounted_ownership.html.erb +++ b/app/views/form/guidance/_financial_calculations_discounted_ownership.html.erb @@ -2,19 +2,28 @@ <% grant_question_link = question_link("grant", log, current_user) %> <% value_question_link = question_link("value", log, current_user) %> <%= govuk_details(summary_text: "How the financial values are calculated") do %> -
- The mortgage amount <%= question_link("mortgage", log, current_user) %> - <% if grant_question_link.blank? %> - and cash deposit <%= question_link("deposit", log, current_user) %> - <% else %> - cash deposit <%= question_link("deposit", log, current_user) %> - and grant <%= grant_question_link %> - <% end %> - added together must equal - the purchase price <%= value_question_link %> - <% if discount_question_link.present? %> - subtracted by the sum of the purchase price <%= value_question_link %> - multiplied by the discount <%= discount_question_link %> - <% end %> +
+ <% if log.mortgage_used? || log.mortgageused.blank? %> + <% mortgage_question_link = log.mortgageused.blank? ? question_link("mortgageused", log, current_user) : question_link("mortgage", log, current_user) %> + The mortgage amount <%= mortgage_question_link %><% if grant_question_link.blank? %> + and cash deposit <%= question_link("deposit", log, current_user) %> + <% else %>, cash deposit <%= question_link("deposit", log, current_user) %> + and grant <%= grant_question_link %> + <% end %> + added together must equal + <% else %> + <% if grant_question_link.blank? %> + Cash deposit <%= question_link("deposit", log, current_user) %> must equal + <% else %> + Cash deposit <%= question_link("deposit", log, current_user) %> + and grant <%= grant_question_link %> + added together must equal + <% end %> + <% end %> + the purchase price <%= value_question_link %> + <% if discount_question_link.present? %> + subtracted by the sum of the purchase price <%= value_question_link %> + multiplied by the discount <%= discount_question_link %> + <% end %>
<% end %> diff --git a/spec/views/form/guidance/_financial_calculations_discounted_ownership_spec.rb b/spec/views/form/guidance/_financial_calculations_discounted_ownership_spec.rb new file mode 100644 index 000000000..5b40f2fc3 --- /dev/null +++ b/spec/views/form/guidance/_financial_calculations_discounted_ownership_spec.rb @@ -0,0 +1,85 @@ +require "rails_helper" + +RSpec.describe "form/guidance/_financial_calculations_discounted_ownership.html.erb" do + let(:log) { create(:sales_log) } + + let(:fragment) { Capybara::Node::Simple.new(rendered) } + + context "when mortgage used is not answered" do + let(:log) { create(:sales_log, :completed, ownershipsch: 2, type: 9, mortgageused: nil, discount: 30) } + + it "renders correct content" do + render partial: "form/guidance/financial_calculations_discounted_ownership", locals: { log:, current_user: log.assigned_to } + expect(fragment).to have_content("The mortgage amount") + expect(fragment).to have_content("and cash deposit") + expect(fragment).to have_content("added together must equal") + expect(fragment).to have_content("the purchase price") + expect(fragment).to have_content("subtracted by the sum of the purchase price") + expect(fragment).to have_content("multiplied by the discount") + end + end + + context "when mortgage used is no" do + let(:log) { create(:sales_log, :completed, ownershipsch: 2, type: 9, mortgageused: 2, discount: nil) } + + it "renders correct content" do + render partial: "form/guidance/financial_calculations_discounted_ownership", locals: { log:, current_user: log.assigned_to } + expect(fragment).to have_content("Cash deposit") + expect(fragment).to have_content("must equal") + expect(fragment).to have_content("the purchase price") + expect(fragment).to have_content("subtracted by the sum of the purchase price") + expect(fragment).to have_content("multiplied by the discount") + + expect(fragment).not_to have_content("The mortgage amount") + expect(fragment).not_to have_content("added together must equal") + end + end + + context "when mortgage used is yes" do + let(:log) { create(:sales_log, :completed, ownershipsch: 2, type: 9, mortgageused: 1, mortgage: nil, discount: 30) } + + it "renders correct content" do + render partial: "form/guidance/financial_calculations_discounted_ownership", locals: { log:, current_user: log.assigned_to } + expect(fragment).to have_content("The mortgage amount") + expect(fragment).to have_content("and cash deposit") + expect(fragment).to have_content("added together must equal") + expect(fragment).to have_content("the purchase price") + expect(fragment).to have_content("subtracted by the sum of the purchase price") + expect(fragment).to have_content("multiplied by the discount") + end + end + + context "when grant is routed to" do + context "and morgage used" do + let(:log) { create(:sales_log, :completed, ownershipsch: 2, type: 22, mortgageused: 1, mortgage: nil, discount: 30) } + + it "renders correct content" do + render partial: "form/guidance/financial_calculations_discounted_ownership", locals: { log:, current_user: log.assigned_to } + expect(fragment).to have_content("The mortgage amount") + expect(fragment).to have_content("cash deposit") + expect(fragment).to have_content("and grant") + expect(fragment).to have_content("added together must equal") + expect(fragment).to have_content("the purchase price") + + expect(fragment).not_to have_content("subtracted by the sum of the purchase price") + expect(fragment).not_to have_content("multiplied by the discount") + end + end + + context "and morgage not used" do + let(:log) { create(:sales_log, :completed, ownershipsch: 2, type: 22, mortgageused: 2, grant: nil) } + + it "renders correct content" do + render partial: "form/guidance/financial_calculations_discounted_ownership", locals: { log:, current_user: log.assigned_to } + expect(fragment).to have_content("Cash deposit") + expect(fragment).to have_content("and grant") + expect(fragment).to have_content("added together must equal") + expect(fragment).to have_content("the purchase price") + + expect(fragment).not_to have_content("The mortgage amount") + expect(fragment).not_to have_content("subtracted by the sum of the purchase price") + expect(fragment).not_to have_content("multiplied by the discount") + end + end + end +end