Skip to content

fix(e2e): resolve ./x.jsx and ./x.js in TypeScript's order, like tsx did - #915

Merged
okwasniewski merged 2 commits into
mainfrom
oskar/rc-jsx-to-tsx
Oct 6, 2026
Merged

okwasniewski merged 2 commits into
mainfrom
oskar/rc-jsx-to-tsx

Conversation

@okwasniewski

@okwasniewski okwasniewski commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Regression from #790 (unreleased, ships in #825): import { C } from './Comp.jsx' with only Comp.tsx on disk failed with Cannot find module '.../Comp.jsx'. TypeScript and e2e 0.17.0 (tsx) load it.

  • The loader derived its candidates from a per-extension written field, so ./x.jsx had none, and ./x.js tried x.jsx before x.js.
  • packages/e2e/src/config/compiled-files.ts now spells out TypeScript's table (tryAddingExtensions in TS 5.9, same as tsx's map):
const WRITTEN: Readonly<Record<string, readonly string[]>> = {
  '.js': ['.ts', '.tsx', '.js', '.jsx'],
  '.jsx': ['.tsx', '.ts', '.jsx', '.js'],
  '.mjs': ['.mts', '.mjs'],
  '.cjs': ['.cts', '.cjs'],
};

Verified

Ran it locally: yes

  • Packed e2e and @e2e-dev/web from main and from this branch into a scratch project in /tmp, then ran npx e2e run on a test that imports ./lib/Comp.jsx (only Comp.tsx), ./lib/helper.jsx (only helper.ts), ./lib/plain.jsx (only plain.js), and ./lib/both.js (both both.js and both.jsx exist).
  • tsc 5.9 --traceResolution on the same project resolves the four imports to Comp.tsx, helper.ts, plain.js, and both.js. The branch loads the same files.
main this branch
COLLECTION_ERROR: Cannot find module '.../tests/lib/Comp.jsx' ✓ jsx specifiers resolve like TypeScript
./both.js test: expected "jsx" to be "js" ✓ ./both.js loads both.js, as TypeScript does

Review in cubic

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

🟢 e2e web: 91 passed

