Browse Source

Display different link when correcting duplicates

pull/1793/head
Kat 3 years ago
parent
commit
269d91000c
  1. 5
      app/helpers/duplicate_logs_helper.rb
  2. 9
      app/views/duplicate_logs/_duplicate_log_check_answers.erb
  3. 70
      spec/requests/duplicate_logs_controller_spec.rb

5
app/helpers/duplicate_logs_helper.rb

@ -22,4 +22,9 @@ module DuplicateLogsHelper
def duplicate_logs_action_href(log, page_id, original_log_id) def duplicate_logs_action_href(log, page_id, original_log_id)
send("#{log.model_name.param_key}_#{page_id}_path", log, referrer: "interruption_screen", original_log_id:) send("#{log.model_name.param_key}_#{page_id}_path", log, referrer: "interruption_screen", original_log_id:)
end end
def change_duplicate_logs_action_href(log, page_id, all_duplicates)
remaining_duplicate_id = all_duplicates.map(&:id).reject { |id| id == log.id }.first
send("#{log.model_name.param_key}_#{page_id}_path", log, referrer: "duplicate_logs", remaining_duplicate_id:)
end
end end

9
app/views/duplicate_logs/_duplicate_log_check_answers.erb

@ -26,7 +26,13 @@
<span class="govuk-!-font-weight-regular app-!-colour-muted"><%= inferred_answer %></span> <span class="govuk-!-font-weight-regular app-!-colour-muted"><%= inferred_answer %></span>
<% end %> <% end %>
<% end %> <% end %>
<% if @all_duplicates.count > 1 %>
<% row.action(
text: question.action_text(log),
href: change_duplicate_logs_action_href(log, question.page.id, @all_duplicates),
visually_hidden_text: question.check_answer_label.to_s.downcase,
) %>
<% else %>
<% row.action( <% row.action(
text: question.action_text(log), text: question.action_text(log),
href: duplicate_logs_action_href(log, question.page.id, @original_log_id), href: duplicate_logs_action_href(log, question.page.id, @original_log_id),
@ -35,5 +41,6 @@
<% end %> <% end %>
<% end %> <% end %>
<% end %> <% end %>
<% end %>
</div> </div>
</div> </div>

70
spec/requests/duplicate_logs_controller_spec.rb

@ -34,7 +34,8 @@ RSpec.describe DuplicateLogsController, type: :request do
sign_in user sign_in user
end end
context "with multiple duplicate lettings logs" do context "when viewing lettings logs duplicates" do
context "when there are multiple duplicate logs" do
let(:duplicate_logs) { create_list(:lettings_log, 2, :completed) } let(:duplicate_logs) { create_list(:lettings_log, 2, :completed) }
before do before do
@ -57,9 +58,9 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 3) expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 3)
expect(page).to have_content("Household rent and charges", count: 3) expect(page).to have_content("Household rent and charges", count: 3)
expect(page).to have_link("Change", count: 21) expect(page).to have_link("Change", count: 21)
expect(page).to have_link("Change", href: "/lettings-logs/#{lettings_log.id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen") expect(page).to have_link("Change", href: "/lettings-logs/#{lettings_log.id}/tenant-code?referrer=duplicate_logs&remaining_duplicate_id=#{duplicate_logs[0].id}")
expect(page).to have_link("Change", href: "/lettings-logs/#{duplicate_logs[0].id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen") expect(page).to have_link("Change", href: "/lettings-logs/#{duplicate_logs[0].id}/tenant-code?referrer=duplicate_logs&remaining_duplicate_id=#{lettings_log.id}")
expect(page).to have_link("Change", href: "/lettings-logs/#{duplicate_logs[1].id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen") expect(page).to have_link("Change", href: "/lettings-logs/#{duplicate_logs[1].id}/tenant-code?referrer=duplicate_logs&remaining_duplicate_id=#{lettings_log.id}")
end end
it "displays buttons to delete" do it "displays buttons to delete" do
@ -70,7 +71,36 @@ RSpec.describe DuplicateLogsController, type: :request do
end end
end end
context "with multiple duplicate sales logs" do context "when there are no more duplicate logs" do
before do
allow(LettingsLog).to receive(:duplicate_logs).and_return(LettingsLog.none)
get "/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}"
end
it "displays check your answers for each log with correct questions" do
expect(page).to have_content("Q5 - Tenancy start date", count: 1)
expect(page).to have_content("Q7 - Tenant code", count: 1)
expect(page).to have_content("Q12 - Postcode", count: 1)
expect(page).to have_content("Q32 - Lead tenant’s age", count: 1)
expect(page).to have_content("Q33 - Lead tenant’s gender identity", count: 1)
expect(page).to have_content("Q37 - Lead tenant’s working situation", count: 1)
expect(page).to have_content("Household rent and charges", count: 1)
expect(page).to have_link("Change", count: 7)
expect(page).to have_link("Change", href: "/lettings-logs/#{lettings_log.id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen")
end
it "displays buttons to return to log" do
expect(page).to have_link("Back to Log #{lettings_log.id}", href: "/lettings-logs/#{lettings_log.id}")
end
it "displays no duplicates banner" do
expect(page).to have_content("This log had the same answers but it is no longer a duplicate. Make sure the answers are correct.")
end
end
end
context "when viewing sales logs duplicates" do
context "when there are multiple duplicate logs" do
let(:duplicate_logs) { create_list(:sales_log, 2, :completed) } let(:duplicate_logs) { create_list(:sales_log, 2, :completed) }
before do before do
@ -92,6 +122,9 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_content("Q25 - Buyer 1's working situation", count: 3) expect(page).to have_content("Q25 - Buyer 1's working situation", count: 3)
expect(page).to have_content("Q15 - Postcode", count: 3) expect(page).to have_content("Q15 - Postcode", count: 3)
expect(page).to have_link("Change", count: 18) expect(page).to have_link("Change", count: 18)
expect(page).to have_link("Change", href: "/sales-logs/#{sales_log.id}/purchaser-code?referrer=duplicate_logs&remaining_duplicate_id=#{duplicate_logs[0].id}")
expect(page).to have_link("Change", href: "/sales-logs/#{duplicate_logs[0].id}/purchaser-code?referrer=duplicate_logs&remaining_duplicate_id=#{sales_log.id}")
expect(page).to have_link("Change", href: "/sales-logs/#{duplicate_logs[1].id}/purchaser-code?referrer=duplicate_logs&remaining_duplicate_id=#{sales_log.id}")
end end
it "displays buttons to delete" do it "displays buttons to delete" do
@ -101,6 +134,33 @@ RSpec.describe DuplicateLogsController, type: :request do
expect(page).to have_link("Keep this log and delete duplicates", href: "/sales-logs/#{duplicate_logs.second.id}/delete-duplicates?original_log_id=#{sales_log.id}") expect(page).to have_link("Keep this log and delete duplicates", href: "/sales-logs/#{duplicate_logs.second.id}/delete-duplicates?original_log_id=#{sales_log.id}")
end end
end end
context "when there are no more duplicate logs" do
before do
allow(SalesLog).to receive(:duplicate_logs).and_return(SalesLog.none)
get "/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}"
end
it "displays check your answers for each log with correct questions" do
expect(page).to have_content("Q1 - Sale completion date", count: 1)
expect(page).to have_content("Q2 - Purchaser code", count: 1)
expect(page).to have_content("Q20 - Lead buyer’s age", count: 1)
expect(page).to have_content("Q21 - Buyer 1’s gender identity", count: 1)
expect(page).to have_content("Q25 - Buyer 1's working situation", count: 1)
expect(page).to have_content("Q15 - Postcode", count: 1)
expect(page).to have_link("Change", count: 6)
expect(page).to have_link("Change", href: "/sales-logs/#{sales_log.id}/purchaser-code?original_log_id=#{sales_log.id}&referrer=interruption_screen")
end
it "displays buttons to return to log" do
expect(page).to have_link("Back to Log #{sales_log.id}", href: "/sales-logs/#{sales_log.id}")
end
it "displays no duplicates banner" do
expect(page).to have_content("This log had the same answers but it is no longer a duplicate. Make sure the answers are correct.")
end
end
end
end end
end end

Loading…
Cancel
Save