aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/test_commands_budget.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/unit/test_commands_budget.py b/tests/unit/test_commands_budget.py
new file mode 100644
index 0000000..7741840
--- /dev/null
+++ b/tests/unit/test_commands_budget.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2026 Danilo M. <danix@danix.xyz> GPL-2.0-only
+import unittest
+from unittest.mock import MagicMock
+from types import SimpleNamespace
+import firefly_cli.commands.budget as budget
+
+
+def _ctx(client=None, resolver=None):
+ return SimpleNamespace(client=client or MagicMock(),
+ resolver=resolver or MagicMock(), human=False)
+
+
+class TestBudgetList(unittest.TestCase):
+ def test_list_defaults_to_current_month(self):
+ client = MagicMock()
+ client.request.return_value = {"data": []}
+ args = SimpleNamespace(start=None, end=None)
+ rc = budget.cmd_list(args, _ctx(client=client))
+ self.assertEqual(rc, 0)
+ _, kwargs = client.request.call_args
+ params = kwargs["params"]
+ self.assertTrue(params["start"].endswith("-01"))
+ self.assertEqual(params["start"][:7], params["end"][:7])
+
+ def test_list_explicit_range(self):
+ client = MagicMock()
+ client.request.return_value = {"data": []}
+ args = SimpleNamespace(start="2026-01-01", end="2026-01-31")
+ budget.cmd_list(args, _ctx(client=client))
+ _, kwargs = client.request.call_args
+ self.assertEqual(kwargs["params"],
+ {"start": "2026-01-01", "end": "2026-01-31"})
+
+
+if __name__ == "__main__":
+ unittest.main()