From 73c3440c579e645ada20f761bbc3eb1c43927e7f Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Thu, 16 Jul 2026 06:27:59 +0000 Subject: Add budget-tracked toggles for projects/labels; fix SetLabelColor wiping the flag --- internal/store/labels_test.go | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'internal/store/labels_test.go') diff --git a/internal/store/labels_test.go b/internal/store/labels_test.go index 4e97084..79034c8 100644 --- a/internal/store/labels_test.go +++ b/internal/store/labels_test.go @@ -82,3 +82,63 @@ func TestSetLabelColor_SameName_Overwrites(t *testing.T) { t.Fatalf("colors = %+v, want a single entry with the overwritten color", colors) } } + +func TestSetLabelBudgetTracked_TogglesFlag(t *testing.T) { + s := newNativeTasksTestStore(t) + + if err := s.SetLabelBudgetTracked("errands", true); err != nil { + t.Fatalf("SetLabelBudgetTracked: %v", err) + } + names, err := s.GetBudgetTrackedLabelNames() + if err != nil { + t.Fatal(err) + } + if !names["errands"] { + t.Error("expected 'errands' to be tracked") + } +} + +func TestSetLabelColor_PreservesExistingBudgetTracked(t *testing.T) { + s := newNativeTasksTestStore(t) + + if err := s.SetLabelBudgetTracked("errands", true); err != nil { + t.Fatal(err) + } + if err := s.SetLabelColor("errands", "#00ff00"); err != nil { + t.Fatalf("SetLabelColor: %v", err) + } + + names, err := s.GetBudgetTrackedLabelNames() + if err != nil { + t.Fatal(err) + } + if !names["errands"] { + t.Error("expected budget_tracked to survive a later SetLabelColor call") + } + colors, err := s.GetLabelColors() + if err != nil { + t.Fatal(err) + } + if len(colors) != 1 || colors[0].Color != "#00ff00" { + t.Errorf("colors = %+v, want one entry with color #00ff00", colors) + } +} + +func TestSetLabelBudgetTracked_PreservesExistingColor(t *testing.T) { + s := newNativeTasksTestStore(t) + + if err := s.SetLabelColor("errands", "#00ff00"); err != nil { + t.Fatal(err) + } + if err := s.SetLabelBudgetTracked("errands", true); err != nil { + t.Fatal(err) + } + + colors, err := s.GetLabelColors() + if err != nil { + t.Fatal(err) + } + if len(colors) != 1 || colors[0].Color != "#00ff00" { + t.Errorf("colors = %+v, want color to survive SetLabelBudgetTracked", colors) + } +} -- cgit v1.2.3