fix: address account valuation review findings
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import inspect
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
from dashboard.page_views import accounts as accounts_page
|
||||
from jarca_ledger_mcp.adapters.mcp import server
|
||||
|
||||
|
||||
def test_dashboard_valuation_basis_never_uses_sync_timestamp():
|
||||
account = {
|
||||
"last_balance_basis_date": "2026-06-30",
|
||||
"last_synced_at": "2026-07-09T23:59:00+09:00",
|
||||
}
|
||||
assert accounts_page._account_balance_basis_date(account) == "2026-06-30"
|
||||
assert accounts_page._account_balance_basis_date({"last_synced_at": account["last_synced_at"]}) == ""
|
||||
assert "last_synced_at" not in inspect.getsource(accounts_page.page_accounts)
|
||||
|
||||
|
||||
def test_mcp_account_write_tools_forward_explicit_balance_basis(monkeypatch):
|
||||
calls: list[tuple[str, tuple, dict]] = []
|
||||
|
||||
def fake_create(*args, **kwargs):
|
||||
calls.append(("create", args, kwargs))
|
||||
return {"success": True}
|
||||
|
||||
def fake_update(*args, **kwargs):
|
||||
calls.append(("update", args, kwargs))
|
||||
return {"success": True}
|
||||
|
||||
monkeypatch.setattr(server.contracts, "create_ledger_account", fake_create)
|
||||
monkeypatch.setattr(server.contracts, "update_ledger_account", fake_update)
|
||||
|
||||
assert server.create_ledger_account(
|
||||
"dated", last_balance=100, last_synced_at="2026-07-09T00:00:00Z",
|
||||
last_balance_basis_date="2026-06-30",
|
||||
)["success"]
|
||||
assert server.update_ledger_account(
|
||||
"account-1", last_balance=200, last_synced_at="2026-07-10T00:00:00Z",
|
||||
last_balance_basis_date="2026-07-01",
|
||||
)["success"]
|
||||
|
||||
assert calls[0][2]["last_balance_basis_date"] == "2026-06-30"
|
||||
assert calls[1][2]["last_balance_basis_date"] == "2026-07-01"
|
||||
Reference in New Issue
Block a user