fix: preserve schema 15 compatibility for v0.1.8
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user