Repository navigation
feat/contact persistence clients tests - #2
Open
prabhash-nw wants to merge 10 commits into
Open
prabhash-nw wants to merge 10 commits into
prabhash-nw wants to merge 10 commits into
Conversation
prabhash-nw
commented
Mar 17, 2026
Owner
- feat(clients): add regex text assertions
- test(typescript): close client test parity gaps
Support text regex selectors in Python and TypeScript client commands and models so assertVisible/assertNotVisible can match platform-specific contact label formats. Update contact_persists e2e flow to use a regex assertion that accepts both "Alice Tester" and "Tester, Alice" renderings.
Add missing TypeScript client unit coverage for command serialization, assertion variants, tapFirstMatch failure paths, and device endpoint error handling to match Python coverage intent. Add Android e2e smoke test that mirrors status/device-info/launch/ assert/input/screenshot/source/back API flow and include it in the Android device test script. Refactor repetitive unit serialization checks into table-driven tests without changing assertions.
e2e-android: Run #21
❌ Some tests failed!
Github Test Reporter by CTRF 💚 |
Android drivers now handle textRegex field for case-insensitive regex matching. Updated both uiautomator2 and devicelab drivers. Bumped test runner skills to v1.2.0 for serial device execution policy.
e2e-android: Run #22
🎉 All tests passed!Github Test Reporter by CTRF 💚 |
- improve TypeScript step failure diagnostics and teardown hooks - capture diagnostics on TypeScript e2e test failures - harden Python contact persistence assertions for CI timing - run YAML, TypeScript, and Python Android suites in separate emulator runs with fresh -wipe-data -no-snapshot-load boots
e2e-android: Run #23
🎉 All tests passed!Github Test Reporter by CTRF 💚 |
- deploy Android E2E reports and diagnostics to GitHub Pages on main - include Python and TypeScript diagnostics directories in pages payload - add Pages URL to workflow job summary for quick access - post or update a PR comment with the stable Pages URL
Resolve ruff F401 in test_contact_persists so Python client lint matches CI expectations.
|
Android E2E reports page: https://prabhash-nw.github.io/maestro-runner/ |
e2e-android: Run #24
🎉 All tests passed!Github Test Reporter by CTRF 💚 |
e2e-android: Run #25
🎉 All tests passed!Github Test Reporter by CTRF 💚 |
Stop masking Android E2E pytest failures and collect reports from client/python/reports where the Python client actually writes its JUnit and HTML artifacts.
e2e-android: Run #27
❌ Some tests failed!
Github Test Reporter by CTRF 💚 |
e2e-android-yaml: Run #1
🎉 All tests passed!Github Test Reporter by CTRF 💚 |
Replace the monolithic CI workflow with unit-tests workflow updates. Align Python and TypeScript client tests/docs with the new flow.
e2e-android-yaml: Run #2
❌ Some tests failed!
Github Test Reporter by CTRF 💚 |
pr4bh4sh
referenced
this pull request
in pr4bh4sh/maestro-runner-old
Aug 23, 2026
Lets the browser driver reuse a user-data-dir across runs so cookies,
localStorage, sessionStorage, and installed extensions survive between
test invocations. Useful for:
- speeding up auth-heavy CI suites (log in once, reuse across flows)
- testing flows that depend on installed Chrome extensions
- keeping a stable browser profile for cookie-driven behaviour
Usage:
maestro-runner --platform web --user-data-dir ~/.cache/mr-profile \
test flow.yaml
Also exposed via MAESTRO_USER_DATA_DIR for shell-driven CI configuration.
Default unset → identical to current ephemeral-profile behaviour (no
backward-compat risk).
Implementation:
- cdpdriver.Config gains UserDataDir field.
- When non-empty, passed to Rod's launcher as `user-data-dir=<path>`.
Existing prefs-file write (writeChromePref) already handled this dir,
so password-manager disabling still works on persistent profiles.
- CLI plumbing: --user-data-dir flag → RunConfig.UserDataDir → web.go
construction.
- Caller manages the directory's lifecycle (the runner doesn't create
or clean it up).
Tests:
- TestUserDataDir — end-to-end persistence: two New() calls against
the same dir, localStorage written in run #1, read back in run #2.
Uses manually-managed temp dir because t.TempDir() races Chrome's
lock-file release on macOS.
Real-flow verification:
- Two `maestro-runner test` invocations against `--user-data-dir
/tmp/profile` and a real http://localhost origin (data: URLs disable
localStorage). First flow writes; second reads back the value.
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.