All 91 tests in 41 files
Test Time
🟢 tests/aria-hidden-flow.e2e.ts · 2 passed 449ms
🟢 aria hidden flow › picks the Pro plan by its visible text and confirms it 314ms
🟢 aria hidden flow › another plan shows the error and keeps the picker open 135ms
🟢 tests/async-states.e2e.ts · 2 passed 7.1s
🟢 async states › reads the code off the transient toast and verifies it once the button enables 2.3s
🟢 async states › a wrong code is rejected after the toast has gone 4.8s
🟢 tests/canvas-only.e2e.ts · 2 passed 231ms
🟢 canvas only › taps square, circle, then diamond at their pixel coordinates 117ms
🟢 canvas only › a shape out of order paints the error and resets progress 114ms
🟢 tests/canvas-whiteboard.e2e.ts · 2 passed 335ms
🟢 canvas whiteboard › drags both shapes into their slots and saves 186ms
🟢 canvas whiteboard › bounces a shape off the wrong slot and refuses to save early 149ms
🟢 tests/cart-totals.e2e.ts · 2 passed 313ms
🟢 cart totals › increasing a quantity updates the line total but the order summary stays stale (planted bug) 181ms
🟢 cart totals › a quantity never drops below one 132ms
🟢 tests/checkout-review.e2e.ts · 1 passed 130ms
🟢 shows a raw greeting token and an undefined delivery date (planted bug), yet places the order 130ms
🟢 tests/context-menu-trap.e2e.ts · 2 passed 498ms
🟢 context menu trap › right-click opens nothing; the row menu renames the file 264ms
🟢 context menu trap › the decoy menu items refuse and keep the file 234ms
🟢 tests/control-inventory.e2e.ts · 8 passed 3.3s
🟢 control inventory › check sets the checkbox and the radio without flipping a set one 228ms
🟢 control inventory › check picks a radio the pick replaces with its summary 142ms
🟢 control inventory › a long press and a double click are told apart from a tap 937ms
🟢 control inventory › the file menu opens on right-click only and Rename renames the file 185ms
🟢 control inventory › setInputFiles attaches files named from the project root 116ms
🟢 control inventory › the details view is left through the browser history 147ms
🟢 control inventory › scrollIntoView brings the footnote into view 237ms
🟢 control inventory › every exercise done shows the success message 1.3s
🟢 tests/css-content-ui.e2e.ts · 2 passed 280ms
🟢 css content ui › the tile labelled Ship it advances and confirming ships 160ms
🟢 css content ui › a wrong tile shows the CSS-rendered error and keeps the picker 120ms
🟢 tests/date-picker.e2e.ts · 2 passed 562ms
🟢 date picker › navigates three months ahead and books the required date 329ms
🟢 date picker › confirming without the exact date shows the error 233ms
🟢 tests/debounced-search.e2e.ts · 2 passed 2.8s
🟢 debounced search › a decoy one character off is refused 1.4s
🟢 debounced search › picking the exact item adds it to the cart 1.4s
🟢 tests/deferred-dialog.e2e.ts · 1 passed 1.1s
🟢 one submit opens one confirm, even when double-clicked 1.1s
🟢 tests/div-soup.e2e.ts · 2 passed 572ms
🟢 div soup › a wrong code is rejected 257ms
🟢 div soup › the right code grants access after the delete tile fixes a typo 315ms
🟢 tests/drag-and-drop.e2e.ts · 2 passed 597ms
🟢 drag and drop › an out-of-order item resets the dropzone 298ms
🟢 drag and drop › dropping Banana then Cherry passes 299ms
🟢 tests/filter-deep-link.e2e.ts · 2 passed 185ms
🟢 filter deep link › filtering writes the query to the URL 105ms
🟢 filter deep link › opening a shared link restores the filter 80ms
🟢 tests/gift-card-purchase.e2e.ts · 3 passed 429ms
🟢 gift card purchase › refuses to buy without an amount 129ms
🟢 gift card purchase › refuses a recipient without an at sign 148ms
🟢 gift card purchase › sends the gift card 152ms
🟢 tests/hover-menu.e2e.ts · 2 passed 379ms
🟢 hover menu › a decoy leaf is refused 165ms
🟢 hover menu › hovering Account, then Billing, reaches Redeem voucher 214ms
🟢 tests/iframe-form.e2e.ts · 2 passed 381ms
🟢 iframe form › a wrong code is refused by the host page 187ms
🟢 iframe form › the code read from one frame applies through the other 194ms
🟢 tests/image-only-ui.e2e.ts · 3 passed 348ms
🟢 image only ui › the icons have no names, so the bare svg locator is ambiguous 84ms
🟢 image only ui › a wrong icon shows the error image and keeps the icons 116ms
🟢 image only ui › tapping the star, then the heart, verifies the icons 148ms
🟢 tests/infinite-scroll.e2e.ts · 1 passed 3.9s
🟢 scrolls the feed until the Golden Ticket loads, then claims it 3.9s
🟢 tests/kanban-board.e2e.ts · 3 passed 613ms
🟢 kanban board › pointer drags move both cards into the goal layout 315ms
🟢 kanban board › a swipe along a path drags a card as well 149ms
🟢 kanban board › a plain tap moves nothing and the untouched board is rejected 149ms
🟢 tests/login-form.e2e.ts · 4 passed 600ms
🟢 login form › rejects a malformed email 135ms
🟢 login form › rejects a short password 149ms
🟢 login form › rejects an unknown account 149ms
🟢 login form › signs in and logs out 167ms
🟢 tests/lying-labels.e2e.ts · 4 passed 565ms
🟢 lying labels › the button whose accessible name says Pay now is the wrong one 114ms
🟢 lying labels › a text match for Pay now catches the decoy phrase too 83ms
🟢 lying labels › the field whose accessible name says Amount is the wrong one 171ms
🟢 lying labels › visible text drives the payment through 197ms
🟢 tests/native-dialogs.e2e.ts · 3 passed 396ms
🟢 native dialogs › answers the confirm, prompt, and alert chain 134ms
🟢 native dialogs › dismissing the confirm cancels the order 129ms
🟢 native dialogs › a wrong gift code is rejected 133ms
🟢 tests/newsletter-signup.e2e.ts · 1 passed 2.2s
🟢 subscribe renders no feedback and logs a TypeError (planted bug) 2.2s
🟢 tests/onboarding-wizard.e2e.ts · 5 passed 4.0s
🟢 onboarding wizard › back keeps what was typed and the brief comes back with it 239ms
🟢 onboarding wizard › the address step takes the brief through its bare-div dropdown 279ms
🟢 onboarding wizard › the profile step steers the calendar three decades back 1.0s
🟢 onboarding wizard › the preferences step flips the toggles the brief names and leaves the trap off 1.2s
🟢 onboarding wizard › the review step repeats the brief and finishes with the PIN 1.3s
🟢 tests/order-history.e2e.ts · 2 passed 1.4s
🟢 order history › overview and settings render their panels 147ms
🟢 order history › the orders tab never leaves its loading state (planted bug) 1.2s
🟢 tests/otp-auto-advance.e2e.ts · 3 passed 1.3s
🟢 otp auto-advance › focus advances with each digit and the full code verifies 458ms
🟢 otp auto-advance › backspace on an empty box clears and refocuses the previous one 131ms
🟢 otp auto-advance › a wrong code clears every box and starts over 758ms
🟢 tests/overlay-trap.e2e.ts · 1 passed 700ms
🟢 continues only after the banner and the overlay are gone 700ms
🟢 tests/playbook-cleanup.e2e.ts · 2 passed 389ms
🟢 playbook cleanup › deleting the draft removes it from an exact-name search 188ms
🟢 playbook cleanup › cancelling the dialog keeps the draft searchable 201ms
🟢 tests/price-sorting.e2e.ts · 3 passed 329ms
🟢 price sorting › opens in the featured order with sale prices struck through 90ms
🟢 price sorting › low to high sorts by the original price, not the paid one (planted bug) 123ms
🟢 price sorting › high to low is the same wrong order reversed (planted bug) 116ms
🟢 tests/product-reviews.e2e.ts · 1 passed 1.1s
🟢 the running-shoe page lists coffee-grinder reviews (planted bug) 1.1s
🟢 tests/promo-storefront.e2e.ts · 1 passed 1.4s
🟢 buys a deal once the promo chrome is out of the way 1.4s
🟢 tests/rich-text-editor.e2e.ts · 2 passed 409ms
🟢 rich text editor › bolding exactly the required word passes the check 210ms
🟢 rich text editor › bold that spills into the previous word fails the check 199ms
🟢 tests/saved-addresses.e2e.ts · 3 passed 479ms
🟢 saved addresses › adds an address and clears the form 169ms
🟢 saved addresses › ignores an add with an empty field 146ms
🟢 saved addresses › delete shows its toast but keeps the address, on retry too (planted bug) 164ms
🟢 tests/shadow-dom-form.e2e.ts · 2 passed 501ms
🟢 shadow DOM form › rejects a wrong access code 252ms
🟢 shadow DOM form › grants access with the code from the hint inside the root 249ms
🟢 tests/smoke.e2e.ts · 1 passed 391ms
🟢 home lists the scenarios and opens one 391ms
🟢 tests/stale-dom.e2e.ts · 1 passed 2.1s
🟢 taps the moving target three times across rebuilds of the list 2.1s
🟢 tests/sticky-chrome.e2e.ts · 1 passed 152ms
🟢 accepts the terms once the button clears the sticky footer 152ms
🟢 tests/virtualized-table.e2e.ts · 1 passed 1m 5s
🟢 scrolls the windowed table to the Golden Row and claims it 1m 5s
🟢 tests/wishlist.e2e.ts · 2 passed 1.4s
🟢 wishlist › saving toggles the button and the tab badge 196ms
🟢 wishlist › the wishlist tab renders the empty state despite the badge count (planted bug) 1.2s

