25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
from jarca_ledger_mcp.db import init_db
|
|
from jarca_ledger_mcp.application import settlement_draft_service as service
|
|
|
|
|
|
def test_cancelled_draft_does_not_reserve_create_key_for_new_draft(tmp_path: Path):
|
|
db = str(tmp_path / "ledger.sqlite3")
|
|
init_db(db)
|
|
first = service.create_settlement_draft("2026-09", "actor", "same-key", db_path=db)
|
|
assert first["success"]
|
|
cancelled = service.cancel_settlement_draft(first["draft"]["id"], 1, "actor", "restart", db_path=db)
|
|
assert cancelled["success"]
|
|
|
|
second = service.create_settlement_draft("2026-09", "actor", "new-key-after-cancel", db_path=db)
|
|
assert second["success"]
|
|
assert second["draft"]["id"] != first["draft"]["id"]
|
|
|
|
|
|
def test_dashboard_exposes_the_five_state_entry_labels():
|
|
source = Path(__file__).parents[1].joinpath("dashboard/page_views/settlement_drafts.py").read_text()
|
|
for label in ("정산시작", "이어서작업", "마감내역보기", "정정시작", "정정이어서작업"):
|
|
assert label in source
|
|
assert "검토·승인·마감·취소·평가" not in source
|