aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-07-03 17:58:00 +0200
committerDanilo M. <danix@danix.xyz>2026-07-03 17:58:00 +0200
commit34ede2c7d38849282e46298538a14a7162cc9a37 (patch)
treea97478fcf797f5e9633fbea182e5d47194661425 /tests
parent203363fe96aabe2366985a769a7e10dabac69d04 (diff)
downloadfirefly-cli-34ede2c7d38849282e46298538a14a7162cc9a37.tar.gz
firefly-cli-34ede2c7d38849282e46298538a14a7162cc9a37.zip
feat(tx): tx add --budget assigns a budget by name or id
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_commands_transaction.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/unit/test_commands_transaction.py b/tests/unit/test_commands_transaction.py
index 61a09ab..7366b5c 100644
--- a/tests/unit/test_commands_transaction.py
+++ b/tests/unit/test_commands_transaction.py
@@ -430,3 +430,26 @@ class TestTxList(unittest.TestCase):
rc = tx.cmd_list(args, ctx)
self.assertEqual(rc, 0)
self.assertEqual(client.request.call_count, 2)
+
+class TestTxAddBudget(unittest.TestCase):
+ def test_budget_ref_sets_budget_id_on_split(self):
+ from types import SimpleNamespace
+ from unittest.mock import MagicMock
+ import firefly_cli.commands.transaction as tx
+
+ client = MagicMock()
+ client.request.return_value = {"data": {"id": "1", "attributes": {}}}
+ resolver = MagicMock()
+ resolver.account.side_effect = lambda n: {"id": "1", "name": n, "type": "asset"}
+ resolver.budget.return_value = {"id": "12", "name": "Groceries"}
+ ctx = SimpleNamespace(client=client, resolver=resolver, human=False)
+
+ args = SimpleNamespace(
+ amount="10", source="Checking", dest="Shop",
+ source_id=None, dest_id=None, desc=None, date="2026-07-03",
+ category=None, tags=None, type="withdrawal",
+ dry_run=False, skip_dupes=False, budget="Groceries")
+ rc = tx.cmd_add(args, ctx)
+ self.assertEqual(rc, 0)
+ body = client.request.call_args[1]["body"]
+ self.assertEqual(body["transactions"][0]["budget_id"], "12")