e2e 0.17.0 · 1m 50s · web · run artifacts

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 6 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/reference/config.mdx">

<violation number="1" location="docs/reference/config.mdx:87">
P2: This says every missing `./x.jsx` target maps to `x.ts`, but an existing `x.tsx` is tried first. Document the first matching candidate or qualify the example as having no `x.tsx`.</violation>
</file>

Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.

Re-trigger cubic

Comment thread docs/reference/config.mdx Outdated
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

🟢 e2e web agent: 33 passed

34 agent steps · 26 replayed from cache · 20 model calls · 76.5k tokens (92% cached) · $0.0035

All 33 tests in 5 files
Test Agent Time
🟢 tests-agent/control-inventory.e2e.ts · 7 passed 7 steps 7.2s
🟢 control inventory › check sets the checkbox and the radio 1 step 539ms
🟢 control inventory › check picks a radio the pick replaces with its summary 1 step 263ms
🟢 control inventory › a long press and a double click are chosen over a plain tap 1 step 876ms
🟢 control inventory › a right-click opens the file menu and Rename renames the file 1 step 2.6s
🟢 control inventory › upload attaches the named project files 1 step 2.4s
🟢 control inventory › back returns from the details view to the inventory 1 step 254ms
🟢 control inventory › scroll_to brings the footnote into view 1 step 347ms
🟢 tests-agent/login-form.e2e.ts · 1 passed 1 step 329ms
🟢 act signs in with the benchmark account 1 step 329ms
🟢 tests-agent/planted-bugs.e2e.ts · 3 passed 4 steps · 8 calls 10.9s
🟢 cart totals: a judgment catches the stale order summary 2 steps · 4 calls 5.5s
🟢 checkout review: a judgment catches the broken copy 1 step · 1 call 1.4s
🟢 wishlist: a judgment catches the lost saved items 1 step · 3 calls 4.0s
🟢 tests-agent/scenarios.e2e.ts · 21 passed 21 steps · 12 calls 2m 32s
🟢 act completes shadow-dom-form 1 step · 3 calls 3.9s
🟢 act completes lying-labels 1 step · 3 calls 4.8s
🟢 act completes iframe-form 1 step · 3 calls 3.8s
🟢 act completes infinite-scroll 1 step 5.5s
🟢 act completes virtualized-table 1 step 1m 44s
🟢 act completes overlay-trap 1 step 824ms
🟢 act completes sticky-chrome 1 step 872ms
🟢 act completes async-states 1 step · 3 calls 6.6s
🟢 act completes debounced-search 1 step 2.3s
🟢 act completes hover-menu 1 step 459ms
🟢 act completes drag-and-drop 1 step 419ms
🟢 act completes kanban-board 1 step 629ms
🟢 act completes context-menu-trap 1 step 2.7s
🟢 act completes stale-dom 1 step 489ms
🟢 act completes otp-auto-advance 1 step 675ms
🟢 act completes date-picker 1 step 826ms
🟢 act completes rich-text-editor 1 step 8.0s
🟢 act completes playbook-cleanup 1 step 557ms
🟢 act completes promo-storefront 1 step 2.3s
🟢 act completes gift-card-purchase 1 step 2.4s
🟢 act filters the list and the URL carries the filter 1 step 223ms
🟢 tests-agent/unique-cache.e2e.ts · 1 passed 1 step 281ms
🟢 act adds an address with a run-unique label 1 step 281ms

