From 02a77e0889511790a21d73e8d0ac698f2336b697 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Tue, 14 Jan 2025 15:04:41 +0000 Subject: [PATCH] CLDC-3835: Export merged organisations as inactive (#2896) * Export active to CDS as false for merged orgs * Export status to CDS for orgs --- .../exports/organisation_export_constants.rb | 3 ++- .../exports/organisation_export_service.rb | 2 ++ spec/fixtures/exports/organisation.xml | 1 + .../organisation_export_service_spec.rb | 21 +++++++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/services/exports/organisation_export_constants.rb b/app/services/exports/organisation_export_constants.rb index 3a1c5fb48..6c78a55db 100644 --- a/app/services/exports/organisation_export_constants.rb +++ b/app/services/exports/organisation_export_constants.rb @@ -22,6 +22,7 @@ module Exports::OrganisationExportConstants "dsa_signed_at", "dpo_email", "profit_status", - "group" + "group", + "status" ] end diff --git a/app/services/exports/organisation_export_service.rb b/app/services/exports/organisation_export_service.rb index afcf16cb0..8ceba93a9 100644 --- a/app/services/exports/organisation_export_service.rb +++ b/app/services/exports/organisation_export_service.rb @@ -65,6 +65,8 @@ module Exports attribute_hash["available_from"] = organisation.available_from&.iso8601 attribute_hash["profit_status"] = nil # will need update when we add the field to the org attribute_hash["group"] = nil # will need update when we add the field to the org + attribute_hash["status"] = organisation.status + attribute_hash["active"] = attribute_hash["status"] == :active attribute_hash end diff --git a/spec/fixtures/exports/organisation.xml b/spec/fixtures/exports/organisation.xml index 70c699915..f70ac2b7d 100644 --- a/spec/fixtures/exports/organisation.xml +++ b/spec/fixtures/exports/organisation.xml @@ -22,5 +22,6 @@ {dpo_email} + active diff --git a/spec/services/exports/organisation_export_service_spec.rb b/spec/services/exports/organisation_export_service_spec.rb index 199ee239e..6ef66161a 100644 --- a/spec/services/exports/organisation_export_service_spec.rb +++ b/spec/services/exports/organisation_export_service_spec.rb @@ -84,6 +84,27 @@ RSpec.describe Exports::OrganisationExportService do it "returns the list with correct archive" do expect(export_service.export_xml_organisations).to eq({ expected_zip_filename.gsub(".zip", "") => start_time }) end + + context "and the organisation is merged" do + let(:expected_content) { replace_entity_ids(organisation, xml_export_file.read) } + + before do + organisation.update!(merge_date: Time.zone.yesterday) + expected_content.sub!("true", "false") + expected_content.sub!("", "#{organisation.merge_date.iso8601}") + expected_content.sub!("active", "merged") + end + + it "generates an XML export file with the expected content within the ZIP file" do + expect(storage_service).to receive(:write_file).with(expected_zip_filename, any_args) do |_, content| + entry = Zip::File.open_buffer(content).find_entry(expected_data_filename) + expect(entry).not_to be_nil + expect(entry.get_input_stream.read).to eq(expected_content) + end + + export_service.export_xml_organisations + end + end end context "and multiple organisations are available for export" do