Skip to content

tests: Added FlowTests for the Seed Backup Verification Flow - #958

Open
PROWLERx15 wants to merge 2 commits into
SeedSigner:devfrom
PROWLERx15:seed-backup-flow-tests
Open

tests: Added FlowTests for the Seed Backup Verification Flow#958
PROWLERx15 wants to merge 2 commits into
SeedSigner:devfrom
PROWLERx15:seed-backup-flow-tests

Conversation

@PROWLERx15

@PROWLERx15 PROWLERx15 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Description

This PR implements end-to-end FlowTests for the Seed Backup Verification Flow.

Problem or Issue being addressed

My AST Navigation Graph Extractor or the "SeedSigner Views Edge Crawler" (Summer of Bitcoin Project) identified that the entire SeedWords backup verification flow has no FlowTest coverage.

Solution

  • Backup Verification Success Flows: Added full sequential word verification tests for both loaded and pending seeds.
  • Mistake Review & Retry Flow: Added tests to verify routing when a user selects a wrong word.
  • Skip Flow: Verified the SKIP button routes pending seeds back to SeedFinalizeView and finalized seeds back to SeedOptionsView.
  • Seed Keep Flow: Added FlowTests to cover the Keep button routing on the SeedDiscardView. Verified that pending seeds correctly return to SeedFinalizeView and finalized seeds correctly return to SeedOptionsView when the user chooses to keep their seed.
  • Test Utilities: Implemented verify_word_index and select_wrong_word helper methods to handle the randomized button layout deterministically during testing.

Additional Information

The Crawler identified 16 edges in the Seed Backup Flow that previously had 0% FlowTest coverage. The tests added in this PR successfully cover 100% of the previously untested edges listed below:

Source Target
SeedWordsWarningView SeedWordsView
SeedWordsView SeedWordsView
SeedWordsView SeedWordsBackupTestPromptView
SeedWordsBackupTestPromptView SeedFinalizeView
SeedWordsBackupTestPromptView SeedOptionsView
SeedWordsBackupTestPromptView SeedWordsBackupTestView
SeedWordsBackupTestView SeedWordsBackupTestMistakeView
SeedWordsBackupTestView SeedWordsBackupTestSuccessView
SeedWordsBackupTestView SeedWordsBackupTestView
SeedWordsBackupTestMistakeView SeedWordsBackupTestView
SeedWordsBackupTestMistakeView SeedWordsView
SeedWordsBackupTestSuccessView SeedFinalizeView
SeedWordsBackupTestSuccessView SeedOptionsView
SeedBackupView SeedWordsWarningView
SeedDiscardView SeedFinalizeView
SeedDiscardView SeedOptionsView

This pull request is categorized as a:

  • New feature
  • Bug fix
  • Code refactor
  • Documentation
  • Testing

Checklist

I ran pytest locally

  • All tests passed before submitting the PR
  • I couldn't run the tests
  • N/A

I included screenshots of any new or modified screens

Should be part of the PR description above.

  • Yes
  • No
  • N/A

I added or updated tests

Any new or altered functionality should be covered in a unit test. Any new or updated sequences require FlowTests.

  • Yes
  • No, I’m a fool
  • N/A

I tested this PR hands-on on the following platform(s):


I have reviewed these notes:

  • Keep your changes limited in scope.
  • If you uncover other issues or improvements along the way, ideally submit those as a separate PR.
  • The more complicated the PR, the harder it is to review, test, and merge.
  • We appreciate your efforts, but we're a small team of volunteers so PR review can be a very slow process.
  • Please only "@" mention a contributor if their input is truly needed to enable further progress.
  • I understand

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Summer of Bitcoin

Development

Successfully merging this pull request may close these issues.

2 participants