e2e 0.17.0 · 2m 51s · web · run artifacts

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

🟢 e2e ios agent: 21 passed, 1 skipped

25 agent steps · 132 model calls · 793.7k tokens (82% cached) · $0.0538

All 22 tests in 1 file
Test Agent Time
⏭️ tests-agent/scenarios.e2e.ts · 21 passed, 1 skipped 25 steps · 132 calls 14m 4s
🟢 act completes Login Form 1 step · 9 calls 1m 20s
🟢 act completes Infinite Scroll List 1 step · 3 calls 52.7s
🟢 act completes Modal Flow 1 step · 4 calls 21.3s
🟢 act completes Bottom Tabs 1 step · 3 calls 11.3s
🟢 act completes Text Input Variations 1 step · 4 calls 30.5s
🟢 act completes Broken Accessibility 2 steps · 7 calls 38.4s
🟢 act completes Vision Only 2 steps · 6 calls 33.8s
🟢 act completes Gestures 1 step · 8 calls 37.3s
🟢 act completes Async States 1 step · 11 calls 58.0s
🟢 act completes Debounced Search 1 step · 5 calls 23.5s
🟢 act completes Flattened Registration Form 2 steps · 14 calls 1m 48s
🟢 act completes Flattened Login 2 steps · 12 calls 1m 44s
🟢 act completes Sticky Chrome Target 1 step · 7 calls 41.3s
🟢 act completes WebView Accessibility 1 step · 5 calls 32.2s
🟢 act completes Permission Prompt 1 step · 3 calls 19.8s
🟢 act completes Photo Picker 1 step · 4 calls 20.8s
🟢 act completes Product Catalog 1 step · 5 calls 19.2s
🟢 act completes Error Recovery 1 step · 6 calls 28.8s
🟢 act completes Choice Controls 1 step · 7 calls 40.8s
🟢 act completes Stripe PaymentSheet 1 step · 5 calls 19.0s
🟢 act completes Apple Pay 1 step · 4 calls 24.3s
⏭️ act completes Apple Pay Billing Address (skipped: the CI simulator's Apple Pay sheet skips the billing-address step, so the scenario cannot be completed there)

e2e 0.17.0 · 14m 5s · ios-simulator · run artifacts

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

🟢 e2e ios: 1 flaky, 51 passed, 1 skipped

⚠️ 1 flaky test passed on a retry

⚠️ device fixture › setAppearance flips the color scheme the app reads
tests/device-fixture.e2e.ts:24

ASSERTION_FAILED at step 6 of 7: expect.toHaveText getByTestId("color-scheme"), after 5.0s

  • Expected: text "scheme: dark"
  • Observed: text "scheme: light" (1 match)
  • Failed on 2 attempts: ASSERTION_FAILED at step 7, then at step 6.
  • Screen: dev.e2e.benchmark / Control Inventory

Evidence: screenshot, log

All 53 tests in 7 files
Test Time
⚠️ tests/device-fixture.e2e.ts · 1 flaky, 8 passed 1m 21s
⚠️ device fixture › setAppearance flips the color scheme the app reads (2 failed attempts first) 12.0s
🟢 device fixture › setOrientation rotates the window the app measures 7.1s
🟢 device fixture › the clipboard reads back what was written 5.8s
🟢 device fixture › home leaves the app, openApp brings it back where it was 7.0s
🟢 device fixture › closeApp then openApp relaunches on the home list 11.4s
🟢 device fixture › foregroundApp after closeApp reports the closed session as APP_NOT_OPEN 6.7s
🟢 device fixture › device.back pops the scenario 7.5s
🟢 device fixture › setLocation and clearLocation change what the app reads 12.0s
🟢 device fixture › enrollBiometrics and setBiometrics answer a biometric prompt 11.4s
⏭️ tests/controls.e2e.ts · 23 passed, 1 skipped 3m 27s
🟢 control inventory › a label query resolves a labeled text field 11.8s
🟢 control inventory › a labeled field answers name, display value, value reads, fill, and clear 17.8s
🟢 control inventory › a placeholder query and attribute reads find the field 5.7s
🟢 control inventory › a secure field takes a fill and denies value reads 11.2s
🟢 control inventory › press sends a character and Enter through the soft keyboard 9.5s
🟢 control inventory › a field autofocuses on mount and focus() moves the focus 18.4s
🟢 control inventory › toBeFocused follows the focus 10.8s
🟢 control inventory › a switch checks, unchecks, and reports its state 11.3s
🟢 control inventory › checkbox and radio roles answer getByRole, and a checkbox toggles by tap 9.4s
🟢 control inventory › checkbox and radio roles check, uncheck, and report their state 13.5s
🟢 control inventory › a radio group reports the checked option 9.5s
🟢 control inventory › buttons report disabled, enabled, and a state that arrives later 8.9s
🟢 control inventory › a display: none element is absent rather than hidden, its visible twin attached 8.2s
🟢 control inventory › a header answers its accessible name 5.2s
🟢 control inventory › a tab row answers count, all, texts, filters, positions, and switching 7.9s
🟢 control inventory › a list answers counts, list-form text, reads, and boxes in order 7.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.0s
🟢 control inventory › pointer verbs land at the point asked for 10.8s
🟢 control inventory › an ambiguous locator fails at once 6.6s
🟢 control inventory › screenshot, restart, and clearState reopen the app on its home list 11.9s
🟢 refusals › verbs a device never declares are refused before the engine 1ms
🟢 refusals › keys the soft keyboard cannot send are refused by the engine 733ms
🟢 refusals › a missing locator fails as not found once its timeout passes 1.2s
🟢 tests/device.e2e.ts · 2 passed 57.3s
🟢 sequential onboarding echoes the exact values 43.2s
🟢 onboarding rejects a malformed email before advancing 14.1s
🟢 tests/flows-lists.e2e.ts · 7 passed 3m 44s
🟢 infinite scroll reaches the target item 27.6s
🟢 product catalog adds exactly two of the right variant 11.2s
🟢 gestures: long-press, then swipe left 9.9s
🟢 sticky chrome: accept below the fold, then continue 11.7s
🟢 async states: load, pull to refresh, claim through the toast 17.5s
🟢 huge virtualized list reaches row 512 2m 11s
🟢 web view coupon form applies the code shown on the page 15.1s
🟢 tests/flows.e2e.ts · 7 passed 1m 17s
🟢 text inputs unlock the submit button 15.0s
🟢 filled text inputs report their values 11.2s
🟢 modal flow confirms through the native alert 11.6s
🟢 bottom tabs act inside the last tab 8.0s
🟢 error recovery retries, then confirms the delete 10.5s
🟢 choice controls place the exact order 9.1s
🟢 debounced search selects the target once results arrive 11.5s
🟢 tests/login-form.e2e.ts · 3 passed 50.7s
🟢 login form › rejects a malformed email 12.5s
🟢 login form › rejects an unknown account 14.0s
🟢 login form › signs in and logs out 24.2s
🟢 tests/smoke.e2e.ts · 1 passed 9.4s
🟢 home lists the scenarios and opens one 9.4s

e2e 0.17.0 · 6m 42s · ios-simulator · run artifacts

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

🟢 e2e android: 54 passed, 1 skipped

All 55 tests in 7 files
Test Time
⏭️ tests/controls.e2e.ts · 24 passed, 1 skipped 3m 1s
🟢 control inventory › a label query resolves a labeled text field 23.8s
🟢 control inventory › a labeled field answers name, display value, value reads, fill, and clear 13.4s
🟢 control inventory › a placeholder query and attribute reads find the field 5.5s
🟢 control inventory › a secure field takes a fill and denies value reads 7.9s
🟢 control inventory › press sends a character and Enter through the soft keyboard 8.3s
🟢 control inventory › a field autofocuses on mount and focus() moves the focus 11.4s
🟢 control inventory › toBeFocused follows the focus 9.5s
🟢 control inventory › a switch checks, unchecks, and reports its state 10.2s
🟢 control inventory › checkbox and radio roles answer getByRole, and a checkbox toggles by tap 6.8s
🟢 control inventory › checkbox and radio roles check, uncheck, and report their state 11.4s
🟢 control inventory › a tab role answers getByRole 3.6s
🟢 control inventory › a radio group reports the checked option 8.7s
🟢 control inventory › buttons report disabled, enabled, and a state that arrives later 7.6s
🟢 control inventory › a display: none element is absent rather than hidden, its visible twin attached 6.6s
🟢 control inventory › a header answers its accessible name 3.8s
🟢 control inventory › a tab row answers count, all, texts, filters, positions, and switching 5.4s
🟢 control inventory › a list answers counts, list-form text, reads, and boxes in order 5.4s
⏭️ 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 7.3s
🟢 control inventory › a double tap lands inside the 300 ms window 8.0s
🟢 control inventory › an ambiguous locator fails at once 5.0s
🟢 control inventory › screenshot, restart, and clearState reopen the app on its home list 9.9s
🟢 refusals › verbs a device never declares are refused before the engine 3ms
🟢 refusals › keys the soft keyboard cannot send are refused by the engine 419ms
🟢 refusals › a missing locator fails as not found once its timeout passes 1.2s
🟢 tests/device-fixture.e2e.ts · 8 passed 1m 5s
🟢 device fixture › setOrientation rotates the window the app measures 4.5s
🟢 device fixture › home leaves the app, openApp brings it back where it was 5.8s
🟢 device fixture › foregroundApp sees the home screen after home() 4.1s
🟢 device fixture › closeApp then openApp relaunches on the home list 5.9s
🟢 device fixture › foregroundApp after closeApp reports the closed session as APP_NOT_OPEN 4.3s
🟢 device fixture › device.back pops the scenario 4.9s
🟢 device fixture › setNetwork and setAirplaneMode change what the app sees 16.0s
🟢 device fixture › setLocation and clearLocation change what the app reads 19.4s
🟢 tests/device.e2e.ts · 4 passed 37.4s
🟢 permission prompt › allowing the system dialog enables the microphone 6.9s
🟢 permission prompt › a denied prompt recovers once the permission is granted outside 13.2s
🟢 sequential onboarding echoes the exact values 10.7s
🟢 onboarding rejects a malformed email before advancing 6.7s
🟢 tests/flows-lists.e2e.ts · 7 passed 2m 13s
🟢 infinite scroll reaches the target item 18.7s
🟢 product catalog adds exactly two of the right variant 10.1s
🟢 gestures: long-press, then swipe left 8.3s
🟢 gestures: double-tap completes the flow 9.3s
🟢 sticky chrome: accept below the fold, then continue 11.2s
🟢 async states: load, pull to refresh, claim through the toast 11.8s
🟢 huge virtualized list reaches row 512 1m 4s
🟢 tests/flows.e2e.ts · 7 passed 52.6s
🟢 text inputs unlock the submit button 6.4s
🟢 filled text inputs report their values 5.6s
🟢 modal flow confirms through the native alert 8.1s
🟢 bottom tabs act inside the last tab 6.5s
🟢 error recovery retries, then confirms the delete 9.1s
🟢 choice controls place the exact order 8.5s
🟢 debounced search selects the target once results arrive 8.5s
🟢 tests/login-form.e2e.ts · 3 passed 29.4s
🟢 login form › rejects a malformed email 8.4s
🟢 login form › rejects an unknown account 8.6s
🟢 login form › signs in and logs out 12.5s
🟢 tests/smoke.e2e.ts · 1 passed 5.5s
🟢 home lists the scenarios and opens one 5.5s

e2e 0.17.0 · 8m 24s · android-emulator · run artifacts

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

🟢 e2e android agent: 20 passed

24 agent steps · 114 model calls · 603.4k tokens (86% cached) · $0.0343

All 20 tests in 1 file
Test Agent Time
🟢 tests-agent/scenarios.e2e.ts · 20 passed 24 steps · 114 calls 8m 31s
🟢 act completes Login Form 1 step · 3 calls 26.6s
🟢 act completes Infinite Scroll List 1 step · 3 calls 26.3s
🟢 act completes Modal Flow 1 step · 4 calls 11.2s
🟢 act completes Bottom Tabs 1 step · 3 calls 9.1s
🟢 act completes Text Input Variations 1 step · 3 calls 10.9s
🟢 act completes Broken Accessibility 2 steps · 6 calls 26.1s
🟢 act completes Vision Only 2 steps · 6 calls 30.0s
🟢 act completes Gestures 1 step · 10 calls 33.5s
🟢 act completes Async States 1 step · 12 calls 43.5s
🟢 act completes Debounced Search 1 step · 4 calls 9.8s
🟢 act completes Huge Virtualized List 1 step · 3 calls 1m 13s
🟢 act completes Flattened Registration Form 2 steps · 12 calls 1m 7s
🟢 act completes Flattened Login 2 steps · 6 calls 27.7s
🟢 act completes Sticky Chrome Target 1 step · 4 calls 14.1s
🟢 act completes WebView Accessibility 1 step · 4 calls 15.8s
🟢 act completes Permission Prompt 1 step · 3 calls 9.5s
🟢 act completes Product Catalog 1 step · 5 calls 12.5s
🟢 act completes Error Recovery 1 step · 7 calls 13.8s
🟢 act completes Choice Controls 1 step · 6 calls 21.9s
🟢 act completes Sequential Onboarding 1 step · 10 calls 28.6s

e2e 0.17.0 · 8m 32s · android-emulator · run artifacts

@okwasniewski
okwasniewski merged commit 30e80d6 into main Oct 6, 2026
23 checks passed
@okwasniewski
okwasniewski deleted the oskar/rc-jsx-to-tsx branch October 6, 2026 12:09
SudoScientist161 pushed a commit to SudoScientist161/e2e that referenced this pull request Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant