From 82fddf40031b9d757e9b6708536ac733d3ebd5a4 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 12 Jul 2023 15:22:54 +0100 Subject: [PATCH] Refactor tests and paths --- app/controllers/form_controller.rb | 8 +-- app/helpers/duplicate_logs_helper.rb | 12 ++-- spec/factories/lettings_log.rb | 2 + spec/factories/sales_log.rb | 1 + spec/features/lettings_log_spec.rb | 11 +--- spec/features/sales_log_spec.rb | 11 +--- .../duplicate_logs_controller_spec.rb | 60 +++---------------- 7 files changed, 27 insertions(+), 78 deletions(-) diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index c1e2d014f..16d15569f 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -141,9 +141,7 @@ private return unless query_params parsed_params = CGI.parse(query_params) - return unless parsed_params["referrer"] - - parsed_params["referrer"][0] + parsed_params["referrer"]&.first end def original_duplicate_log_id_from_query @@ -152,9 +150,7 @@ private return unless query_params parsed_params = CGI.parse(query_params) - return unless parsed_params["original_log_id"] - - parsed_params["original_log_id"][0] + parsed_params["original_log_id"]&.first end def previous_interruption_screen_page_id diff --git a/app/helpers/duplicate_logs_helper.rb b/app/helpers/duplicate_logs_helper.rb index c5041d7aa..b73fc5cf3 100644 --- a/app/helpers/duplicate_logs_helper.rb +++ b/app/helpers/duplicate_logs_helper.rb @@ -3,15 +3,19 @@ module DuplicateLogsHelper def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log_id) if all_duplicates.count > 1 - return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id:) + return govuk_button_link_to "Keep this log and delete duplicates", url_for( + controller: "duplicate_logs", + action: "delete_duplicates", + "#{duplicate_log.class.name.underscore}_id": duplicate_log.id, + original_log_id:, + ) end if original_log_id == duplicate_log.id govuk_button_link_to "Back to Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log) else - return govuk_button_link_to "Back to lettings logs", lettings_logs_path if duplicate_log.lettings? - - govuk_button_link_to "Back to sales logs", sales_logs_path + type = duplicate_log.lettings? ? "lettings" : "sales" + govuk_button_link_to "Back to #{type} logs", url_for(duplicate_log.class) end end diff --git a/spec/factories/lettings_log.rb b/spec/factories/lettings_log.rb index 9cf6232d4..ae203b79e 100644 --- a/spec/factories/lettings_log.rb +++ b/spec/factories/lettings_log.rb @@ -39,6 +39,8 @@ FactoryBot.define do needstype { 1 } tenancycode { "same tenancy code" } postcode_full { "A1 1AA" } + uprn_known { 0 } + declaration { 1 } age1 { 18 } sex1 { "M" } ecstat1 { 0 } diff --git a/spec/factories/sales_log.rb b/spec/factories/sales_log.rb index dbfc8e418..54687c928 100644 --- a/spec/factories/sales_log.rb +++ b/spec/factories/sales_log.rb @@ -46,6 +46,7 @@ FactoryBot.define do ecstat1 { 1 } postcode_full { "A1 1AA" } privacynotice { 1 } + uprn_known { 0 } end trait :completed do purchid { rand(999_999_999).to_s } diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb index cd42e017b..5ed8d807f 100644 --- a/spec/features/lettings_log_spec.rb +++ b/spec/features/lettings_log_spec.rb @@ -391,13 +391,8 @@ RSpec.describe "Lettings Log Features" do end context "when a log becomes a duplicate" do - let(:lettings_log) { create(:lettings_log, :completed, owning_organisation: user.organisation, created_by: user) } - let!(:duplicate_log) do - duplicate = lettings_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let(:lettings_log) { create(:lettings_log, :duplicate, owning_organisation: user.organisation, created_by: user) } + let!(:duplicate_log) { create(:lettings_log, :duplicate, owning_organisation: user.organisation, created_by: user) } before do lettings_log.update!(tenancycode: "different") @@ -412,7 +407,7 @@ RSpec.describe "Lettings Log Features" do expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/delete-duplicates?original_log_id=#{lettings_log.id}") click_button "Delete this log" duplicate_log.reload - expect(duplicate_log.status).to eq("deleted") + expect(duplicate_log.deleted?).to be true expect(page).to have_css(".govuk-notification-banner.govuk-notification-banner--success") expect(page).to have_content("Log #{duplicate_log.id} has been deleted") expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}") diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb index 86f61414f..0a6020bec 100644 --- a/spec/features/sales_log_spec.rb +++ b/spec/features/sales_log_spec.rb @@ -140,13 +140,8 @@ RSpec.describe "Sales Log Features" do context "when a log becomes a duplicate" do let(:user) { create(:user, :data_coordinator) } - let(:sales_log) { create(:sales_log, :completed, owning_organisation: user.organisation, created_by: user) } - let!(:duplicate_log) do - duplicate = sales_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let(:sales_log) { create(:sales_log, :duplicate, created_by: user) } + let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } before do allow(user).to receive(:need_two_factor_authentication?).and_return(false) @@ -163,7 +158,7 @@ RSpec.describe "Sales Log Features" do expect(page).to have_current_path("/sales-logs/#{sales_log.id}/delete-duplicates?original_log_id=#{sales_log.id}") click_button "Delete this log" duplicate_log.reload - expect(duplicate_log.status).to eq("deleted") + expect(duplicate_log.deleted?).to be true expect(page).to have_css(".govuk-notification-banner.govuk-notification-banner--success") expect(page).to have_content("Log #{duplicate_log.id} has been deleted") expect(page).to have_current_path("/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}") diff --git a/spec/requests/duplicate_logs_controller_spec.rb b/spec/requests/duplicate_logs_controller_spec.rb index b9b5c0dd7..221c35bee 100644 --- a/spec/requests/duplicate_logs_controller_spec.rb +++ b/spec/requests/duplicate_logs_controller_spec.rb @@ -3,22 +3,8 @@ require "rails_helper" RSpec.describe DuplicateLogsController, type: :request do let(:page) { Capybara::Node::Simple.new(response.body) } let(:user) { create(:user, :data_coordinator) } - let(:lettings_log) do - create( - :lettings_log, - :completed, - created_by: user, - owning_organisation: user.organisation, - ) - end - let(:sales_log) do - create( - :sales_log, - :completed, - created_by: user, - owning_organisation: user.organisation, - ) - end + let(:lettings_log) { create(:lettings_log, :duplicate, created_by: user) } + let(:sales_log) { create(:sales_log, :duplicate, created_by: user) } describe "GET show" do context "when user is not signed in" do @@ -133,12 +119,7 @@ RSpec.describe DuplicateLogsController, type: :request do end context "when there is 1 duplicate log being deleted" do - let!(:duplicate_log) do - duplicate = sales_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } it "renders page" do request @@ -154,18 +135,8 @@ RSpec.describe DuplicateLogsController, type: :request do end context "when there are multiple duplicate logs being deleted" do - let!(:duplicate_log) do - duplicate = sales_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end - let!(:duplicate_log_2) do - duplicate = sales_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let!(:duplicate_log) { create(:sales_log, :duplicate, created_by: user) } + let!(:duplicate_log_2) { create(:sales_log, :duplicate, created_by: user) } it "renders page" do request @@ -222,12 +193,7 @@ RSpec.describe DuplicateLogsController, type: :request do end context "when there is 1 duplicate log being deleted" do - let!(:duplicate_log) do - duplicate = lettings_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } it "renders page" do request @@ -244,18 +210,8 @@ RSpec.describe DuplicateLogsController, type: :request do end context "when there are multiple duplicate logs being deleted" do - let!(:duplicate_log) do - duplicate = lettings_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end - let!(:duplicate_log_2) do - duplicate = lettings_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let!(:duplicate_log) { create(:lettings_log, :duplicate, created_by: user) } + let!(:duplicate_log_2) { create(:lettings_log, :duplicate, created_by: user) } it "renders page" do request