Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
waitForToastBestEffortreturns as soon as the toast is seen. UnlikewaitForToast(whichdrag-dismisses by default on Android), it left the toast on screen, and a Bitkit toast overlays the
header for its full ~8s lifetime — including
HeaderMenu.So every caller that follows a toast with
openSettings()taps into the toast instead of the drawerbutton, and
DrawerSettingstimes out after 30s.This was failing the
settingsshard deterministically (3/3 attempts) on 8 open bitkit-android PRs:@settings_01 - Can switch local currencyand@settings_06 - Can swipe to hide balance, both ofwhich touch
TotalBalance(raising a toast) and then open Settings.Frames from the failure video on bitkit-android#1291, one second apart — the "Switched to USD" toast
covers the hamburger exactly while the tap happens, and the hamburger only reappears after it fades:
HeaderMenutap lands hereDrawerSettingsalready timed outChanges
waitForToastBestEffortnow clears the toast before returning, instead of only observing it.waitForToastalready does.since iOS toasts render in a separate window) — no iOS behaviour change.
isDisplayed()before dragging:dragOnElementwaits on the elementwith the global 30s CI timeout, which would otherwise be spent in full on a toast that already
faded.
trueif the toast was observed,falseotherwise, never throws.QA Notes
tsc --noEmitandeslint test/helpers/actions.tspass.prettier --check test/helpers/actions.tsfails onmainunmodified too, so it is pre-existing anduntouched here.
toast before opening the drawer fail, and every other shard in the same run passes.
🤖 Generated with Claude Code