Skip to content

UAT: cover penalty path (recovery -> penaltyRelease) in MultiInvestClaimAndRecoverTest - #984

Merged
dangershony merged 2 commits into
mainfrom
test/multi-invest-penalty-path
Oct 15, 2026
Merged

dangershony merged 2 commits into
mainfrom
test/multi-invest-penalty-path

Conversation

@dangershony

Copy link
Copy Markdown
Member

Closes #982

Changes

  • \CreateInvestProjectRequest.PenaltyDays\ (default 90 to keep other tests unchanged); MultiInvest passes 0.
  • Investors 1 and 2:
    ecovery\ (ActionKey asserted, Penalties popup verified) then \penaltyRelease.
  • Founder \ReleaseFundsToInvestorsAsync\ runs after two outputs were spent via penalty; investors 3 and 4 then \unfundedRelease; final claim-view check unchanged.
  • \ExecuteRecoveryAsync\ now fails with the observed key if the offered action differs from the requested one (previously it silently clicked recover).
  • \VerifyPenaltiesPopupAsync\ moved to shared \Helpers/PenaltiesPopupHelper; MultiFund uses it.
  • Automation server watcher dismisses the indexer-unreachable popup with exponential backoff (5s..60s) without switching indexer.

Verification

\MultiInvestClaimAndRecoverTest\ passed on Angornet (7m42s) after merging main (#983). Earlier runs failed in early invest steps before #983 was merged. MultiFund was not re-run on this branch after the change.

…stClaimAndRecoverTest

- Add PenaltyDays to CreateInvestProjectRequest (default 90, test uses 0)
- ExecuteRecoveryAsync fails fast when the offered ActionKey differs from the requested action
- Move VerifyPenaltiesPopupAsync into shared PenaltiesPopupHelper
- Automation server dismisses the indexer-unreachable popup with exponential backoff
- Investors 1+2 go recovery -> penaltyRelease, founder release must skip penalty-spent outputs, investors 3+4 unfundedRelease
@dangershony

Copy link
Copy Markdown
Member Author

Both MultiInvestClaimAndRecoverTest (7m53s) and MultiFundClaimAndRecoverTest (5m38s) pass on Angornet with the latest commit.

Root cause of a stuck run: investors did not have debug mode, so TimelockSafety applied the 2h median-time-past buffer. penaltyRelease was only offered while the recovery tx was unconfirmed (timestamp 0); once confirmed the investor waited ~2h for ActionKey penaltyRelease (polling ActionKey=none). Investor hosts now call EnableDebugModeAsync, as BigFund/BigInvest already do.

@dangershony
dangershony merged commit a8b5e50 into main Oct 15, 2026
3 checks passed
@dangershony
dangershony deleted the test/multi-invest-penalty-path branch October 15, 2026 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UAT: cover the penalty path (recovery -> penaltyRelease) in MultiInvestClaimAndRecoverTest

1 participant