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