feat: add us-cpa case intake workflow

This commit is contained in:
Stefano Fiorini
2026-03-15 00:56:07 -05:00
parent 0c2e34f2f0
commit faff555757
6 changed files with 365 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import json
import os
import subprocess
import sys
import tempfile
import unittest
from pathlib import Path
@@ -66,6 +67,67 @@ class UsCpaCliSmokeTests(unittest.TestCase):
self.assertNotEqual(result.returncode, 0)
self.assertIn("case directory", result.stderr.lower())
def test_extract_docs_can_create_case_and_register_facts(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
case_dir = Path(temp_dir) / "2025-jane-doe"
facts_path = Path(temp_dir) / "facts.json"
facts_path.write_text(json.dumps({"filingStatus": "single"}))
result = self.run_cli(
"extract-docs",
"--tax-year",
"2025",
"--case-dir",
str(case_dir),
"--create-case",
"--case-label",
"Jane Doe",
"--facts-json",
str(facts_path),
)
self.assertEqual(result.returncode, 0, result.stderr)
payload = json.loads(result.stdout)
self.assertEqual(payload["status"], "accepted")
self.assertEqual(payload["factCount"], 1)
self.assertTrue((case_dir / "case-manifest.json").exists())
def test_extract_docs_stops_on_conflicts(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
case_dir = Path(temp_dir) / "2025-jane-doe"
first_facts = Path(temp_dir) / "facts-1.json"
second_facts = Path(temp_dir) / "facts-2.json"
first_facts.write_text(json.dumps({"filingStatus": "single"}))
second_facts.write_text(json.dumps({"filingStatus": "married_filing_jointly"}))
first = self.run_cli(
"extract-docs",
"--tax-year",
"2025",
"--case-dir",
str(case_dir),
"--create-case",
"--case-label",
"Jane Doe",
"--facts-json",
str(first_facts),
)
self.assertEqual(first.returncode, 0, first.stderr)
second = self.run_cli(
"extract-docs",
"--tax-year",
"2025",
"--case-dir",
str(case_dir),
"--facts-json",
str(second_facts),
)
self.assertNotEqual(second.returncode, 0)
payload = json.loads(second.stdout)
self.assertEqual(payload["status"], "needs_resolution")
self.assertEqual(payload["issueType"], "fact_conflict")
if __name__ == "__main__":
unittest.main()