[0.1.7] Add GUI QA driver - #62
Merged
Merged
Conversation
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
Adds a host-side GUI test driver (
tools/gui-qa/) that drives the plugin inside RubyMine running in a Tart VM and verifies behavior end to end: palette/menu actions, notification balloons, editor content, andidea.logoracles. Covers sections 3D (RBS detection), 3E (Update Types), 3F (workspace batch), 3G (Doctor), and 3H (MCP/settings/folding/i18n) — driver and docs only, no production code.How it works:
lib.sh— SSH transport (VM IP resolved per run, proxy vars stripped), screenshots overscp, Vision OCR assertions, Search Everywhere handling (opened via menu clicks — keyboard chords get intercepted by the macOS man-page service and steal focus), frontmost-app gates before every keystroke batch.stand.sh/ws.sh/menu.sh/anno.sh/ut.sh/settings.sh— project-stand bootstrap, workspace-run helper (log-gated: waits for a freshcollectRubyFilesline before accepting a balloon, so stale notifications can't false-pass), context-menu firing, annotator log oracles, Update Types helpers, Settings helpers (triple-click label + Space for checkboxes — the square has no OCR row; clipboard reads via in-balloon drag, not Cmd+A).cases/3*.sh— one script per checklist item, each ending inok/not okwith md5/log/balloon oracles.merge.py— merges case outcomes intoqa-results-auto.jsonby section order.Results (recorded in
qa-results-auto.jsonin the gem repo, 192 ok / 7 fail / 3 skip of 202): 3D 7/7, 3E 8/8, 3F 5/6, 3G 5/5, 3H 6/8. Remaining items are documented scope cuts or drifts in the case files: no live MCP port in the VM (3H.2, registration + code shape asserted instead), 33- and 207-file workspace checks finish too fast for any live cancel (3F.4, cancel plumbing stays unit-tested), warn-toggle OFF still flags syntax-broken YARD (3H.5 — gem always emitsinvalid_type, toggle not wired into CHECK), plus the pre-existing 3C gem drifts.Also includes
RUBYMINE-PILOT.mdwith the pilot findings the driver is built on.Related Issue
N/A — test infrastructure, no user-facing change.
Checklist
qa-results-auto.json)./gradlew test) — N/A, no production code touched./gradlew spotlessCheck) — N/A, shell/markdown only./gradlew detekt) — N/A./gradlew verifyPlugin) — N/AScreenshots (if applicable)
N/A — assertions are OCR text plus logs; shots stay in
/tmp/gui-qa-rm/by design and are never committed.