feat: add persistent monthly settlement drafts and approved valuation selection
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"""Additive draft lineage must preserve legacy persisted evidence shapes."""
|
||||
import pytest
|
||||
|
||||
from jarca_ledger_mcp.application.assets_service import _closed_run_metadata
|
||||
|
||||
|
||||
@pytest.mark.parametrize('field,public_field', [
|
||||
('excluded_evidence', 'excluded_items'), ('carried_evidence', 'carried_items'),
|
||||
])
|
||||
def test_legacy_run_evidence_does_not_gain_draft_identity_keys(field, public_field):
|
||||
evidence = {'source_type': 'manual_asset', 'source_id': 'synthetic', 'reason': 'missing_valuation_amount', 'currency': 'KRW'}
|
||||
metadata = {'snapshot_run_id': 'legacy-run', 'draft_id': '', 'draft_version': 0, 'review_fingerprint': '', field: [evidence]}
|
||||
result = _closed_run_metadata(metadata)
|
||||
assert result[public_field] == [evidence]
|
||||
assert 'blocking' not in result[public_field][0]
|
||||
assert not {'draft_id', 'draft_version', 'review_fingerprint'} & result[public_field][0].keys()
|
||||
|
||||
|
||||
def test_draft_evidence_retains_its_persisted_lineage_and_selection_reason():
|
||||
evidence = {'source_type': 'account', 'source_id': 'synthetic', 'draft_id': 'draft', 'draft_version': 2, 'review_fingerprint': 'fingerprint', 'selection_mode': 'manual_substitute', 'selection_reason': 'synthetic statement', 'item_version': 2}
|
||||
metadata = {'snapshot_run_id': 'draft-run', 'applied_evidence': [evidence]}
|
||||
result = _closed_run_metadata(metadata)
|
||||
assert result['applied_evidence'] == [evidence]
|
||||
assert result['contains_substitutions']
|
||||
Reference in New Issue
Block a user