from core.domain.errors import ( CDRProcessingError, FailureReason, ) from core.worker.dlq import build_dlq_envelope def test_build_dlq_envelope() -> None: original = { "raw_id": "raw-invalid-001", "rat": 99, } error = CDRProcessingError( reason=FailureReason.INVALID_RAT_VALUE, detail="Unsupported RAT value: 99.", failed_field="rat", ) envelope = build_dlq_envelope( original_payload=original, error=error, worker_instance="worker-test", ) assert envelope["original_payload"] == original assert ( envelope["failure_reason"] == "invalid_rat_value" ) assert envelope["failed_field"] == "rat" assert envelope["worker_instance"] == "worker-test" assert envelope["failed_at"].endswith("Z")