adobe-to-docusign-migrator/tests
Paul Huliganga b2bbcac842 feat(issues): structured field-issue reporting throughout migration pipeline
Replaces flat warning strings with machine-readable FieldIssue objects
(code, field_name, message, severity) emitted during compose and surfaced
in all migration result paths via a new field_issues[] key.

Codes: CROSS_RECIPIENT_CONDITIONAL, UNSUPPORTED_OPERATOR, HIDE_ACTION,
MULTI_PREDICATE, INVALID_PARENT_TAB, FIELD_TYPE_SKIPPED, PARTIAL_FIELD_TYPE

Cross-recipient conditional detection: compose now builds a field→assignee
map and flags conditions where the trigger field belongs to a different
recipient — the main cause of the CONDITIONALTAB_HAS_INVALID_PARENT 400.

UI changes:
- Success rows with field_issues show ⚠️ icon + amber "partial" badge
- Results, History & Audit, and Template Detail history tab all show
  field issues grouped by code in collapsible sections within expanded rows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 15:25:23 -04:00
..
fixtures/expected feat: idempotent upload + FastAPI web UI with full test coverage 2026-04-17 14:47:27 -04:00
EDGE-CASES.md docs: README, platform quirks, validation notes, and sample reference data 2026-04-15 19:45:46 -04:00
FIELD-TYPE-REGRESSION.md docs: README, platform quirks, validation notes, and sample reference data 2026-04-15 19:45:46 -04:00
PLATFORM-QUIRKS.md docs: document Adobe Sign non-standard refresh token endpoint 2026-04-16 12:35:17 -04:00
SCENARIOS.md docs: README, platform quirks, validation notes, and sample reference data 2026-04-15 19:45:46 -04:00
UI-SMOKE-TEST.md feat(ui-phase-22): smoke test checklist, README update, execution board 2026-04-21 11:43:44 -04:00
test_api_auth.py fix: Adobe Sign connects via .env refresh token; restore DocuSign OAuth 2026-04-17 15:27:42 -04:00
test_api_health.py feat: idempotent upload + FastAPI web UI with full test coverage 2026-04-17 14:47:27 -04:00
test_api_migrate.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_api_templates.py feat(ui-phase-16): templates view — readiness badges, filter bar, detail tabs 2026-04-21 11:26:49 -04:00
test_api_verify.py fix(compose): strip invalid conditionalParentLabel refs before upload 2026-04-21 15:09:11 -04:00
test_batch_migration.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_e2e.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_migration_options.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_normalized_schema.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_regression.py feat(issues): structured field-issue reporting throughout migration pipeline 2026-04-21 15:25:23 -04:00
test_retry.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_security.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00
test_upload_upsert.py feat: idempotent upload + FastAPI web UI with full test coverage 2026-04-17 14:47:27 -04:00
test_validation_service.py feat(phases-8-13): blueprint alignment — normalized schema, validation, migration options, retry, security, batch 2026-04-21 02:19:38 -04:00