Files
jarca-ledger-mcp/tests/test_monthly_settlement_overview.py
T

59 lines
2.5 KiB
Python

from pathlib import Path
import sqlite3
from jarca_ledger_mcp.db import init_db
from jarca_ledger_mcp.application.monthly_settlement_service import list_monthly_settlement_overview
def test_monthly_overview_excludes_transaction_only_months(tmp_path: Path):
db = tmp_path / "fixture.sqlite3"
init_db(str(db))
with sqlite3.connect(db) as conn:
conn.execute(
"INSERT INTO transactions(id,transaction_date,type,amount,created_at,updated_at) VALUES (?,?,?,?,?,?)",
("tx-1", "2026-09-03", "income", 100, "2026-09-03T00:00:00Z", "2026-09-03T00:00:00Z"),
)
conn.commit()
result = list_monthly_settlement_overview(db_path=str(db))
assert result["success"]
assert result["months"] == []
def test_monthly_overview_keeps_existing_parent_and_joins_live_transaction_totals(tmp_path: Path):
db = tmp_path / "fixture.sqlite3"
init_db(str(db))
with sqlite3.connect(db) as conn:
conn.execute(
"INSERT INTO monthly_settlement(id,month,basis_date,status,version,created_by,created_at,updated_by,updated_at) VALUES (?,?,?,?,?,?,?,?,?)",
("settlement-1", "2026-09", "2026-09-30", "draft", 1, "test", "now", "test", "now"),
)
conn.execute(
"INSERT INTO transactions(id,transaction_date,type,amount,created_at,updated_at) VALUES (?,?,?,?,?,?)",
("tx-1", "2026-09-03", "income", 100, "2026-09-03T00:00:00Z", "2026-09-03T00:00:00Z"),
)
conn.commit()
result = list_monthly_settlement_overview(db_path=str(db))
assert result["success"]
assert len(result["months"]) == 1
row = result["months"][0]
assert row["month"] == "2026-09"
assert row["settlement_id"] == "settlement-1"
assert row["income"] == 100
assert row["net_cashflow_display"] is None
assert row["net_worth_display"] is None
def test_monthly_overview_keeps_parent_without_transactions(tmp_path: Path):
db = tmp_path / "fixture.sqlite3"
init_db(str(db))
with sqlite3.connect(db) as conn:
conn.execute(
"INSERT INTO monthly_settlement(id,month,basis_date,status,version,created_by,created_at,updated_by,updated_at) VALUES (?,?,?,?,?,?,?,?,?)",
("settlement-1", "2026-09", "2026-09-30", "draft", 1, "test", "now", "test", "now"),
)
conn.commit()
row = list_monthly_settlement_overview(db_path=str(db))["months"][0]
assert row["settlement_id"] == "settlement-1"
assert row["income"] == 0
assert row["expense"] == 0