🚀 Features
- Add
--last-failedto run only failed tests - by @sheremet-va in #11558 (82f63) - Support
Temporal.InstantandTemporal.ZonedDateTimeinvi.setSystemTime()- by @Prajwal2246, Prajwal2246, Claude Opus 5.5 (1M context), @hi-ogawa and Codex (GPT-6) in #11321 (f150f) - Introduce
--since-last-runflag - by @sheremet-va in #11516 (08bd9) - Expose per-retry/repeat attempt result - by @hi-ogawa, Codex (GPT-6) and Claude Opus 5.5 (1M context) in #11232 (21be4)
- Support fake timers for
node:timersandnode:timers/promise- by @hi-ogawa, OpenCode and Codex (GPT-6) in #10899 (fbe97) - Allow coverage providers to store data in fs module cache - by @AriPerkkio in #11747 (54a2b)
- Interactively review failed snapshots - by @macarie and @hi-ogawa in #11325 (54e5b)
- browser:
- Mock modules through an import map - by @sheremet-va in #11534 (707f8)
- Drop experimental label from trace view - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11518 (44c3c)
- Introduce experimental
pointerAPI - by @macarie in #10780 (5dc09) - Capture aria snapshot in trace view - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11492 (0cc39)
- Show trace steps timeline on terminal on test failure - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11594 (973dc)
- Add failure-only trace view mode - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11612 (d5d7d)
- Enable failure-only trace view by default - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11766 (f37b6)
- coverage:
- V8 to support
ignoreNodeoption - by @erickserra and @AriPerkkio in #11688 (e02db)
- V8 to support
- experimental:
🐞 Bug Fixes
- Rerun setup files after
--changedfiltering - by @sheremet-va in #11621 (3a39c) - Return the mock to concurrent imports - by @sheremet-va in #11623 (1453b)
- Don't fail on console log pending at teardown - by @sheremet-va in #11619 (a60b8)
- Reference chai types in every d.ts chunk - by @sheremet-va in #11618 (fb150)
- Detect mock factory cycles that form later - by @sheremet-va in #11642 (e9554)
- Skip fs module cache for typed import.meta.glob - by @sheremet-va in #11666 (79501)
- Run tests that import a deleted file - by @sheremet-va in #11669 (80aa1)
- Keep syntax highlighting in code frames - by @sheremet-va in #11705 (d39f5)
- Respect CLI filters when prewarming browsers - by @sheremet-va and Benjamin Tang in #11706 (10947)
- Read cached source as utf-8 - by @juan-fernandez in #11682 and #11709 (867a5)
- Inherit
watchfrom the root config in projects - by @nstepien and Claude Opus 5.5 (1M context) in #11724 (77c12) - Prefix expect.poll message to all errors - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11756 (cab58)
- Support api.port 0 - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11641 (3667c)
- Show attempts in test error logs of retried tests - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11696 (77a94)
- Preserve rootDir in project paths - by @btea in #11816 (bf96d)
- browser:
- Change default port to 23315 - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11640 (a2ec4)
- Advance fake timers in actions and expect.element - by @julienw, @hi-ogawa and Claude Opus 5.5 (1M context) in #11242 (68190)
- Drop trace view warning without html reporter - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11665 (e6407)
- Detect shared chunks via the optimizer - by @sheremet-va in #11661 (e2e9c)
- Clear screenshot stability timeout - by @sheremet-va in #11659 (fbe37)
- Measure prepare duration with one clock - by @sheremet-va in #11667 (a3ed4)
- Keep failure screenshot per attempt - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11694 (a5022)
- Print trace timeline of each attempt - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11695 (27229)
- Don't hang in
page.viewport()- by @sheremet-va in #11738 (49ff4) - Skip trace entries after their attempt ended - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11771 (7a56f)
- Focus the iframe before clicking in playwright - by @sheremet-va in #11798 (eb20a)
- Fail the run when a tester cannot connect - by @sheremet-va in #11802 (605bf)
- Treat edge as chromium in toHaveStyle - by @aliamanatali in #11813 (f4dd9)
- cache:
- cli:
- coverage:
- V8
autoAttachSubprocessto use.tmpdirectory - by @AriPerkkio in #11632 (de5af) - V8 to ignore Vite's generated CJS namespace import helper - by @AriPerkkio in #11676 (5901f)
- V8
- deps:
- Update all non-major dependencies - by @sheremet-va in #11637 (2b18e)
- expect:
- mocker:
- Don't change the original prototype chain - by @sheremet-va and Max Schwenk in #11737 (cca42)
- Use root mocks for linked packages - by @sheremet-va in #7708 and #11739 (810ec)
- runner:
- Don't drop throttled task updates - by @sheremet-va in #11795 (8e837)
- ui:
- Escape search text in explorer highlight - by @sheremet-va in #11672 (3c6d6)
- Fix html reporter crash when --bail cancels files - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11693 (36a5f)
- Fix quirks mode in trace view replay - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11744 (b9b73)
- Let coverage report follow UI color scheme - by @AriPerkkio in #11765 (59c2d)
- Open trace view only for tests with a trace - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11770 (c022d)
- vm:
- Strip hashbang before compiling CommonJS dependencies - by @cwoebker in #11731 (1a77c)
- Keep node globals after teardown - by @francesco-agnoletto in #11380 and #11681 (a57b4)
- Reset fake timers after each test file - by @francesco-agnoletto in #11679 and #11779 (78c46)
- Keep assignable accessor globals writable in node environment - by @MO2k4 and Martin Oehlert in #11834 (a5ec3)
🏎 Performance
- Reuse fsModuleCache in static collection - by @sheremet-va in #11622 (1766c)
- Cache setup/mock resolves in reused workers - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11760 (5de10)
- Don't refetch warm modules in reused runners - by @hi-ogawa and Claude Opus 5.5 (1M context) in #11761 (4f135)
- browser:
- coverage:
- Istanbul to use
magic-string+rolldownfor instrumentation - by @AriPerkkio in #11648 (2470b) - Istanbul to collect uncovered files in
Promise.all- by @AriPerkkio in #11713 (f1092) - Istanbul to not store input source maps in coverage data - by @AriPerkkio in #11686 (2debb)
- Istanbul to use
- expect:
- Compare typed arrays in one loop - by @sheremet-va in #11658 (908eb)