From ea453089368c9856e1a39b6befc75f3ebde11cd7 Mon Sep 17 00:00:00 2001 From: Bruce Bolt Date: Tue, 11 Jun 2024 13:58:14 +0100 Subject: [PATCH] Empty ministerial links when reshuffle mode is on Publishing API doesn't delete links unless you send it an empty array for a specific key. Therefore updating the presenter to include all the keys that need to be emptied, rather than an empty hash. --- .../ministers_index_presenter.rb | 35 ++++++++++++------- .../ministers_index_presenter_test.rb | 11 +++++- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/app/presenters/publishing_api/ministers_index_presenter.rb b/app/presenters/publishing_api/ministers_index_presenter.rb index e28a4bad1db..f2bb274bf98 100644 --- a/app/presenters/publishing_api/ministers_index_presenter.rb +++ b/app/presenters/publishing_api/ministers_index_presenter.rb @@ -32,18 +32,29 @@ def content end def links - return {} if reshuffle_in_progress? - - { - ordered_cabinet_ministers: ordered_cabinet_ministers_content_ids, - ordered_also_attends_cabinet: ordered_also_attends_cabinet_content_ids, - ordered_ministerial_departments: ordered_ministerial_departments_content_ids, - ordered_house_of_commons_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::WhipsHouseOfCommons), - ordered_junior_lords_of_the_treasury_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::JuniorLordsoftheTreasury), - ordered_assistant_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::AssistantWhips), - ordered_house_lords_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::WhipsHouseofLords), - ordered_baronesses_and_lords_in_waiting_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::BaronessAndLordsInWaiting), - } + if reshuffle_in_progress? + { + ordered_cabinet_ministers: [], + ordered_also_attends_cabinet: [], + ordered_ministerial_departments: [], + ordered_house_of_commons_whips: [], + ordered_junior_lords_of_the_treasury_whips: [], + ordered_assistant_whips: [], + ordered_house_lords_whips: [], + ordered_baronesses_and_lords_in_waiting_whips: [], + } + else + { + ordered_cabinet_ministers: ordered_cabinet_ministers_content_ids, + ordered_also_attends_cabinet: ordered_also_attends_cabinet_content_ids, + ordered_ministerial_departments: ordered_ministerial_departments_content_ids, + ordered_house_of_commons_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::WhipsHouseOfCommons), + ordered_junior_lords_of_the_treasury_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::JuniorLordsoftheTreasury), + ordered_assistant_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::AssistantWhips), + ordered_house_lords_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::WhipsHouseofLords), + ordered_baronesses_and_lords_in_waiting_whips: ordered_whips_content_ids(Whitehall::WhipOrganisation::BaronessAndLordsInWaiting), + } + end end def title diff --git a/test/unit/app/presenters/publishing_api/ministers_index_presenter_test.rb b/test/unit/app/presenters/publishing_api/ministers_index_presenter_test.rb index f38a48655ce..4831f69f1f5 100644 --- a/test/unit/app/presenters/publishing_api/ministers_index_presenter_test.rb +++ b/test/unit/app/presenters/publishing_api/ministers_index_presenter_test.rb @@ -114,7 +114,16 @@ def presented_item }, } - expected_links = {} + expected_links = { + ordered_cabinet_ministers: [], + ordered_also_attends_cabinet: [], + ordered_ministerial_departments: [], + ordered_house_of_commons_whips: [], + ordered_junior_lords_of_the_treasury_whips: [], + ordered_assistant_whips: [], + ordered_house_lords_whips: [], + ordered_baronesses_and_lords_in_waiting_whips: [], + } assert_equal expected_details, presented_item.content[:details] assert_valid_against_publisher_schema(presented_item.content, "ministers_index")