From 9f623e0cb212cfe11a3e346a2a1d6f1392d96640 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 12 Jun 2024 13:14:11 +0100 Subject: [PATCH] CLDC-3274 Display organisation merges for a longer period (#2456) * Display organisation merges for a longer period * Refactor --- .../lettings_log_summary_component.html.erb | 2 +- app/helpers/filters_helper.rb | 4 +-- app/models/form_handler.rb | 4 +++ app/models/organisation.rb | 13 ++++--- .../_merged_organisation_details.html.erb | 4 +-- .../requests/organisations_controller_spec.rb | 34 +++++++++++-------- 6 files changed, 38 insertions(+), 23 deletions(-) diff --git a/app/components/lettings_log_summary_component.html.erb b/app/components/lettings_log_summary_component.html.erb index 92636b148..89fddad20 100644 --- a/app/components/lettings_log_summary_component.html.erb +++ b/app/components/lettings_log_summary_component.html.erb @@ -28,7 +28,7 @@ <% end %>
<% end %> - <% if current_user.support? || current_user.organisation.has_managing_agents? || current_user.organisation.has_recent_absorbed_organisations? %> + <% if current_user.support? || current_user.organisation.has_managing_agents? || current_user.organisation.has_organisations_absorbed_during_displayed_collection_period? %>Merge date: <%= merge_date&.to_formatted_s(:govuk_date) %>
<%= govuk_table do |table| %> <%= table.with_head do |head| %> diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 1b236f8fc..f30a1e4eb 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -381,14 +381,11 @@ RSpec.describe OrganisationsController, type: :request do end context "when the organisation has absorbed other organisations" do - let!(:absorbed_organisation) { create(:organisation, name: "First Absorbed Organisation") } - let!(:other_absorbed_organisation) { create(:organisation, name: "Other Absorbed Organisation") } - let!(:previously_absorbed_organisation) { create(:organisation, name: "Previously Absorbed Organisation") } + let!(:absorbed_organisation) { create(:organisation, name: "First Absorbed Organisation", with_dsa: false, merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) } + let!(:other_absorbed_organisation) { create(:organisation, name: "Other Absorbed Organisation", with_dsa: false, merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) } + let!(:previously_absorbed_organisation) { create(:organisation, name: "Previously Absorbed Organisation", with_dsa: false, merge_date: Time.zone.local(2023, 4, 2), absorbing_organisation: organisation) } before do - absorbed_organisation.update!(merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) - other_absorbed_organisation.update!(merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) - previously_absorbed_organisation.update!(merge_date: Time.zone.local(2023, 4, 2), absorbing_organisation: organisation) get "/organisations/#{organisation.id}/details", headers:, params: {} end @@ -406,12 +403,23 @@ RSpec.describe OrganisationsController, type: :request do end context "when the organisation has absorbed other organisations during a closed collection period" do - let!(:absorbed_organisation) { create(:organisation, name: "First Absorbed Organisation") } - let!(:other_absorbed_organisation) { create(:organisation, name: "Other Absorbed Organisation") } + before do + create(:organisation, name: "First Absorbed Organisation", with_dsa: false, merge_date: Time.zone.today - 2.years, absorbing_organisation: organisation) + create(:organisation, name: "Other Absorbed Organisation", with_dsa: false, merge_date: Time.zone.today - 2.years, absorbing_organisation: organisation) + get "/organisations/#{organisation.id}/details", headers:, params: {} + end + + it "displays absorbed organisations" do + expect(page).to have_content("View all organisations that were merged into #{organisation.name}") + expect(page).to have_content("First Absorbed Organisation") + expect(page).to have_content("Other Absorbed Organisation") + end + end + context "when the organisation has absorbed other organisations during a collection period before archived" do before do - absorbed_organisation.update!(merge_date: Time.zone.local(2021, 4, 3), absorbing_organisation: organisation) - other_absorbed_organisation.update!(merge_date: Time.zone.local(2021, 4, 3), absorbing_organisation: organisation) + create(:organisation, name: "First Absorbed Organisation", with_dsa: false, merge_date: Time.zone.today - 3.years, absorbing_organisation: organisation) + create(:organisation, name: "Other Absorbed Organisation", with_dsa: false, merge_date: Time.zone.today - 3.years, absorbing_organisation: organisation) get "/organisations/#{organisation.id}/details", headers:, params: {} end @@ -424,12 +432,10 @@ RSpec.describe OrganisationsController, type: :request do end context "when the organisation has absorbed other organisations without merge dates" do - let!(:absorbed_organisation) { create(:organisation, name: "First Absorbed Organisation") } - let!(:other_absorbed_organisation) { create(:organisation, name: "Other Absorbed Organisation") } + let!(:absorbed_organisation) { create(:organisation, name: "First Absorbed Organisation", with_dsa: false, merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) } + let!(:other_absorbed_organisation) { create(:organisation, name: "Other Absorbed Organisation", with_dsa: false, merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) } before do - absorbed_organisation.update!(merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) - other_absorbed_organisation.update!(merge_date: Time.zone.local(2023, 4, 3), absorbing_organisation: organisation) get "/organisations/#{organisation.id}/details", headers:, params: {} end