Repository navigation
Tap through the phone app with Maestro (GRYT-1999) - #482
Merged
Merged
Conversation
Two flows to start with: Add a server from the server drawer, which froze the app until mobile#481, and sending and long-pressing a message. Putting the freeze back makes the first one fail at the sheet. CI runs them nightly and on PRs that change them, against a server built from source, since macOS runners have no Docker. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gryt/ui-native 0.18.2 shows Dialog and Drawer contents to the accessibility tree, so the position taps go. The drawer flow also checks that tapping outside still closes it. CI picks an iPhone the runner has, and a failed build now fails the job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The runner has no multicast route, and the server's log stops at an mDNS send error, so the test server no longer advertises itself. A fresh simulator also shows a keyboard tip that covers the screen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SERVER_DISCOVERABLE=false also takes /info away, so the server check timed out. A route over loopback keeps discovery on and the mDNS send working. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its two-minute default ran out on the runner. The Maestro download also retries now, after a DNS failure on the runner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It didn't stop the crash. Gryt-chat/server#356 fixes that in the server, which this job checks out from main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On CI the Close tap opened Control Center instead of reaching the app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hiding the keyboard behaves differently on the runner, and closing the sheet isn't what this flow is for. It now checks that the sheet shows and takes typing, and that tapping outside closes the drawer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
The phone app had no end-to-end tests. Today's Add a server freeze was only found by hand.
This adds Maestro flows that drive a real simulator build against a throwaway server:
add-server-from-drawer: the path that froze until fix: stop Add a server freezing the app from the server drawer #481. It checks that tapping outside closes the drawer, and that the sheet shows and takes typing.message-long-press: sends**bold** hello, long-presses it, and checks the menu and that the preview has no markdown marks.Both passed locally in under a minute. With the #481 fix taken out, the first flow fails at the sheet, so it does catch the freeze.
Maestro is a CLI, so there's no new npm package. CI downloads a pinned release and checks its SHA-256.
Look at:
xcode-27runner. Drop thescheduleif that's too much.@gryt/ui-nativegoes to 0.18.2 for fix(ui-native): show Dialog and Drawer contents to VoiceOver (GRYT-2000) ui#317, which is what lets the flows find dialog and drawer buttons by name.🤖 Generated with Claude Code