From 7b3eb4427e8ea2532f0c1f1a89a23d8bfa46b131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20Mata?= Date: Thu, 23 Apr 2026 21:10:29 +0200 Subject: [PATCH] Harden budget donut segment test --- test/models/budget_test.rb | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/test/models/budget_test.rb b/test/models/budget_test.rb index b59bcd8a6..56e791e75 100644 --- a/test/models/budget_test.rb +++ b/test/models/budget_test.rb @@ -226,7 +226,7 @@ class BudgetTest < ActiveSupport::TestCase end test "to_donut_segments_json only includes top-level budget categories" do - family = families(:dylan_family) + family = @family budget = Budget.find_or_bootstrap(family, start_date: Date.current.beginning_of_month) budget.update!(budgeted_spending: 500, currency: family.currency) @@ -266,9 +266,18 @@ class BudgetTest < ActiveSupport::TestCase segments = budget.to_donut_segments_json - assert_equal [ parent_budget_category.id, standalone_budget_category.id, "unused" ], segments.pluck(:id) - assert_equal [ 63.11, 25, 200 ], segments.pluck(:amount) - refute_includes segments.pluck(:id), child_budget_category.id + segment_ids = segments.pluck(:id) + segments_by_id = segments.index_by { |segment| segment[:id] } + + assert_equal 3, segments.size + assert_includes segment_ids, parent_budget_category.id + assert_includes segment_ids, standalone_budget_category.id + assert_includes segment_ids, "unused" + refute_includes segment_ids, child_budget_category.id + + assert_equal 63.11, segments_by_id[parent_budget_category.id][:amount] + assert_equal 25, segments_by_id[standalone_budget_category.id][:amount] + assert_equal 200, segments_by_id["unused"][:amount] end test "actual_spending subtracts uncategorized refunds" do