From 678de56def8a32d9be9fd7a35188b438feb602ce Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Fri, 20 Feb 2026 11:24:17 +0000 Subject: [PATCH] =?UTF-8?q?handle=20some=20plans=20having=20zero=20cost=20?= =?UTF-8?q?=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/test_prioritised_plan_selected.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/backend/categorisation/tests/test_prioritised_plan_selected.py b/backend/categorisation/tests/test_prioritised_plan_selected.py index e2af6a63..5ddc7b8f 100644 --- a/backend/categorisation/tests/test_prioritised_plan_selected.py +++ b/backend/categorisation/tests/test_prioritised_plan_selected.py @@ -118,6 +118,27 @@ def test_all_plans_zero_cost__highest_priority_returned( assert actual_default_plan.id == expected_default_plan_id +def test_some_plans_zero_cost__cheapest_returned( + created_at_datetime: datetime, +) -> None: + # arrange + epc_c_plan = make_plan(created_at_datetime, True, cost_of_works=0.0, name="EPC C") + minor_works_plan = make_plan( + created_at_datetime, False, cost_of_works=50.0, name="EPC C - Minor Works" + ) + scenario_priority_order: List[int] = [4, 3] + expected_default_plan_id = 2 + + # act + actual_default_plan = choose_cheapest_relevant_plan( + plans=[epc_c_plan, minor_works_plan], + scenario_priority_order=scenario_priority_order, + ) + + # assert + assert actual_default_plan.id == expected_default_plan_id + + def test_all_plans_null_cost__highest_priority_returned( created_at_datetime: datetime, ) -> None: