Repository navigation
fix(webdriver-utils): clear error for native app sessions on Percy on Automate (PPLT-6148) - #2456
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📜 Recent review details
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to No actionable issue remains on the available evidence; the change is ready for normal merge checks. 🚥 Pre-merge checks | ✅ 4
Comment |
…sions on Percy on Automate (PPLT-6148) Automate capture builds the comparison tag and regions through JavaScript (window.screen size, devicePixelRatio, DOM lookups). A native App Automate session has no JS context, so every snapshot failed with an opaque "405 Method Not Allowed" on every Appium version (1.22.0, 2.19.0 and 3.5.2), which most SDKs then swallow. Detect a native session in createDriver (no browserName but an app identifier) and throw an actionable error pointing at App Percy instead. Verified live on BrowserStack with Appium 2.19.0: native Android and iOS sessions now report the new error; Android Chrome Percy on Automate still captures 3/3 snapshots. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1906964 to
54bf956
Compare
Claude Code PR ReviewPR: #2456 • Head: 54bf956 • Reviewers: code-review (built-in fallback; no in-repo reviewers found) SummaryAdds Review Table
Findings
Verdict: PASS |
Summary
Jira: PPLT-6148 — Appium quarterly upgrade + shift default to Appium 2.x
Percy on Automate capture builds the comparison tag and regions through JavaScript (
window.screensize,devicePixelRatio, DOM lookups). A native App Automate session has no JS context, so every snapshot failed with an opaque405 Method Not Allowed— reproduced on Appium 1.22.0, 2.19.0 and 3.5.2 — and most SDKs swallow it, leaving users with no snapshots and no explanation.Change
AutomateProvider.createDriverdetects a native session (nobrowserName, butapp/appium:app/appPackage/bundleId/bundleIDon the caps ordesired) and throws:Browser sessions (desktop and mobile web, including Android Chrome which also reports
appPackage) always carrybrowserNameand are unaffected. iOS native sessions reportbrowserName: "", which is treated as absent.Verification
webdriver-utils: 250 specs pass; forcingisNativeAppSessiontofalsefails both native specs. ESLint clean.🤖 Generated with Claude Code
Summary by CodeRabbit