Skip to content

feat(kyc): follow-ups for MergeProcessing waiting state (golden test, coverage, refresh-timeout) #654

@TaprootFreak

Description

@TaprootFreak

Context

Follow-ups from #643 (merged into staging), which consumes the new KycProcessStatus.MergeProcessing value introduced by DFXswiss/api#3807. The functional change and the API contract are correct ('MergeProcessing' matches byte-for-byte, routing and tests are sound). These are the gaps deferred at merge time.

Open items

1. Golden test for KycMergeProcessingPage (required by convention)

Every other KYC subpage has a golden test + baseline under test/goldens/screens/kyc/ (e.g. kyc_account_merge_golden_test.dart + goldens/macos/kyc_account_merge_page_default.png). The new lib/screens/kyc/subpages/kyc_merge_processing_page.dart has none.

  • Add test/goldens/screens/kyc/kyc_merge_processing_golden_test.dart (model it on kyc_account_merge_golden_test.dart).
  • Regenerate the macOS baseline via the golden-regenerate.yaml workflow.

2. Handbook mapping (decide scope)

Per CONTRIBUTING.md ("Handbook screenshots are sourced from Goldens"), a handbook page MUST have a matching golden AND a row in scripts/assemble-handbook-screenshots.sh. The Handbook Build Check only fails on mapped goldens. Decide whether the MergeProcessing waiting screen belongs in the handbook; if yes, add the mapping row.

3. Widget coverage / Coverage Floor Gate

The 56-line page widget is currently untested (only KycCubit routing is covered). Watch the Coverage Floor Gate on staging. The golden test in item 1 also provides widget coverage.

4. Refresh-timeout nuance

The refresh button calls KycCubit.checkKyc(), which carries the 30s timeout and emits KycFailure on timeout. If the merge is still processing when the user taps refresh and the call exceeds 30s, they land back on the error screen — the exact failure mode this page was meant to avoid. Consider one of:

  • auto-poll while in KycMergeProcessing, or
  • do not surface a timeout as KycFailure for this specific state.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions