feat: deliver schema 15 monthly settlement lifecycle
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sqlite3
|
||||
|
||||
from jarca_ledger_mcp.application.monthly_settlement_service import create_monthly_settlement
|
||||
from jarca_ledger_mcp.infrastructure.sqlite.migrations import init_db
|
||||
|
||||
|
||||
def test_create_monthly_settlement_persists_canonical_draft_and_rejects_duplicate(tmp_path):
|
||||
path = tmp_path / "ledger.sqlite3"
|
||||
init_db(str(path))
|
||||
|
||||
created = create_monthly_settlement("2026-10", db_path=str(path))
|
||||
assert created["success"]
|
||||
assert created["month"] == "2026-10"
|
||||
assert created["status"] == "draft"
|
||||
assert created["settlement_id"]
|
||||
|
||||
with sqlite3.connect(path) as conn:
|
||||
row = conn.execute(
|
||||
"SELECT id, month, basis_date, status FROM monthly_settlement WHERE id=?",
|
||||
(created["settlement_id"],),
|
||||
).fetchone()
|
||||
assert row == (created["settlement_id"], "2026-10", "2026-10-31", "draft")
|
||||
|
||||
duplicate = create_monthly_settlement("2026-10", db_path=str(path))
|
||||
assert duplicate["success"] is False
|
||||
assert duplicate["error_code"] == "duplicate_month"
|
||||
assert duplicate["settlement_id"] == created["settlement_id"]
|
||||
Reference in New Issue
Block a user