fix: preserve schema 15 compatibility for v0.1.8

This commit is contained in:
2026-10-17 18:27:53 +09:00
parent a97548c36b
commit 1134f058cc
61 changed files with 2650 additions and 644 deletions
@@ -107,3 +107,39 @@ def test_actual_service_validates_currency_date_and_settlement_and_rolls_back(le
with sqlite3.connect(path) as conn:
assert conn.execute("SELECT COUNT(*) FROM account_snapshot").fetchone()[0] == 0
assert conn.execute("SELECT COUNT(*) FROM monthly_settlement").fetchone()[0] == 1
def test_mcp_preserves_legacy_full_argument_contract_and_monthly_dispatch(ledger, monkeypatch):
from jarca_ledger_mcp.adapters.mcp import server
path, settlement_id = ledger
monkeypatch.setenv("JARCA_LEDGER_DB_PATH", str(path))
legacy = server.register_account_valuation(
"acct-1", "2026-10-31", 150, "KRW", "balance", "manual", "statement-1",
"verified", "legacy memo", "legacy-key", "2026-10-31T10:00:00+09:00",
"Asia/Seoul", 100, 100, "cost_basis", "Initial cost", 50, 0.5,
"cost_basis", None, None, None, None,
)
assert legacy["success"], legacy
assert legacy["valuation"]["cost_basis"] == 100
assert legacy["valuation"]["source_ref"] == "statement-1"
monthly = server.register_account_valuation(
"acct-1", "2026-10-31", 150, monthly_settlement_id=settlement_id,
liquidity_bucket="cash",
)
assert monthly["success"], monthly
assert monthly["verification_status"] == "unverified"
valuations = server.list_account_valuations("acct-1")["valuations"]
assert {item["id"] for item in valuations} == {
legacy["valuation"]["id"], monthly["snapshot_id"],
}
assert valuations == sorted(
valuations,
key=lambda item: (item["basis_date"], item["recorded_at"], item["id"]),
)
with sqlite3.connect(path) as conn:
assert conn.execute("SELECT COUNT(*) FROM account_valuations").fetchone() == (1,)
assert conn.execute("SELECT COUNT(*) FROM account_snapshot").fetchone() == (1,)
advertised = server.mcp._tool_manager._tools["register_account_valuation"].parameters
assert {"source_ref", "cost_basis", "monthly_settlement_id"} <= advertised["properties"].keys()
assert "db_path" not in advertised["properties"]
assert {"create_manual_asset", "list_manual_assets", "update_manual_asset", "deactivate_manual_asset"} <= server.mcp._tool_manager._tools.keys()