Repository navigation
feat!: drop Playwright trace recording - #822
okwasniewski wants to merge 6 commits into
Conversation
🟢 e2e web: 91 passedAll 91 tests in 41 files
e2e 0.17.0 · 1m 52s · web · run artifacts |
🟢 e2e web agent: 33 passed34 agent steps · 26 replayed from cache · 20 model calls · 76.2k tokens (92% cached) · $0.0035 All 33 tests in 5 files
e2e 0.17.0 · 3m 2s · web · run artifacts |
There was a problem hiding this comment.
All reported issues were addressed across 104 files
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Re-trigger cubic
🟢 e2e ios agent: 21 passed, 1 skipped25 agent steps · 134 model calls · 809.0k tokens (82% cached) · $0.0547 All 22 tests in 1 file
e2e 0.17.0 · 13m 42s · ios-simulator · run artifacts |
There was a problem hiding this comment.
All reported issues were addressed across 15 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
🟢 e2e android: 54 passed, 1 skippedAll 55 tests in 7 files
e2e 0.17.0 · 8m 16s · android-emulator · run artifacts |
🟢 e2e ios: 2 flaky, 50 passed, 1 skipped
|
| Test | Time | |
|---|---|---|
| tests/controls.e2e.ts · 1 flaky, 22 passed, 1 skipped | 3m 29s | |
| 🟢 | control inventory › a label query resolves a labeled text field | 11.4s |
| 🟢 | control inventory › a labeled field answers name, display value, value reads, fill, and clear | 20.0s |
| 🟢 | control inventory › a placeholder query and attribute reads find the field | 6.0s |
| 🟢 | control inventory › a secure field takes a fill and denies value reads | 10.0s |
| 🟢 | control inventory › press sends a character and Enter through the soft keyboard | 9.6s |
| 🟢 | control inventory › a field autofocuses on mount and focus() moves the focus | 13.8s |
| control inventory › toBeFocused follows the focus (2 failed attempts first) | 11.2s | |
| 🟢 | control inventory › a switch checks, unchecks, and reports its state | 12.0s |
| 🟢 | control inventory › checkbox and radio roles answer getByRole, and a checkbox toggles by tap | 10.3s |
| 🟢 | control inventory › checkbox and radio roles check, uncheck, and report their state | 15.2s |
| 🟢 | control inventory › a radio group reports the checked option | 10.2s |
| 🟢 | control inventory › buttons report disabled, enabled, and a state that arrives later | 9.3s |
| 🟢 | control inventory › a display: none element is absent rather than hidden, its visible twin attached | 8.3s |
| 🟢 | control inventory › a header answers its accessible name | 5.0s |
| 🟢 | control inventory › a tab row answers count, all, texts, filters, positions, and switching | 7.5s |
| 🟢 | control inventory › a list answers counts, list-form text, reads, and boxes in order | 8.8s |
| ⏭️ | control inventory › a row contains its texts (skipped: React Native flattens a plain View out of the accessibility tree on both platforms: XCTest and the Android helper report a View with a testID as a leaf beside its children, so filter({ has }) and a query scoped to it match nothing; only Sc…) | |
| 🟢 | control inventory › a long press lands as one | 9.4s |
| 🟢 | control inventory › pointer verbs land at the point asked for | 10.6s |
| 🟢 | control inventory › an ambiguous locator fails at once | 6.4s |
| 🟢 | control inventory › screenshot, restart, and clearState reopen the app on its home list | 11.6s |
| 🟢 | refusals › verbs a device never declares are refused before the engine | 2ms |
| 🟢 | refusals › keys the soft keyboard cannot send are refused by the engine | 1.4s |
| 🟢 | refusals › a missing locator fails as not found once its timeout passes | 1.1s |
| tests/flows-lists.e2e.ts · 1 flaky, 6 passed | 3m 48s | |
| 🟢 | infinite scroll reaches the target item | 29.5s |
| 🟢 | product catalog adds exactly two of the right variant | 10.9s |
| 🟢 | gestures: long-press, then swipe left | 9.7s |
| 🟢 | sticky chrome: accept below the fold, then continue | 11.3s |
| 🟢 | async states: load, pull to refresh, claim through the toast | 17.2s |
| huge virtualized list reaches row 512 (1 failed attempt first) | 2m 13s | |
| 🟢 | web view coupon form applies the code shown on the page | 16.0s |
| 🟢 | tests/device-fixture.e2e.ts · 9 passed | 1m 24s |
| 🟢 | device fixture › setAppearance flips the color scheme the app reads | 12.5s |
| 🟢 | device fixture › setOrientation rotates the window the app measures | 9.1s |
| 🟢 | device fixture › the clipboard reads back what was written | 7.0s |
| 🟢 | device fixture › home leaves the app, openApp brings it back where it was | 7.4s |
| 🟢 | device fixture › closeApp then openApp relaunches on the home list | 8.0s |
| 🟢 | device fixture › foregroundApp after closeApp reports the closed session as APP_NOT_OPEN | 5.7s |
| 🟢 | device fixture › device.back pops the scenario | 6.6s |
| 🟢 | device fixture › setLocation and clearLocation change what the app reads | 15.9s |
| 🟢 | device fixture › enrollBiometrics and setBiometrics answer a biometric prompt | 11.5s |
| 🟢 | tests/device.e2e.ts · 2 passed | 56.3s |
| 🟢 | sequential onboarding echoes the exact values | 42.7s |
| 🟢 | onboarding rejects a malformed email before advancing | 13.6s |
| 🟢 | tests/flows.e2e.ts · 7 passed | 1m 43s |
| 🟢 | text inputs unlock the submit button | 18.2s |
| 🟢 | filled text inputs report their values | 32.3s |
| 🟢 | modal flow confirms through the native alert | 11.3s |
| 🟢 | bottom tabs act inside the last tab | 8.5s |
| 🟢 | error recovery retries, then confirms the delete | 10.4s |
| 🟢 | choice controls place the exact order | 10.5s |
| 🟢 | debounced search selects the target once results arrive | 12.0s |
| 🟢 | tests/login-form.e2e.ts · 3 passed | 54.3s |
| 🟢 | login form › rejects a malformed email | 16.1s |
| 🟢 | login form › rejects an unknown account | 13.8s |
| 🟢 | login form › signs in and logs out | 24.3s |
| 🟢 | tests/smoke.e2e.ts · 1 passed | 16.1s |
| 🟢 | home lists the scenarios and opens one | 16.1s |
e2e 0.17.0 · 8m 56s · ios-simulator · run artifacts
🟢 e2e android agent: 20 passed24 agent steps · 111 model calls · 574.4k tokens (87% cached) · $0.0317 All 20 tests in 1 file
e2e 0.17.0 · 8m 53s · android-emulator · run artifacts |
5e10e1f to
0be324d
Compare
|
[claude-opus-5-5] responding on behalf of okwasniewski Everything is green except Re-recording takes a model key, which I don't have here: Overlap: #804 fixes the same |
0be324d to
bbbd984
Compare
trace (config, target, test/describe) and --trace are refused, pointing at the failure pages and video. Removes startTrace/stopTrace from the engine contract, the trace artifact kind and not-required redaction from report-1, TRACE_WITHHELD, trace redaction, and the web engine's tracing. Recording modes stay, for video.
…replacement for this commit An @e2e-dev/web published before the removal still declares artifacts.startTrace/stopTrace and sits inside its e2e peer range; the manifest now accepts and never calls them. The refusal and docs name the markdown reporter's failure pages, the replacement at this commit, and stop calling on-all-retries a Playwright video mode.
…e, and tighten docs
…-blocking script in the late handler tests A screencast on Linux delivers the frame of a page that just painted after the paint, so a segment stopped right after a navigation had no frame and Playwright wrote it white (seen on main in the mid-attempt video test). A segment now waits up to 1s for its first frame. The late route handler tests routed a fetch the page issues after load, which raced the body's end; they route a script the document waits for instead.
…he download fragment pass
bbbd984 to
9373624
Compare
|
[claude-opus-5-5] responding on behalf of okwasniewski Superseded by #869: one PR, |
Playwright trace zips were the debugging artifact for a failed test, but an agent can't read one without a GUI viewer, the screencast is withheld after a secret fill, and devices have no trace at all. This removes trace recording. The failure pages in the stacked PR take its place.
tracein the config or on a target isINVALID_CONFIG, on a test, describe, or setupCOLLECTION_ERROR, and--trace(bare or with a mode) onrunandexploreexits 2. Each names the replacement: the markdown reporter's failure pages, orvideofor a recording.videokeeps every mode and the config < target < CLI < test precedence.trace-modes.test.tsis ported tovideo-modes.test.ts, so on-all-retries, retain-on-failure, serial groups, and test-beats-config stay covered.startTrace/stopTraceleaveEngineArtifacts. An engine published before this (@e2e-dev/web@0.11.2allowse2e >=0.15 <1) still declares them, so the manifest accepts and never calls them (packages/e2e/src/engine/manifest.ts,RETIRED_HOOKS) and updatinge2ealone keeps working.traceartifact kind,traceinartifactCapabilities, and thenot-requiredredaction;TRACE_WITHHELDis gone. Schema, valid fixture, and producer change together.run/trace-redaction.ts,internal/zip.ts, the ledger'sappearsIn, the web engine's trace segments around restarts and CDP recovery, telemetry'sconfig_trace_modes.redactFragmentsstays: text downloads use it since fix(e2e): rewrite downloads with the full ledger pass, the way traces are #806.packages/web/src/video.ts). Without the trace keeping the screencast busy, a segment stopped right after a navigation got no frame on Linux, and Playwright writes that as a white video: thevideo.webm inked 0failuremainalso hit. Reproduced and verified in themcr.microsoft.com/playwright:v1.63.0-noblecontainer./script-flags) instead of a fetch it issues after load, which raced the end of the body once tracing no longer slowed it.Verified
Ran it locally: yes
e2e run tests/todos.e2e.ts: 7 passed, notrace/directory or zip written.--videostill writes one.webmper attempt.trace: 'on'in a copy of the testbed config,--trace,--trace=on, andexplore --trace off: each refused, exit 2, with the replacement message.e2efrom this branch with the published@e2e-dev/web@0.11.2andplaywright@1.63.0in a scratch project: the config loads and the test runs (before the manifest fix it wasINVALID_CONFIG: engine "web": artifacts has unknown key "startTrace").(The failure is the deliberate assertion; no config error.)