From 1696678a3e0dfaacff3154d0ba7fe2cc102cbfe4 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 7 Jul 2023 10:49:49 +0100 Subject: [PATCH] Render not found if there are no duplicate logs --- app/controllers/lettings_logs_controller.rb | 6 ++++- app/controllers/sales_logs_controller.rb | 6 ++++- .../requests/lettings_logs_controller_spec.rb | 26 +++++++++++++----- spec/requests/sales_logs_controller_spec.rb | 27 ++++++++++++++----- 4 files changed, 51 insertions(+), 14 deletions(-) diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index 2089b4aad..081f613cb 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -93,7 +93,11 @@ class LettingsLogsController < LogsController authorize @log @duplicate_logs = LettingsLog.duplicate_logs_for_organisation(current_user.organisation, @log) - render "logs/delete_duplicates" + if @duplicate_logs.empty? + render_not_found + else + render "logs/delete_duplicates" + end end def download_csv diff --git a/app/controllers/sales_logs_controller.rb b/app/controllers/sales_logs_controller.rb index ce9f74745..731518f94 100644 --- a/app/controllers/sales_logs_controller.rb +++ b/app/controllers/sales_logs_controller.rb @@ -67,7 +67,11 @@ class SalesLogsController < LogsController authorize @log @duplicate_logs = SalesLog.duplicate_logs_for_organisation(current_user.organisation, @log) - render "logs/delete_duplicates" + if @duplicate_logs.empty? + render_not_found + else + render "logs/delete_duplicates" + end end def download_csv diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 87750294d..72883dac9 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -1676,12 +1676,6 @@ RSpec.describe LettingsLogsController, type: :request do create(:lettings_log, :completed, owning_organisation: user.organisation) end let(:id) { lettings_log.id } - let!(:duplicate_log) do - duplicate = lettings_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end let(:request) { get "/lettings-logs/#{id}/delete-duplicates", headers: } before do @@ -1689,7 +1683,21 @@ RSpec.describe LettingsLogsController, type: :request do sign_in user end + context "when there are no duplicate logs" do + it "renders page not found" do + request + expect(response).to have_http_status(:not_found) + end + 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 + it "renders page" do request expect(response).to have_http_status(:ok) @@ -1704,6 +1712,12 @@ RSpec.describe LettingsLogsController, 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 diff --git a/spec/requests/sales_logs_controller_spec.rb b/spec/requests/sales_logs_controller_spec.rb index c7edb108d..904294b5f 100644 --- a/spec/requests/sales_logs_controller_spec.rb +++ b/spec/requests/sales_logs_controller_spec.rb @@ -881,12 +881,7 @@ RSpec.describe SalesLogsController, type: :request do create(:sales_log, :completed, owning_organisation: user.organisation) end let(:id) { sales_log.id } - let!(:duplicate_log) do - duplicate = sales_log.dup - duplicate.id = nil - duplicate.save! - duplicate - end + let(:request) { get "/sales-logs/#{id}/delete-duplicates", headers: } before do @@ -894,7 +889,21 @@ RSpec.describe SalesLogsController, type: :request do sign_in user end + context "when there are no duplicate logs" do + it "renders not found" do + request + expect(response).to have_http_status(:not_found) + end + 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 + it "renders page" do request expect(response).to have_http_status(:ok) @@ -908,6 +917,12 @@ RSpec.describe SalesLogsController, 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