PackageTrack

npm ยท #3828

@vitest/browser

4.1.11vitest-dev/vitest โ†—

Browser running for Vitest

Release timeline

233 releases since 2022
2023202420252026

Releases

  1. 4.0.0-beta.528 Jul 2025pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • Use module-runner instead of vite-node  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8208 <samp>(9be01)</samp>
    • runner: Set mode to todo if no function is passed down to test or describe  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8346 <samp>(1a81c)</samp>

       ๐Ÿž Bug Fixes

    • Invalidate modules in all module graphs when the file is changed  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8352 <samp>(94ab3)</samp>
    • wdio: Properly construct the shadow root selector if there are multiple elements  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8354 <samp>(28765)</samp>
        View changes on GitHub
    Open source โ†’
  2. 4.0.0-beta.422 Jul 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • browser:
      • Add qwik to the vitest init cli command  -  by @thejackshelton in https://github.com/vitest-dev/vitest/issues/8330 <samp>(1638b)</samp>
      • Introduce toMatchScreenshot for Visual Regression Testing  -  by @macarie in https://github.com/vitest-dev/vitest/issues/8041 <samp>(d45f9)</samp>

       ๐Ÿž Bug Fixes

    • Add --changed flag support to vitest list command  -  by @haakonjackfloat in https://github.com/vitest-dev/vitest/issues/8270 and https://github.com/vitest-dev/vitest/issues/8272 <samp>(e71a5)</samp>
    • Prevent rpc timeout on slow thread blocking synchronous methods  -  by @AriPerkkio and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8297 <samp>(bea87)</samp>
    • Forbid setting environment to browser  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8334 <samp>(0417a)</samp>
    • deps: Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/8328 <samp>(aa79e)</samp>
    • wdio: Wait for the driver to be properly closed  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8305 <samp>(c16ab)</samp>
        View changes on GitHub
    Open source โ†’
  3. 4.0.0-beta.315 Jul 2025pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • Remove deprecated workspace option in favor of projects  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8218 <samp>(76fb7)</samp>
    • Ignore --standalone when CLI filename filter is used  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8262 <samp>(013bf)</samp>

       ๐Ÿš€ Features

    • Add spy option to vi.mockObject  -  by @rChaoz in https://github.com/vitest-dev/vitest/issues/8285 <samp>(81d76)</samp>
    • browser: Support toBeInViewport utility method to assert element is in viewport or not  -  by @Shinyaigeek in https://github.com/vitest-dev/vitest/issues/8234 <samp>(ceed5)</samp>
    • expect: Support toBeNullable expect function to check provided value is nullish  -  by @Shinyaigeek and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8294 <samp>(eeec5)</samp>
    • mocker: Add automocker entry  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8301 <samp>(e9c92)</samp>

       ๐Ÿž Bug Fixes

    • Remove unused dependencies  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8184 <samp>(feadc)</samp>
    • Distribute test files to shards more evenly  -  by @Shinyaigeek and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8288 <samp>(7b489)</samp>
    • Use suite's timeout when test.extend  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8278 <samp>(43977)</samp>
    • Support snapshot with no object key sorting  -  by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/8136 <samp>(e85e3)</samp>
    • Annotation location always points to the test file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8315 <samp>(88071)</samp>
    • core:
      • Fix objectContaining expect utility to have more compatibility to jest's one  -  by @Shinyaigeek in https://github.com/vitest-dev/vitest/issues/8241 <samp>(480be)</samp>
    • coverage:
      • Include files based on --project filter  -  by @gtbuchanan in https://github.com/vitest-dev/vitest/issues/7885 <samp>(761be)</samp>
      • Prevent encoding filenames of uncovered files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8239 <samp>(8a998)</samp>
    • deps:
      • Update all non-major dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8235 <samp>(a1e57)</samp>
    • mocker:
      • Fix regexpHoistable to allow whitespace before parentheses  -  by @cszhjh in https://github.com/vitest-dev/vitest/issues/8231 <samp>(a0f9a)</samp>
    • reporter:
      • Invisible CLI menus when vitest --standalone  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8248 <samp>(37cc2)</samp>
    • rolldown-vite:
      • Properly disable minifier in the browser client  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8306 <samp>(f55bb)</samp>
    • watch:
      • Filename filter runs duplicate tests in workspaces  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8250 <samp>(932d8)</samp>
        View changes on GitHub
    Open source โ†’
  4. 4.0.0-beta.224 Jun 2025pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • Remove support for Vite 5  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8202 <samp>(cb8b0)</samp>
    • Remove deprecated types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8203 <samp>(66bee)</samp>
    • Remove deprecated environmentMatchGlobs and poolMatchGlobs  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8205 <samp>(be11d)</samp>
    • snapshot: Fail test with obsolete snapshot on CI  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7963 <samp>(4d84f)</samp>
    • spy: Support spying on classes  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6160 <samp>(abc0d)</samp>

       ๐Ÿš€ Features

    • Add onUnhandledError callback  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8162 <samp>(924cb)</samp>

       ๐Ÿž Bug Fixes

    • Allow overriding globals in types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8215 <samp>(2248b)</samp>
    • browser: Run in-source tests only when the file itsels is a test file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8204 <samp>(bdd2e)</samp>
        View changes on GitHub
    Open source โ†’
  5. 4.0.0-beta.120 Jun 2025pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • Remove 'basic' reporter  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7884 <samp>(82fcf)</samp>
    • Simplify default exclude pattern  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6287 <samp>(14c50)</samp>
    • Remove deprecated getSourceMap  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8194 <samp>(ff934)</samp>
    • Replace deprecated ErrorWithDiff with TestError  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8195 <samp>(da59e)</samp>
    • Remove UserConfig type in favor of ViteUserConfig  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8196 <samp>(22f7f)</samp>
    • Remove deprecated coverage options in favor of vitest/node exports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8197 <samp>(dc848)</samp>
    • Remove deprecated internal helpers and environment exports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8198 <samp>(4703c)</samp>
    • Remove deprecated typecheck and runner types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8199 <samp>(89a1c)</samp>
    • Remove Node types from the main entry point, use vitest/node instead  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8200 <samp>(1e60c)</samp>
    • coverage:
      • V8 to support only AST based remapping by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8064 <samp>(176133e)</samp>
      • Remove .all, reworked include/exclude by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7837 <samp>(41a111c)</samp>

       ๐Ÿš€ Features

    • Provide entity to onConsoleLog  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8159 <samp>(437d4)</samp>

       ๐Ÿž Bug Fixes

    • types: Ensure Chai declaration merge works with TS-Go  -  by @LukeAbby in https://github.com/vitest-dev/vitest/issues/8188 <samp>(5261d)</samp>
        View changes on GitHub
    Open source โ†’
  6. 3.2.76 Jul 2026
    Release notes

       ๐Ÿž Bug Fixes

    • browser: Check fs access in builtin commands [backport to v3]  -  by @hi-ogawa, Hiroshi Ogawa and OpenCode (claude-opus-4-8) in #10679 (b795e)
        View changes on GitHub
    Open source โ†’
  7. 3.2.61 Jun 2026
    Release notes

       ๐Ÿž Bug Fixes

        View changes on GitHub
    Open source โ†’
  8. 3.2.51 Jun 2026
    Release notes

       ๐Ÿš€ Features

    • api: Add allowWrite and allowExec options to api [backport to v3]  -  by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10445 <samp>(af88b)</samp>

       ๐Ÿž Bug Fixes

    • browser: Disable client cdp API when allowWrite/allowExec: false [backport to v3]  -  by @hi-ogawa and Codex in https://github.com/vitest-dev/vitest/issues/10456 <samp>(385a1)</samp>
        View changes on GitHub
    Open source โ†’
  9. 3.2.417 Jun 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Use correct path for optimisation of strip-literal  -  by @mrginglymus in https://github.com/vitest-dev/vitest/issues/8139 <samp>(44940)</samp>
    • Print uint and buffer as a simple string  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8141 <samp>(b86bf)</samp>
    • browser:
      • Show a helpful error when spying on an export  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8178 <samp>(56007)</samp>
    • cli:
      • vitest run --watch should be watch-mode  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8128 <samp>(657e8)</samp>
      • Use absolute path environment on Windows  -  by @colinaaa in https://github.com/vitest-dev/vitest/issues/8105 <samp>(85dc0)</samp>
      • Throw error when --shard x/<count> exceeds count of test files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8112 <samp>(8a18c)</samp>
    • coverage:
      • Ignore SCSS in browser mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8161 <samp>(0c3be)</samp>
    • deps:
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/8123 <samp>(93f32)</samp>
    • expect:
      • Handle async errors in expect.soft  -  by @lzl0304 in https://github.com/vitest-dev/vitest/issues/8145 <samp>(68699)</samp>
    • pool:
      • Auto-adjust minWorkers when only maxWorkers specified  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8110 <samp>(14dc0)</samp>
    • reporter:
      • task.meta should be available in custom reporter's errors  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8115 <samp>(27df6)</samp>
    • runner:
      • Preserve handler wrapping on extend  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/8153 <samp>(a9281)</samp>
    • ui:
      • Ensure ui config option works correctly  -  by @lzl0304 in https://github.com/vitest-dev/vitest/issues/8147 <samp>(42eeb)</samp>
        View changes on GitHub
    Open source โ†’
  10. 3.2.39 Jun 2025
    Release notes

       ๐Ÿš€ Features

    • browser: Use base url instead of vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8126 <samp>(1d8eb)</samp>
    • ui: Show test annotations and metadata in the test report tab  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8093 <samp>(c69be)</samp>

       ๐Ÿž Bug Fixes

    • Rerun tests when project's setup file is changed  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8097 <samp>(0f335)</samp>
    • Revert expect.any return type  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8129 <samp>(47514)</samp>
    • Run only the name plugin last, not all config plugins  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8130 <samp>(83862)</samp>
    • pool:
      • Throw if user's tests use process.send()  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8125 <samp>(dfe81)</samp>
    • runner:
      • Fast sequential task updates missing  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8121 <samp>(7bd11)</samp>
      • Comments between fixture destructures  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8127 <samp>(dc469)</samp>
    • vite-node:
      • Unable to handle errors where sourcemap mapping empty  -  by @blake-newman and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8071 <samp>(8aa25)</samp>
        View changes on GitHub
    Open source โ†’
  11. 3.2.25 Jun 2025
    Release notes

       ๐Ÿš€ Features

    • Support rolldown-vite  -  by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7509 <samp>(c8d62)</samp>

       ๐Ÿž Bug Fixes

    • browser:
      • Calculate prepare time from createTesters call on the main thread  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8101 <samp>(142c7)</samp>
      • Optimize build output and always prebundle vitest  -  by @sheremet-va <samp>(00a39)</samp>
      • Make custom locators available in vitest-browser-* packages  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8103 <samp>(247ef)</samp>
    • expect:
      • Ensure we can always self toEqual  -  by @dubzzz in https://github.com/vitest-dev/vitest/issues/8094 <samp>(02ec8)</samp>
    • reporter:
      • Allow dot reporter to work in non interactive terminals  -  by @bstephen1 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7994 <samp>(6db9f)</samp>
        View changes on GitHub
    Open source โ†’
  12. 3.2.13 Jun 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Use sha1 instead of md5 for hashing  -  by @sheremet-va <samp>(e4c73)</samp>
    • expect:
      • Fix chai import in dts  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/8077 <samp>(a7593)</samp>
      • Export DeeplyAllowMatchers  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8078 <samp>(30ab4)</samp>
        View changes on GitHub
    Open source โ†’
  13. 3.2.02 Jun 2025
    Release notes

       ๐Ÿš€ Features

    • Provide ctx.signal  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7878 <samp>(e761f)</samp>
    • Support custom colors for test.name  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7809 <samp>(4af5d)</samp>
    • Add vi.mockObject to automock any object  -  by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7761 <samp>(465bd)</samp>
    • Introduce watchTriggerPatterns option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7778 <samp>(a0675)</samp>
    • Deprecate workspace in favor of projects  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 <samp>(41beb)</samp>
    • Explicit Resource Management support in mocked functions  -  by @EskiMojo14 in https://github.com/vitest-dev/vitest/issues/7927 <samp>(b67d3)</samp>
    • Add sequence.groupOrder option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7852 <samp>(d1a1d)</samp>
    • Initial support for Temporal equality  -  by @dirkluijk in https://github.com/vitest-dev/vitest/issues/8007 <samp>(52bd7)</samp>
    • Support Vite 7  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8003 <samp>(1716b)</samp>
    • Track module execution totalTime and selfTime  -  by @abrenneke in https://github.com/vitest-dev/vitest/issues/8027 <samp>(95961)</samp>
    • Annotation API  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7953 <samp>(b03f2)</samp>
    • browser:
      • Implement connect option for playwright browser provider  -  by @egfx-notifications and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7915 <samp>(029c0)</samp>
      • Add screenshot.save option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7777 <samp>(d9f51)</samp>
      • Custom locators API  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7993 <samp>(e6fbd)</samp>
    • coverage:
      • V8 experimental AST-aware remapping  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7736 <samp>(78a3d)</samp>
    • reporter:
      • Add onWritePath option to github-actions  -  by @nwalters512 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8015 <samp>(abd3b)</samp>
    • vitest:
      • Allow per-file and per-worker fixtures  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7704 <samp>(9cbfc)</samp>

       ๐Ÿž Bug Fixes

    • Replace micromatch with picomatch  -  by @sapphi-red in https://github.com/vitest-dev/vitest/issues/7951 <samp>(df076)</samp>
    • Try to catch unhandled error outside of a test  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7968 <samp>(46421)</samp>
    • Generate a separate config for "vitest init browser" instead of a workspace file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7934 <samp>(e84e2)</samp>
    • Switch ExpectStatic any types to AsymmetricMatcher<unknown>, with DeeplyAllowMatchers<T>  -  by @JoshuaKGoldberg in https://github.com/vitest-dev/vitest/issues/7016 <samp>(8ec44)</samp>
    • Remove unused exports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7618 <samp>(33d05)</samp>
    • Throw an error if typechecker failed to spawn  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7990 <samp>(0e960)</samp>
    • Ignore non-string stack properties  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7995 <samp>(330f9)</samp>
    • Apply browser CLI options only if the project has the browser set in the config already  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7984 <samp>(70358)</samp>
    • Ensure errors keep their message and stack after toJSON serialisation  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8053 <samp>(3bdf0)</samp>
    • browser:
      • Resolve FS commands relative to the project root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7896 <samp>(69ac9)</samp>
      • Run tests serially if provider doesn't provide a mocker  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8032 <samp>(227a9)</samp>
      • Resolve upload files relative to the project root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8042 <samp>(b9a31)</samp>
      • Await mocker invalidation to avoid race condition with "mock wasn't registered"  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8021 <samp>(b34ff)</samp>
      • Share vite cache with the project cache  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8049 <samp>(0cbad)</samp>
      • Add this type to locators.extend  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8069 <samp>(70fb0)</samp>
    • cache:
      • Preserve test results from previous runs  -  by @macko911 in https://github.com/vitest-dev/vitest/issues/8043 <samp>(d6ef0)</samp>
    • cli:
      • Add built-in reporters list to --help output  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7955 <samp>(ef6ef)</samp>
      • Parse --silent values properly  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8055 <samp>(8fad7)</samp>
    • coverage:
      • Istanbul provider to not use Vite preserved query params  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7939 <samp>(a05d4)</samp>
      • Browser + v8 in source tests missing  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7946 <samp>(51cd8)</samp>
      • In-source test cases excluded  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7985 <samp>(407c0)</samp>
    • dev:
      • Fix relay of custom equality testers  -  by @StefanLiebscher in https://github.com/vitest-dev/vitest/issues/6140 <samp>(6dc1d)</samp>
    • expect:
      • Unbundle @types/chai  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7937 <samp>(525f5)</samp>
      • Support type-safe declaration of custom matchers  -  by @kettanaito and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7656 <samp>(e996b)</samp>
    • reporters:
      • Check the test result again when tests are rerunning  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8063 <samp>(35e31)</samp>
    • spy:
      • Copy over static properties from the function  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7780 <samp>(9b9f0)</samp>
    • typecheck:
      • Don't panic during vitest list command  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7933 <samp>(ba6da)</samp>
      • Avoid creating a temporary tsconfig file when typechecking  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7967 <samp>(34f43)</samp>
    • vite-node:
      • Add __vite_ssr_exportName__  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7925 <samp>(76091)</samp>
    • vitest:
      • Adjust getWorkerMemoryLimit priority for vmForks  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7960 <samp>(5a91e)</samp>
    • wdio:
      • Don't scale browser in headless mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8033 <samp>(c23b0)</samp>
        View changes on GitHub
    Open source โ†’
  14. 3.2.0-beta.328 May 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • Initial support for Temporal equality  -  by @dirkluijk in https://github.com/vitest-dev/vitest/issues/8007 <samp>(52bd7)</samp>
    • Support Vite 7  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8003 <samp>(1716b)</samp>
    • reporter: Add onWritePath option to github-actions  -  by @nwalters512 and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/8015 <samp>(abd3b)</samp>

       ๐Ÿž Bug Fixes

    • Throw an error if typechecker failed to spawn  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7990 <samp>(0e960)</samp>
    • Ignore non-string stack properties  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7995 <samp>(330f9)</samp>
    • Apply browser CLI options only if the project has the browser set in the config already  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7984 <samp>(70358)</samp>
    • browser:
      • Run tests serially if provider doesn't provide a mocker  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8032 <samp>(227a9)</samp>
      • Resolve upload files relative to the project root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8042 <samp>(b9a31)</samp>
      • Await mocker invalidation to avoid race condition with "mock wasn't registered"  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8021 <samp>(b34ff)</samp>
    • cache:
      • Preserve test results from previous runs  -  by @macko911 in https://github.com/vitest-dev/vitest/issues/8043 <samp>(d6ef0)</samp>
    • coverage:
      • Browser + v8 in source tests missing  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7946 <samp>(51cd8)</samp>
    • expect:
      • Support type-safe declaration of custom matchers  -  by @kettanaito and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7656 <samp>(e996b)</samp>
    • vite-node:
      • Add __vite_ssr_exportName__  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7925 <samp>(76091)</samp>
    • webdriverio:
      • Don't scale the iframe  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8033 <samp>(c23b0)</samp>

    [!NOTE] playwright and preview still scale it for better DX, but webdriver has fundamental issues with it. We are looking for a solution that works across all providers

        View changes on GitHub
    Open source โ†’
  15. 3.2.0-beta.219 May 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • Explicit Resource Management support in mocked functions  -  by @EskiMojo14 in https://github.com/vitest-dev/vitest/issues/7927 <samp>(b67d3)</samp>
    • Add sequence.groupOrder option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7852 <samp>(d1a1d)</samp>
    • browser:
      • Add screenshot.save option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7777 <samp>(d9f51)</samp>
      • Custom locators API  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7993 <samp>(e6fbd)</samp>

       ๐Ÿž Bug Fixes

    • Replace micromatch with picomatch  -  by @sapphi-red in https://github.com/vitest-dev/vitest/issues/7951 <samp>(df076)</samp>
    • Try to catch unhandled error outside of a test  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7968 <samp>(46421)</samp>
    • Generate a separate config for "vitest init browser" instead of a workspace file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7934 <samp>(e84e2)</samp>
    • Switch ExpectStatic any types to AsymmetricMatcher<unknown>, with DeeplyAllowMatchers<T>  -  by @JoshuaKGoldberg in https://github.com/vitest-dev/vitest/issues/7016 <samp>(8ec44)</samp>
    • Remove unused exports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7618 <samp>(33d05)</samp>
    • cli:
      • Add built-in reporters list to --help output  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7955 <samp>(ef6ef)</samp>
    • coverage:
      • Istanbul provider to not use Vite preserved query params  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7939 <samp>(a05d4)</samp>
    • dev:
      • Fix relay of custom equality testers  -  by @StefanLiebscher in https://github.com/vitest-dev/vitest/issues/6140 <samp>(6dc1d)</samp>
    • expect:
      • Unbundle @types/chai  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7937 <samp>(525f5)</samp>
    • typecheck:
      • Don't panic during vitest list command  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7933 <samp>(ba6da)</samp>
      • Avoid creating a temporary tsconfig file when typechecking  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7967 <samp>(34f43)</samp>
    • vitest:
      • Adjust getWorkerMemoryLimit priority for vmForks  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7960 <samp>(5a91e)</samp>
        View changes on GitHub
    Open source โ†’
  16. 3.2.0-beta.15 May 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • Provide ctx.signal  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7878 <samp>(e761f)</samp>
    • Support custom colors for test.name  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7809 <samp>(4af5d)</samp>
    • Add vi.mockObject to automock any object  -  by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7761 <samp>(465bd)</samp>
    • Introduce watchTriggerPatterns option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7778 <samp>(a0675)</samp>
    • Deprecate workspace in favor of projects  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7923 <samp>(41beb)</samp>
    • browser: Implement connect option for playwright browser provider  -  by @egfx-notifications and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7915 <samp>(029c0)</samp>
    • coverage: V8 experimental AST-aware remapping  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7736 <samp>(78a3d)</samp>

       ๐Ÿž Bug Fixes

    • browser: Resolve FS commands relative to the project root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7896 <samp>(69ac9)</samp>
        View changes on GitHub
    Open source โ†’
  17. 3.1.419 May 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Apply browser CLI options only if the project has the browser set in the config already  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/8002 <samp>(64f2b)</samp>
        View changes on GitHub
    Open source โ†’
  18. 3.1.35 May 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Correctly resolve vitest import if inline: true is set  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7856 <samp>(a83f3)</samp>
    • Fix fixture parsing with lowered async with esbuild 0.25.3  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7921 <samp>(c5c85)</samp>
    • Remove event-catcher code  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7898 <samp>(deb1b)</samp>
    • Reset mocks on test retry/repeat  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7897 <samp>(2fa76)</samp>
    • Ignore failures on writeToCache  -  by @orgads in https://github.com/vitest-dev/vitest/issues/7893 <samp>(8c7f7)</samp>
    • browser: Correctly inherit CLI options  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7858 <samp>(03660)</samp>
    • deps: Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7867 <samp>(67ef7)</samp>
    • reporters: --merge-reports to show each total run times  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7877 <samp>(d613b)</samp>
        View changes on GitHub
    Open source โ†’
  19. 3.1.221 Apr 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Add global chai variable in vitest/globals (fix: #7474)  -  by @Jay-Karia in https://github.com/vitest-dev/vitest/issues/7771 and https://github.com/vitest-dev/vitest/issues/7474 <samp>(d9297)</samp>
    • Prevent modifying test.exclude when same object passed in coverage.exclude  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7774 <samp>(c3751)</samp>
    • Fix already hoisted mock  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7815 <samp>(773b1)</samp>
    • Fix test.scoped inheritance  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7814 <samp>(db6c3)</samp>
    • Remove pointer-events-none after resizing the left panel  -  by @alexprudhomme in https://github.com/vitest-dev/vitest/issues/7811 <samp>(a7e77)</samp>
    • Default to run mode when stdin is not a TTY  -  by @kentonv, @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7673 <samp>(6358f)</samp>
    • Use happy-dom/jsdom types for envionmentOptions  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7795 <samp>(67430)</samp>
    • browser:
      • Fix transform error before browser server initialization  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7783 <samp>(5f762)</samp>
      • Fix mocking from outside of root  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7789 <samp>(03f55)</samp>
      • Scale iframe for non ui case  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6512 <samp>(c3374)</samp>
    • coverage:
      • await profiler calls  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7763 <samp>(795a6)</samp>
      • Expose profiling timers  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7820 <samp>(5652b)</samp>
    • deps:
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7765 <samp>(7c3df)</samp>
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7831 <samp>(15701)</samp>
    • runner:
      • Correctly call test hooks and teardown functions  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7775 <samp>(3c00c)</samp>
      • Show stacktrace on test timeout error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7799 <samp>(df33b)</samp>
    • ui:
      • Load panel sizes from storage on initial load  -  by @userquin in https://github.com/vitest-dev/vitest/issues/7265 <samp>(6555d)</samp>
    • vite-node:
      • Named export should overwrite export all  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7846 <samp>(5ba0d)</samp>
      • Add ERR_MODULE_NOT_FOUND code error if module cannot be loaded  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7776 <samp>(f9eac)</samp>

       ๐ŸŽ Performance

    • browser: Improve browser parallelisation  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7665 <samp>(816a5)</samp>
        View changes on GitHub
    Open source โ†’
  20. 3.1.131 Mar 2025
    Release notes

       ๐Ÿž Bug Fixes

    • reporter:
      • Report tests in correct order  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 <samp>(b166e)</samp>
      • Print test only once in the verbose mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7738 <samp>(69ca4)</samp>
        View changes on GitHub
    Open source โ†’
  21. 3.1.031 Mar 2025
    Release notes

    ๐Ÿš€ Features

    • Introduce %$ option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 <samp>(df347)</samp>
    • Add diff.maxDepth option and set non-Infinity value as a default to reduce crash - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 <samp>(eacab)</samp>
    • Allow array element for test.each/for title formatting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 <samp>(ea3d6)</samp>
    • Add "configureVitest" plugin hook - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7349 <samp>(20a5d)</samp>
    • Support --configLoader CLI option - by @Carnageous and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7574 <samp>(2a852)</samp>
    • Added vitest-browser-lit to vitest init browser and docs - by @EskiMojo14 and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7705 <samp>(5659a)</samp>
    • Use providers request interception for module mocking - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7576 <samp>(7883a)</samp>
    • browser:
      • Introduce and, or and filter locators - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 <samp>(63949)</samp>
    • reporter:
      • Always render test time - by @AriPerkkio and @spamshaker in https://github.com/vitest-dev/vitest/issues/7529 <samp>(5eba6)</samp>
      • --silent=passed-only to log failed tasks only - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 <samp>(f9e1c)</samp>
    • runner:
      • Add test.scoped to override test.extend fixtures per-suite - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 <samp>(e5851)</samp>
    • vitest:
      • Allow conditional context.skip(boolean) - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 <samp>(6adec)</samp>
      • Support rolldown-vite in NormalizeUrlPlugin - by @sapphi-red and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7739 <samp>(1ef31)</samp>

    ๐Ÿž Bug Fixes

    • Update test stats regularly - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7700 <samp>(b7953)</samp>
    • Fix vm tests flakiness - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7741 <samp>(2702c)</samp>
    • Set diff.expand: false as default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7697 <samp>(f3420)</samp>
    • browser:
      • Correctly calculate timeout in hooks when actions are performed - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7747 <samp>(a5505)</samp>
    • deps:
      • Update all non-major dependencies - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7600 <samp>(7fc5a)</samp>
    • reporter:
      • --hideSkippedTests should hide suites too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 <samp>(ba9b5)</samp>
      • Report tests in correct order - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 <samp>(b166e)</samp>
      • Print test only once in the verbose mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7738 <samp>(69ca4)</samp>
    • snapshot:
      • Fix indent normalization - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7400 <samp>(82997)</samp>
      • This change can cause small amount of very old snapshots to be updated, but there will be no functional change to how they work.

    ๐ŸŽ Performance

    • browser: Fork jest-dom instead of bundling it - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7605 <samp>(12762)</samp>
    View changes on GitHub
    Open source โ†’
  22. 3.1.0-beta.221 Mar 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • Add "configureVitest" plugin hook  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7349 <samp>(20a5d)</samp>
    • browser: Introduce and, or and filter locators  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 <samp>(63949)</samp>
    • runner: Add test.scoped to override test.extend fixtures per-suite  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 <samp>(e5851)</samp>

       ๐Ÿž Bug Fixes

    • reporter: --hideSkippedTests should hide suites too  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 <samp>(ba9b5)</samp>
        View changes on GitHub
    Open source โ†’
  23. 3.1.0-beta.117 Mar 2025pre-release
    Release notes

       ๐Ÿš€ Features

    • Introduce %$ option to add number of the test to its title  -  by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 <samp>(df347)</samp>
    • Add diff.maxDepth option and set non-Infinity value as a default to reduce crash  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 <samp>(eacab)</samp>
    • Allow array element for test.each/for title formatting  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 <samp>(ea3d6)</samp>
    • reporter:
      • Always render test time  -  by @AriPerkkio and Michaล‚ Grzegorzewski in https://github.com/vitest-dev/vitest/issues/7529 <samp>(5eba6)</samp>
      • --silent=passed-only to log failed tasks only  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 <samp>(f9e1c)</samp>
    • vitest:
      • Allow conditional context.skip(boolean)  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 <samp>(6adec)</samp>
        View changes on GitHub
    Open source โ†’
  24. 3.0.917 Mar 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Typings of ctx.skip() as never  -  by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 <samp>(09f35)</samp>
    • Cleanup vitest in public resolveConfig API  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7623 <samp>(db14a)</samp>
    • Fix toHaveBeenCalledWith(asymmetricMatcher) with undefined arguments  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7624 <samp>(0fb21)</samp>
    • Race condition in RPC filesystem cache.  -  by @dts in https://github.com/vitest-dev/vitest/issues/7531 <samp>(b7f55)</samp>
    • Fix getState().testPath during collection with no isolation  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7640 <samp>(3fb3f)</samp>
    • Support custom toString method in %s format  -  by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7637 <samp>(46d93)</samp>
    • browser:
      • Fail playwright timeouts earlier than a test timeout  -  by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7565 <samp>(5eb4c)</samp>
      • Remove @testing-library/dom from dependencies #7555)"  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7628 and https://github.com/vitest-dev/vitest/issues/7555 <samp>(94b27)</samp>
    • coverage:
      • Browser mode + coverage.all  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7597 <samp>(422ba)</samp>
    • runner:
      • Show stacktrace on hook timeout error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7502 <samp>(268a1)</samp>
    • vite-node:
      • Fix source map of inlined node_modules  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7557 <samp>(34aa3)</samp>
      • Fix missing buildStart  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7652 <samp>(29f5a)</samp>
    • web-worker:
      • Ensure removeEventListener is bound to worker  -  by @joelgallant in https://github.com/vitest-dev/vitest/issues/7631 <samp>(ff42b)</samp>
        View changes on GitHub
    Open source โ†’
  25. 3.0.86 Mar 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Fix fetch cache multiple writes  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7546 <samp>(1a8b4)</samp>
    • Use browser.isolate instead of config.isolate  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7560 <samp>(4b5ed)</samp>
    • Remove vestigial spy stub, import directly from @vitest/spy  -  by @mrginglymus in https://github.com/vitest-dev/vitest/issues/7575 <samp>(7f7ff)</samp>
    • Correctly split the argv string  -  by @btea in https://github.com/vitest-dev/vitest/issues/7533 <samp>(4325a)</samp>
    • browser:
      • Remove @testing-library/dom from dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7555 <samp>(5387a)</samp>
      • Improve source map handling for bundled files  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7534 <samp>(e2c57)</samp>
      • Print related test file and potential test in unhandled errors  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7564 <samp>(fee90)</samp>
    • runner:
      • Fix beforeEach/All cleanup callback timeout  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7500 <samp>(0c292)</samp>
      • Fix and simplify Task.suite initialization  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7414 <samp>(ca9ff)</samp>
    • snapshot:
      • Allow inline snapshot calls on same location with same snapshot  -  by @jycouet and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7464 <samp>(d5cb8)</samp>
    • vite-node:
      • Fix buildStart on Vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7480 <samp>(c0f47)</samp>
        View changes on GitHub
    Open source โ†’
  26. 3.0.724 Feb 2025
    Release notes

       ๐Ÿž Bug Fixes

    • browser: Support webdriverio 9  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7553 <samp>(b1949)</samp>
    • deps: Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7543 <samp>(365ff)</samp>
    • expect: Correct generic MatchersObject this type in expect.extend  -  by @Workingstiff-s in https://github.com/vitest-dev/vitest/issues/7526 <samp>(d5765)</samp>
    • mocker: Include more modules to prefix-only module list  -  by @btea in https://github.com/vitest-dev/vitest/issues/7524 <samp>(a12ec)</samp>
    • spy: Clear/reset/restore mocks in stack order  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7499 <samp>(f7100)</samp>

       ๐ŸŽ Performance

    • browser: Do wdio context switching only once per file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7549 <samp>(aaa58)</samp>
        View changes on GitHub
    Open source โ†’
  27. 3.0.618 Feb 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Fix getMockedSystemTime for useFakeTimer  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7405 <samp>(03912)</samp>
    • Compat for jest-image-snapshot  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7390 <samp>(9542b)</samp>
    • Ensure project names are readable in dark terminals  -  by @rgrove in https://github.com/vitest-dev/vitest/issues/7371 <samp>(bb94c)</samp>
    • Exclude queueMicrotask from default fake timers to not break node fetch  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7505 <samp>(167a9)</samp>
    • Use tinyglobby instead of fast-glob  -  by @benmccann in https://github.com/vitest-dev/vitest/issues/7504 <samp>(b62ac)</samp>
    • browser:
      • Fix mocking modules out of root  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7415 <samp>(d3acb)</samp>
      • Fix toHaveClass typing  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7383 <samp>(7ef23)</samp>
      • Relax locator selectors methods  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7422 <samp>(1b8c5)</samp>
      • Resolve thread count from maxWorkers  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7483 <samp>(adbb2)</samp>
      • Cleanup timeout on resolve and give more information in the error  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7487 <samp>(5a45a)</samp>
    • coverage:
      • vite-node to pass correct execution wrapper offset  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7417 <samp>(1f2e5)</samp>
      • Preserve moduleExecutionInfo in non-isolated runs  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7486 <samp>(f31a0)</samp>
    • deps:
      • Update all non-major dependencies  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7363 <samp>(e348b)</samp>
      • Update all non-major dependencies  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7507 <samp>(6cc40)</samp>
    • init:
      • Invalid browser config  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7475 <samp>(8fe64)</samp>
    • reporters:
      • Render tasks in tree when in TTY  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7503 <samp>(027ce)</samp>
    • vite-node:
      • Remove fake first line mapping on Vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7124 <samp>(b9973)</samp>
    • watch:
      • Properly remove cache after removing existing test files  -  by @soc221b in https://github.com/vitest-dev/vitest/issues/7399 <samp>(01a59)</samp>
    • workspace:
      • Forward inspect related cli options  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7373 <samp>(ed15b)</samp>
        View changes on GitHub
    Open source โ†’
  28. 3.0.53 Feb 2025
    Release notes

    This release includes security patches for:

    ๐Ÿš€ Features

    • ui: Insert message "no tests found" in ui - by @DevJoaoLopes in https://github.com/vitest-dev/vitest/issues/7366 <samp>(92da4)</samp>

    ๐Ÿž Bug Fixes

    • Validate websocket request - by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7317 <samp>(191ef)</samp>
    • Don't toggle cli cursor on non-TTY - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7336 <samp>(3c805)</samp>
    • vite-node: Differentiate file url with hash and query - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7365 <samp>(926ca)</samp>
    View changes on GitHub
    Open source โ†’
  29. 3.0.423 Jan 2025
    Release notes

    This release includes security patches for:

       ๐Ÿž Bug Fixes

    • Filter projects eagerly during config resolution  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7313 <samp>(dff44)</samp>
    • Apply development|production condition on Vites 6 by @hi-ogawa and @sheremet-va (#7301) <samp>(ef146)</samp>
    • browser: Restrict served files from /__screenshot-error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7340 <samp>(ed9ae)</samp>
    • deps: Update all non-major dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7297 <samp>(38ea8)</samp>
    • runner: Timeout long sync hook  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7289 <samp>(c60ee)</samp>
    • typechecking: Support typechecking parsing with Vite 6  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7335 <samp>(bff70)</samp>
    • types: Fix public types  -  by @mrginglymus and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7328 <samp>(ce6af)</samp>
        View changes on GitHub
    Open source โ†’
  30. 3.0.321 Jan 2025
    Release notes

       ๐Ÿž Bug Fixes

    • browser:
      • Don't throw a validation error if v8 coverage is used with filtered instances  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7306 <samp>(fa463)</samp>
      • Don't fail when running --browser.headless if the browser projest is part of the workspace  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7311 <samp>(e43a8)</samp>

       ๐ŸŽ Performance

    • reporters: Update summary only when needed  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7291 <samp>(7f36b)</samp>
        View changes on GitHub
    Open source โ†’
  31. 3.0.217 Jan 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Don't await an empty timeout after every test  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7281 <samp>(ef1aa)</samp>
    • expect: Fix expect().resolves/rejects chain typings  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7273 <samp>(fa415)</samp>
        View changes on GitHub
    Open source โ†’
  32. 3.0.116 Jan 2025
    Release notes

       ๐Ÿž Bug Fixes

    • Revert "fix: re-apply default conditions if using vite 6 or later (https://github.com/vitest-dev/vitest/issues/7071)"  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7071 and https://github.com/vitest-dev/vitest/issues/7271 <samp>(755ec)</samp>
    • deps: Update all non-major dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7147 <samp>(537fa)</samp>
        View changes on GitHub
    Open source โ†’
  33. 3.0.016 Jan 2025
    Release notes

    Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the documentation.

       ๐Ÿšจ Breaking Changes

    • spy.mockReset changes  -  by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 <samp>(db7a8)</samp>
    • Pass down context to test hooks  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7034 <samp>(82c2e)</samp>
    • Support Vite 6  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7026 <samp>(7abe8)</samp>
    • coverage: Always exclude test files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7254 <samp>(b5268)</samp>
    • deps: Update fake-timers to v14.0.0  -  by @xxzefgh and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7097 <samp>(c98b4)</samp>
    • expect: Check more properties for error equality  -  by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5876 <samp>(10023)</samp>
    • runner: Support describe(..., { shuffle: boolean }) and inherit from parent suite  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 <samp>(aa1da)</samp>
    • snapshot: Reset snapshot state for retry and repeats  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 <samp>(e8ce9)</samp>
    • spy: SpyOn reuses mock if method is already spyed on  -  by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6464 <samp>(b3e43)</samp>
    • vitest: Don't expose default toFake config  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6288 <samp>(e3144)</samp>

       ๐Ÿš€ Features

    • Support inline diff options and support printBasicPrototype  -  by @hi-ogawa, @sheremet-va and Michaล‚ Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>
    • Allow a custom note when calling ctx.skip() dynamically  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>
    • Allow inline workspace configuration  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6923 <samp>(562e1)</samp>
    • Provide the current project to the global setup  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6942 <samp>(a5bbc)</samp>
    • Print project name as a label  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6925 <samp>(a3bef)</samp>
    • Print a deprecation warning if suite or test uses object as the third argument  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7031 <samp>(407f1)</samp>
    • Expose versions from vitest/node entry point and statically on Vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 <samp>(be8d4)</samp>
    • diff.printBasicPrototype: false by default  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 <samp>(2b5c5)</samp>
    • Prepare the Vitest API to be stable  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6962 <samp>(9a1b5)</samp>
    • Support Vite v6 in mocker package  -  by @cexbrayat in https://github.com/vitest-dev/vitest/issues/7058 <samp>(96f47)</samp>
    • Allow multi-browser configuration  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6975 <samp>(78b62)</samp>
    • Add resolved project names to the reporter API  -  by @userquin in https://github.com/vitest-dev/vitest/issues/7213 <samp>(91758)</samp>
    • Introduce the new reporter API  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7069 <samp>(76662)</samp>
    • Add describe.for  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7253 <samp>(0ad28)</samp>
    • api:
      • Add onBrowserInit event  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7255 <samp>(80ce0)</samp>
    • browser:
      • Support actionTimeout as playwright provider options  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 <samp>(e2c29)</samp>
      • Support clipboard api userEvent.copy, cut, paste  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 <samp>(843a6)</samp>
      • Implement locator.nth()  -  by @xeger and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7137 <samp>(38458)</samp>
    • cli:
      • Support excluding projects with --project=!pattern  -  by @haines in https://github.com/vitest-dev/vitest/issues/6924 <samp>(ebfe9)</samp>
      • Support specifying a line number when filtering tests  -  by @mzhubail and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6411 <samp>(4d94b)</samp>
      • Support location filters for suites  -  by @mzhubail in https://github.com/vitest-dev/vitest/issues/7048 <samp>(751e2)</samp>
    • coverage:
      • thresholds to support maximum uncovered items  -  by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 <samp>(bde98)</samp>
    • expect:
      • Add toHaveBeenCalledExactlyOnceWith expect matcher  -  by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>
      • Add toHaveBeenCalledAfter and toHaveBeenCalledBefore utility  -  by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>
      • Add toSatisfy asymmetric matcher  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 <samp>(f691a)</samp>
      • Add toBeOneOf matcher  -  by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 <samp>(3d742)</samp>
    • reporter:
      • Add support for function type to classname option in the junit reporter  -  by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 <samp>(dc238)</samp>
    • reporters:
      • summary option for verbose and default reporters  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>
    • runner:
      • Test context can inject values from the config's provide  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>
      • Add "queued" state  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6931 <samp>(5f8d2)</samp>
    • snapshot:
      • Provide config to resolveSnapshotPath  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>
    • ui:
      • Allow run individual tests/suites from the UI  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6641 <samp>(d9cc8)</samp>
      • Make clicking on a test in the UI open the report section and scroll to the test failure if applicable  -  by @jacoberdman2147 in https://github.com/vitest-dev/vitest/issues/6900 <samp>(1bf27)</samp>
      • Allow hide/show node_modules in module graph tab  -  by @userquin in https://github.com/vitest-dev/vitest/issues/7217 <samp>(50cf6)</samp>
    • vitest:
      • Include coverageMap in json report  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>
      • Add onTestsRerun method to global setup context  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>

       ๐Ÿž Bug Fixes

    • Misc fix for vite 6 ecosystem ci  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 <samp>(80f8b)</samp>
    • Respect cacheDir when optimizer is enabled  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>
    • Reset runningPromise after finally in case there is an error to avoid it getting stuck  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 <samp>(02194)</samp>
    • Revert support for Vite 6  -  by @sheremet-va <samp>(fbe5c)</samp>
    • Support Node 21  -  by @sheremet-va <samp>(92f7a)</samp>
    • Don't use Custom type internally  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7032 <samp>(7957f)</samp>
    • Persist cli filters as watch mode file filter  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6955 <samp>(cc703)</samp>
    • Don't use dim color for succeeded tests  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7059 <samp>(8a6f5)</samp>
    • Fix missing chai types  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7149 <samp>(6a09c)</samp>
    • cancelCurrentRun awaits runningPromise  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 <samp>(1dbf5)</samp>
    • Add Locator typings for nth, first and last.  -  by @xeger in https://github.com/vitest-dev/vitest/issues/7176 <samp>(d262e)</samp>
    • Batch console logs by microtask  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7183 <samp>(53d1d)</samp>
    • Allow getMockImplementation to return "once" implementation  -  by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 <samp>(39125)</samp>
    • capturePrintError logger duplicate event handlers  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7197 <samp>(e89c3)</samp>
    • Allow slots in vitest-browser-vue  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7120 <samp>(2319f)</samp>
    • Reset root workspace project on restart  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7238 <samp>(6e518)</samp>
    • Cleanup vitest/reporters entrypoint  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7241 <samp>(aec0b)</samp>
    • Colors on forks pool  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7090 <samp>(8cab9)</samp>
    • Export VitestRunner type from vitest/runners  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7240 <samp>(9b218)</samp>
    • Return test fn result to runner  -  by @wmertens in https://github.com/vitest-dev/vitest/issues/7239 <samp>(48645)</samp>
    • Re-apply default conditions if using vite 6 or later  -  by @thebanjomatic, thebanjomatic and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7071 <samp>(84287)</samp>
    • Prevent infinite loop on prettyDOM calls  -  by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7250 <samp>(a3a46)</samp>
    • api:
      • Don't report events during vitest list  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7257 <samp>(1c2b2)</samp>
    • benchmark:
      • Disable type testing while benchmarking  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7068 <samp>(4e603)</samp>
      • Rewrite reporter without log-update  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 <samp>(6d23f)</samp>
    • browser:
      • Improve source maps when vi.mock is present  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>
      • Explain TypeScript support in docs and add asymmetric matchers to types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6934 <samp>(ac1a7)</samp>
      • Fix matchers.d.ts  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6995 <samp>(a485b)</samp>
      • Fix user event state on preview provider  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7041 <samp>(8e944)</samp>
      • Fix provider options types  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7115 <samp>(579bd)</samp>
      • Only use locator.element on last expect.element attempt  -  by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7139 and https://github.com/vitest-dev/vitest/issues/7152 <samp>(847d3)</samp>
      • Use correct project when filtering entries in the browser mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 <samp>(423d6)</samp>
      • Fix console.time with fake timers  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7207 <samp>(903f3)</samp>
      • Add instance validation to resolve coverage error  -  by @DevJoaoLopes and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7231 <samp>(1e791)</samp>
    • coverage:
      • Exclude browser mode iframe results  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 <samp>(e04a1)</samp>
      • Correct coverage when isolate: false is used  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 <samp>(426ce)</samp>
      • Prevent crash when v8 incorrectly merges static_initializer's  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7150 <samp>(cb6db)</samp>
    • deps:
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7085 <samp>(8cc92)</samp>
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7116 <samp>(de5ce)</samp>
      • Update dependency pathe to v2  -  in https://github.com/vitest-dev/vitest/issues/7181 <samp>(74dbe)</samp>
    • diff:
      • Truncate to avoid crash on diff large objects  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7133 <samp>(2a9d6)</samp>
    • junit:
      • Fix testsuites time to be sum of all testsuite items  -  by @saitonakamura in https://github.com/vitest-dev/vitest/issues/6985 <samp>(ca37a)</samp>
    • pretty-format:
      • Support react 19  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 <samp>(bd29b)</samp>
    • reporters:
      • Write buffered stdout/stderr on process exit  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6932 <samp>(80cde)</samp>
      • Rewrite dot reporter without log-update  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 <samp>(be969)</samp>
      • Check --hideSkippedTests in base reporter  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 <samp>(721a5)</samp>
      • Show retry and repeats counts  -  by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 <samp>(3496a)</samp>
    • runner:
      • Long synchronous tasks does not time out  -  by @ferdodo and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2920 and https://github.com/vitest-dev/vitest/issues/6944 <samp>(2fb58)</samp>
      • Mark tests of describe.todo as 'todo'  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 <samp>(1d458)</samp>
    • snapshot:
      • Fix "obsolete" message on snapshot update re-run  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7129 <samp>(c2beb)</samp>
      • Preserve white space of toMatchFileSnapshot  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 <samp>(a437b)</samp>
      • Fix obsoleteness check of toMatchSnapshot("...")  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 <samp>(ac9ba)</samp>
    • typecheck:
      • Fix typecheck collect on Vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6972 <samp>(7b35d)</samp>
      • Use unique temp and tsbuildinfo file for each tsconfig file  -  by @masnormen in https://github.com/vitest-dev/vitest/issues/7107 and https://github.com/vitest-dev/vitest/issues/7112 <samp>(61b30)</samp>
      • Fix error test case mapping for @ts-expect-error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 <samp>(27d34)</samp>
    • types:
      • Make parameters non-nullable for Playwright options  -  by @apple-yagi in https://github.com/vitest-dev/vitest/issues/6989 <samp>(fe2a1)</samp>
    • ui:
      • Wrong module graph when generating html.meta.json.gz in browser mode  -  by @userquin in https://github.com/vitest-dev/vitest/issues/7214 <samp>(dccdd)</samp>
      • Add errors and draft state (*) to the code editor  -  by @userquin in https://github.com/vitest-dev/vitest/issues/7044 <samp>(faca4)</samp>
    • vite-node:
      • Fix error stack on Windows  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6786 <samp>(bf7b3)</samp>
      • Properly normalize file url import  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7087 <samp>(31675)</samp>
      • Fix mandatory node prefix  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7179 <samp>(b6284)</samp>
    • watch:
      • Don't indicate exit when no matching files  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7246 <samp>(003c0)</samp>
    • workspace:
      • extends: true correctly inherits all root config properties  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7232 <samp>(798c0)</samp>
        View changes on GitHub
    Open source โ†’
  34. 3.0.0-beta.48 Jan 2025pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • deps: Update fake-timers to v14.0.0  -  by @xxzefgh and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7097 <samp>(c98b4)</samp>

       ๐Ÿš€ Features

    • browser:
      • Support clipboard api userEvent.copy, cut, paste  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 <samp>(843a6)</samp>
      • Implement locator.nth()  -  by @xeger and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7137 <samp>(38458)</samp>

       ๐Ÿž Bug Fixes

    • Fix missing chai types  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7149 <samp>(6a09c)</samp>
    • cancelCurrentRun awaits runningPromise  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 <samp>(1dbf5)</samp>
    • Add Locator typings for nth, first and last.  -  by @xeger in https://github.com/vitest-dev/vitest/issues/7176 <samp>(d262e)</samp>
    • Batch console logs by microtask  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7183 <samp>(53d1d)</samp>
    • Allow getMockImplementation to return "once" implementation  -  by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 <samp>(39125)</samp>
    • benchmark:
      • Rewrite reporter without log-update  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 <samp>(6d23f)</samp>
    • browser:
      • Fix provider options types  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7115 <samp>(579bd)</samp>
      • Only use locator.element on last expect.element attempt  -  by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7139 and https://github.com/vitest-dev/vitest/issues/7152 <samp>(847d3)</samp>
      • Use correct project when filtering entries in the browser mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 <samp>(423d6)</samp>
    • coverage:
      • Prevent crash when v8 incorrectly merges static_initializer's  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7150 <samp>(cb6db)</samp>
    • deps:
      • Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7116 <samp>(de5ce)</samp>
      • Update dependency pathe to v2  -  in https://github.com/vitest-dev/vitest/issues/7181 <samp>(74dbe)</samp>
    • diff:
      • Truncate to avoid crash on diff large objects  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7133 <samp>(2a9d6)</samp>
    • runner:
      • Mark tests of describe.todo as 'todo'  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 <samp>(1d458)</samp>
    • snapshot:
      • Fix "obsolete" message on snapshot update re-run  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7129 <samp>(c2beb)</samp>
      • Preserve white space of toMatchFileSnapshot  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 <samp>(a437b)</samp>
      • Fix obsoleteness check of toMatchSnapshot("...")  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 <samp>(ac9ba)</samp>
    • typecheck:
      • Use unique temp and tsbuildinfo file for each tsconfig file  -  by @masnormen in https://github.com/vitest-dev/vitest/issues/7107 and https://github.com/vitest-dev/vitest/issues/7112 <samp>(61b30)</samp>
      • Fix error test case mapping for @ts-expect-error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 <samp>(27d34)</samp>
    • vite-node:
      • Properly normalize file url import  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7087 <samp>(31675)</samp>
      • Fix mandatory node prefix  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7179 <samp>(b6284)</samp>
        View changes on GitHub
    Open source โ†’
  35. 3.0.0-beta.320 Dec 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • Support Vite v6 in mocker package  -  by @cexbrayat in https://github.com/vitest-dev/vitest/issues/7058 <samp>(96f47)</samp>
    • Allow multi-browser configuration  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6975 <samp>(78b62)</samp>
    • coverage: thresholds to support maximum uncovered items  -  by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 <samp>(bde98)</samp>
    • expect: Add toBeOneOf matcher  -  by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 <samp>(3d742)</samp>
    • runner: Add "queued" state  -  by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6931 <samp>(5f8d2)</samp>

       ๐Ÿž Bug Fixes

    • Don't use dim color for passed tests  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7059 <samp>(8a6f5)</samp>
    • benchmark: Disable type testing while benchmarking  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7068 <samp>(4e603)</samp>
    • deps: Update all non-major dependencies  -  in https://github.com/vitest-dev/vitest/issues/7085 <samp>(8cc92)</samp>
        View changes on GitHub
    Open source โ†’
  36. 3.0.0-beta.210 Dec 2024pre-release
    Release notes

       ๐Ÿšจ Breaking Changes

    • expect: Check more properties for error equality  -  by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5876 <samp>(10023)</samp>
    • spy: SpyOn reuses mock if method is already spyed on  -  by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6464 <samp>(b3e43)</samp>

       ๐Ÿš€ Features

    • Expose versions from vitest/node entry point and statically on Vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 <samp>(be8d4)</samp>
    • diff.printBasicPrototype: false by default  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 <samp>(2b5c5)</samp>
    • Prepare the Vitest API to be stable  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6962 <samp>(9a1b5)</samp>
    • cli: Support location filters for suites  -  by @mzhubail in https://github.com/vitest-dev/vitest/issues/7048 <samp>(751e2)</samp>
    • expect: Add toSatisfy asymmetric matcher  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 <samp>(f691a)</samp>
    • ui: Make clicking on a test in the UI open the report section and scroll to the test failure if applicable  -  by @jacoberdman2147 in https://github.com/vitest-dev/vitest/issues/6900 <samp>(1bf27)</samp>

       ๐Ÿž Bug Fixes

    • Persist cli filters as watch mode file filter  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6955 <samp>(cc703)</samp>
    • browser: Fix user event state on preview provider  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7041 <samp>(8e944)</samp>
    • coverage: Correct coverage when isolate: false is used  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 <samp>(426ce)</samp>
    • runner: Long synchronous tasks does not time out  -  by @ferdodo and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2920 and https://github.com/vitest-dev/vitest/issues/6944 <samp>(2fb58)</samp>
        View changes on GitHub
    Open source โ†’
  37. 3.0.0-beta.15 Dec 2024pre-release
    Release notes

    We decided to skip Vitest 2.2 and release Vitest 3 with support for Vite 6 instead. There will be no more Vitest 2 versions. Vitest 3 is the first version that supports Vite 6 (excluding 2.1.6). We aim to have a stable release in January.

    Vitest 3 is our first step to standardising the public Node.js API. We plan to remove the experimental tag from the current APIs in Vitest 3.1 - the API will follow semver after that.

       ๐Ÿšจ Breaking Changes

    • spy.mockReset changes  -  by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 <samp>(db7a8)</samp>
    • Pass down context to test hooks  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7034 <samp>(82c2e)</samp>
    • Support Vite 6  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7026 <samp>(7abe8)</samp>
    • runner: Support describe(..., { shuffle: boolean }) and inherit from parent suite  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 <samp>(aa1da)</samp>
    • snapshot: Reset snapshot state for retry and repeats  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 <samp>(e8ce9)</samp>
    • vitest: Don't expose default toFake config  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6288 <samp>(e3144)</samp>

       ๐Ÿš€ Features

    • Support inline diff options and support printBasicPrototype  -  by @hi-ogawa, @sheremet-va and Michaล‚ Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>
    • Allow a custom note when calling ctx.skip() dynamically  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>
    • Allow inline workspace configuration  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6923 <samp>(562e1)</samp>
    • Provide the current project to the global setup  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6942 <samp>(a5bbc)</samp>
    • Print project name as a label  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6925 <samp>(a3bef)</samp>
    • Print a deprecation warning if suite or test uses object as the third argument  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7031 <samp>(407f1)</samp>
    • browser:
      • Support actionTimeout as playwright provider options  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 <samp>(e2c29)</samp>
    • cli:
      • Support excluding projects with --project=!pattern  -  by @haines in https://github.com/vitest-dev/vitest/issues/6924 <samp>(ebfe9)</samp>
      • Support specifying a line number when filtering tests  -  by @mzhubail and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6411 <samp>(4d94b)</samp>
    • expect:
      • Add toHaveBeenCalledExactlyOnceWith expect matcher  -  by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>
      • Add toHaveBeenCalledAfter and toHaveBeenCalledBefore utility  -  by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>
    • reporter:
      • Add support for function type to classname option in the junit reporter  -  by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 <samp>(dc238)</samp>
    • reporters:
      • summary option for verbose and default reporters  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>
    • runner:
      • Test context can inject values from the config's provide  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>
    • snapshot:
      • Provide config to resolveSnapshotPath  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>
    • ui:
      • Allow run individual tests/suites from the UI  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6641 <samp>(d9cc8)</samp>
    • vitest:
      • Include coverageMap in json report  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>
      • Add onTestsRerun method to global setup context  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>

       ๐Ÿž Bug Fixes

    • Misc fix for vite 6 ecosystem ci  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 <samp>(80f8b)</samp>
    • Respect cacheDir when optimizer is enabled  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>
    • Reset runningPromise after finally in case there is an error to avoid it getting stuck  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 <samp>(02194)</samp>
    • Support Node 21  -  by @sheremet-va <samp>(92f7a)</samp>
    • Don't use Custom internally  -  by @sheremet-va <samp>(46fc5)</samp>
    • browser:
      • Improve source maps when vi.mock is present  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>
      • Explain TypeScript support in docs and add asymmetric matchers to types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6934 <samp>(ac1a7)</samp>
      • Fix matchers.d.ts  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6995 <samp>(a485b)</samp>
    • coverage:
      • Exclude browser mode iframe results  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 <samp>(e04a1)</samp>
    • junit:
      • Fix testsuites time to be sum of all testsuite items  -  by @saitonakamura in https://github.com/vitest-dev/vitest/issues/6985 <samp>(ca37a)</samp>
    • pretty-format:
      • Support react 19  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 <samp>(bd29b)</samp>
    • reporters:
      • Write buffered stdout/stderr on process exit  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6932 <samp>(80cde)</samp>
      • Rewrite dot reporter without log-update  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 <samp>(be969)</samp>
      • Check --hideSkippedTests in base reporter  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 <samp>(721a5)</samp>
      • Show retry and repeats counts  -  by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 <samp>(3496a)</samp>
    • typecheck:
      • Fix typecheck collect on Vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6972 <samp>(7b35d)</samp>
    • types:
      • Make parameters non-nullable for Playwright options  -  by @apple-yagi in https://github.com/vitest-dev/vitest/issues/6989 <samp>(fe2a1)</samp>
    • vite-node:
      • Fix error stack on Windows  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6786 <samp>(bf7b3)</samp>
        View changes on GitHub
    Open source โ†’
  38. 2.2.0-beta.218 Nov 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • reporter: Add support for function type to classname option in the junit reporter  -  by @jpleclerc, Jean-Philippe Leclerc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 <samp>(dc238)</samp>
    • reporters: summary option for verbose and default reporters  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 <samp>(511b7)</samp>
    • ui: Allow run individual tests/suites from the UI  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6641 <samp>(d9cc8)</samp>

       ๐Ÿž Bug Fixes

    • Misc fix for vite 6 ecosystem ci  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 <samp>(80f8b)</samp>
    • Respect cacheDir when optimizer is enabled  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 <samp>(0b08b)</samp>
    • coverage: Exclude browser mode iframe results  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 <samp>(e04a1)</samp>
    • pretty-format: Support react 19  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 <samp>(bd29b)</samp>
        View changes on GitHub
    Open source โ†’
  39. 2.2.0-beta.113 Nov 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • Support inline diff options and support printBasicPrototype  -  by @hi-ogawa, @sheremet-va and Michaล‚ Grzegorzewski in https://github.com/vitest-dev/vitest/issues/6740 <samp>(39186)</samp>
    • Allow a custom note when calling ctx.skip() dynamically  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 <samp>(697c3)</samp>
    • expect:
      • Add toHaveBeenCalledExactlyOnceWith expect matcher  -  by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 <samp>(ff662)</samp>
      • Add toHaveBeenCalledAfter and toHaveBeenCalledBefore utility  -  by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 <samp>(85e6f)</samp>
    • runner:
      • Test context can inject values from the config's provide  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 <samp>(85c64)</samp>
    • snapshot:
      • Provide config to resolveSnapshotPath  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 <samp>(746d8)</samp>
    • vitest:
      • Include coverageMap in json report  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 <samp>(9c8f7)</samp>
      • Add onTestsRerun method to global setup context  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 <samp>(e26e0)</samp>

       ๐Ÿž Bug Fixes

    • browser: Improve source maps when vi.mock is present  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 <samp>(8d179)</samp>
        View changes on GitHub
    Open source โ†’
  40. 2.1.93 Feb 2025
    Release notes

    This release includes security patches for:

       ๐Ÿž Bug Fixes

    • backport https://github.com/vitest-dev/vitest/issues/7317 to v2 - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7318
    • (backport #7340 to v2) restrict served files from /__screenshot-error - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7343
        View changes on GitHub
    Open source โ†’
  41. 2.1.82 Dec 2024
    Release notes

       ๐Ÿž Bug Fixes

        View changes on GitHub
    Open source โ†’
  42. 2.1.72 Dec 2024
    Release notes

       ๐Ÿž Bug Fixes

    • Revert support for Vite 6  -  by @sheremet-va <samp>(fbe5c)</samp>
      • This introduced some breaking changes (https://github.com/vitest-dev/vitest/issues/6992). We will enable support for it later. In the meantime, you can still use pnpm.overrides or yarn resolutions to override the vite version in the vitest package - the APIs are compatible.
        View changes on GitHub
    Open source โ†’
  43. 2.1.626 Nov 2024
    Release notes

    ๐Ÿš€ Features

    • Support Vite 6
        View changes on GitHub
    Open source โ†’
  44. 2.1.513 Nov 2024
    Release notes

       ๐Ÿž Bug Fixes

    • dangerouslyIgnoreUnhandledErrors without base reporter  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6808 <samp>(0bf0a)</samp>
    • Capture unhandledRejection even when base reporter is not used  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6812 <samp>(8878b)</samp>
    • Don't change the working directory when loading workspace projects  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6811 <samp>(f0aea)</samp>
    • Remove sequence.concurrent from the RuntimeConfig type  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6880 <samp>(6af73)</samp>
    • Stop the runner before restarting, restart on workspace config change  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6859 <samp>(b01df)</samp>
    • Don't rerun on Esc or Ctrl-C during watch filter  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6895 <samp>(98f76)</samp>
    • Print ssrTransform error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6885 <samp>(4c96c)</samp>
    • Throw an error and a warning if .poll, .element, .rejects/.resolves, and locator.* weren't awaited  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6877 <samp>(93b67)</samp>
    • browser:
      • Don't process the default css styles  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6861 <samp>(0d67f)</samp>
      • Support non US key input  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6873 <samp>(5969d)</samp>
      • Stop the browser rpc when the pool is closed  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6858 <samp>(9a0c9)</samp>
      • Init browsers eagerly when tests are running  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6876 <samp>(417bd)</samp>
    • coverage:
      • Report uncovered files when re-run by enter or 'a'  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6848 <samp>(487c8)</samp>
    • ui:
      • Remove crossorigin attributes for same origin assets  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6883 <samp>(6e793)</samp>
    • vite-node:
      • Improve esm check to decide external  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6816 <samp>(7e1fa)</samp>
      • Top-level throw in module is not reported properly  -  by @vanaigr and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6840 <samp>(cf0cb)</samp>
    • vitest:
      • Use fetch() implementation from happy-dom  -  by @capricorn86 in https://github.com/vitest-dev/vitest/issues/6879 <samp>(3c56f)</samp>

       ๐ŸŽ Performance

    • Limit workspace project concurrency to available cores  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6869 <samp>(f4c04)</samp>
        View changes on GitHub
    Open source โ†’
  45. 2.1.428 Oct 2024
    Release notes

       ๐Ÿš€ Features

    This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up releases like this, make sure to pin the Vitest version in your package.json. See npm's documentation about semver for more information.

    • browser: Allow custom HTML path, respect plugins transformIndexHtml  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6725 <samp>(16902)</samp>

       ๐Ÿž Bug Fixes

    • windows:
      • Don't normalize drive case letter in root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6792 <samp>(b28cd)</samp>
    • browser:
      • Fix default browser port  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6700 <samp>(9c518)</samp>
      • Optimize expect-type  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6713 <samp>(07918)</samp>
      • Don't polyfill process.env  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6718 <samp>(da6d2)</samp>
      • Increment browser port automatically if there are several projects with browser.enabled  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6717 <samp>(a9397)</samp>
      • Cleanup keyboard state  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6731 <samp>(19278)</samp>
      • Don't add v= queries to setup files imports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6759 <samp>(b8258)</samp>
      • User event cleanup on retry  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6764 <samp>(bdd15)</samp>
      • Ignore non mocked msw requests  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6770 <samp>(9d9ba)</samp>
      • Initiate MSW in the same frame as tests  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6772 <samp>(2444f)</samp>
    • deps:
      • Update dependency sirv to v3  -  in https://github.com/vitest-dev/vitest/issues/6701 <samp>(fde5d)</samp>
    • expect:
      • Correct behavior of toThrowError with empty string parameter  -  by @shulaoda in https://github.com/vitest-dev/vitest/issues/6710 <samp>(a6129)</samp>
    • mocker:
      • Remove spy from peer dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6777 <samp>(3a8b5)</samp>
    • vitest:
      • Clarify slowTestThreshold, print slow tests in non-TTY mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6715 <samp>(2e6aa)</samp>
      • Print warnings form Vite plugins  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6724 <samp>(121b1)</samp>
      • Don't fail if the working directory starts with a lowercase drive letter  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6779 <samp>(df6d7)</samp>
      • Silence import analysis warning  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6785 <samp>(39041)</samp>
    • vitest,runner:
      • Simplify test.extend type exports  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6707 <samp>(e5c38)</samp>

       ๐ŸŽ Performance

    • Use hash to replace createHash  -  by @btea in https://github.com/vitest-dev/vitest/issues/6703 <samp>(5d07b)</samp>
        View changes on GitHub
    Open source โ†’
  46. 2.1.314 Oct 2024
    Release notes

       ๐Ÿž Bug Fixes

    • Fix error diff of toBeNaN, toBeUndefined, toBeNull, toBeTruthy, toBeFalsy  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6697 <samp>(e0027)</samp>
    • browser:
      • Provide aria role intellisense  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6629 <samp>(f36ea)</samp>
      • Not.toBeInTheDocument works with locators API  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6634 <samp>(8bef5)</samp>
      • Use /mockServiceWorker.js instead of /__vitest_msw__  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6687 <samp>(4b2ce)</samp>
      • Don't override the esbuild option in the browser mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6692 <samp>(d131f)</samp>
    • expect:
      • Preserve prototype in toMatchObject diff  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6620 <samp>(d289e)</samp>
    • mocker:
    • runner:
      • Ensure sequential suite overrides sequence.concurrent  -  by @dsyddall and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6653 <samp>(5e6de)</samp>
    • vitest:
      • Deprecate UserConfig in favor of ViteUserConfig  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6626 <samp>(496bd)</samp>
      • Don't hang with maxConcurrency 0  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6627 <samp>(946d8)</samp>
      • Deprecate old task types and node-reliant types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6632 <samp>(00045)</samp>
      • Fix <empty line> logs when interleaving console.log/error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6644 <samp>(9ece3)</samp>
      • Show rollup error details as test error  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6686 <samp>(47dde)</samp>
      • Always inline setup files  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6689 <samp>(19d64)</samp>
      • Use fast-glob instead of tinyglobby in Vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6688 <samp>(70baa)</samp>
    • web-worker:
      • Share mocker with main executor  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6623 <samp>(fe7b8)</samp>

       ๐ŸŽ Performance

    • Reuse full name in reported tasks, update generator types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6666 <samp>(7a0de)</samp>
        View changes on GitHub
    Open source โ†’
  47. 2.1.22 Oct 2024
    Release notes

       ๐Ÿž Bug Fixes

    • Move Vitest.setServer to post configureServer hook to enable import analysis for workspace config loading  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6584 <samp>(e7f35)</samp>
    • benchmark:
      • Clear BenchmarkResult.samples array to reduce memory usage  -  by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6541 <samp>(a6407)</samp>
    • browser:
      • Fix dynamic import inside worker  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6569 <samp>(ea2d4)</samp>
      • Fix browser mock factory event race condition  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6530 <samp>(f131f)</samp>
      • Serve ui assets as static  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6564 <samp>(adcda)</samp>
      • Update solidjs testing library lib  -  by @CamilleTeruel in https://github.com/vitest-dev/vitest/issues/6548 <samp>(91442)</samp>
      • Use data: protocol on preview provider file upload  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6501 <samp>(e9821)</samp>
      • Fix base for client script  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6510 <samp>(f9528)</samp>
      • Throw an error if "@vitest/browser/context" is imported outside of the browser mode  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6570 <samp>(383f1)</samp>
    • coverage:
      • Remove empty coverage folder on test failure too  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6547 <samp>(1371c)</samp>
      • Include *.astro by default  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6565 <samp>(f8ff7)</samp>
      • cleanOnRerun: false to invalidate previous results  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6592 <samp>(88bde)</samp>
    • expect:
      • Fix toBeDefined with expect.poll  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6562 <samp>(f7da6)</samp>
    • forks:
      • Fix --cpu-prof and --heap-prof not working by default  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/pull/6555 <samp>(2e4d894)</samp>
    • runner:
      • Mark tests as skipped when beforeAll failed  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6524 <samp>(fb797)</samp>
      • Support fixture parsing of lowered async syntax  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6531 <samp>(b553c)</samp>
      • Fix fixture parsing of lowered async syntax for non arrow functions  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6575 <samp>(3de00)</samp>
      • Guard test hook callback  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6604 <samp>(14971)</samp>
      • Run onTestFinished and onTestFailed during retry and repeats  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6609 <samp>(c5e29)</samp>
    • ui:
      • List tests on ui when --standalone  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6577 <samp>(d0bf8)</samp>
    • vite-node:
      • Fix esm false-detection inside comment  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6506 <samp>(91f85)</samp>
    • vitest:
      • Install dependencies with the same version when prompted  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6611 <samp>(ed8b7)</samp>
      • Make env.SSR consistent between different pools  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6616 <samp>(8a8d3)</samp>
      • Don't start a websocket server if api is disabled  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6617 <samp>(82140)</samp>
    • workspace:
      • Fix glob pattern detection  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6502 <samp>(7727c)</samp>
      • Ignore DS_Store by default  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6571 <samp>(d2a86)</samp>
        View changes on GitHub
    Open source โ†’
  48. 2.1.113 Sept 2024
    Release notes

       ๐Ÿž Bug Fixes

    • browser:
      • Make example test callbacks async  -  by @aqandrew in https://github.com/vitest-dev/vitest/issues/6484 <samp>(16aa7)</samp>
      • Optimize vitest-browser-vue correctly  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6490 <samp>(5cbb0)</samp>
    • workspace:
      • Resolve glob pattern once to avoid name collision  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6489 <samp>(36b5a)</samp>
        View changes on GitHub
    Open source โ†’
  49. 2.1.012 Sept 2024
    Release notes

    This release makes another big change to the Browser Mode by introducing locators API:

    test('renders blog posts', async () => {
      const screen = page.render(<Blog />)
    
      await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()
    
      const [firstPost] = screen.getByRole('listitem').all()
    
      await firstPost.getByRole('button', { name: 'Delete' }).click()
    
      expect(screen.getByRole('listitem').all()).toHaveLength(3)
    })
    

    You can use either vitest-browser-vue, vitest-browser-svelte or vitest-browser-react to render components and make assertions using locators. Locators are also available on the page object from @vitest/browser/context.

    Potential Breaking Change

    • workspace:
      • Correctly resolve workspace globs and file paths  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6316 <samp>(afdcb)</samp>
      • This changes how the custom glob pattern in the workspace config is treated. Any file matching the glob is considered a Vitest config file. Any folder matching the glob pattern is treated as a workspace project and is subject to the regular config resolution (single vitest.config.ts or vite.config.ts inside the folder)
      • For example, projects/* will match anything inside the projects folder. If it's a folder, we try to find the config inside that folder (if there is none, it is still treated as a project with the default config). If it's a file, it will be treated as a Vitest config. projects/**/* previously would assume that you only wanted to have folders as projects, but now it will match every single file insideprojects.
      • This change doesn't affect non-glob usage.

       ๐Ÿš€ Features

    • api:
      • Make spec into a class instead of a tuple  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6355 <samp>(874a1)</samp>
    • browser:
      • Move page.config to server.config, add more docs  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6252 <samp>(af2b8)</samp>
      • Make iframe scalable, improve documentation  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6257 <samp>(74ca1)</samp>
      • Introduce built-in locators  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6084 <samp>(3347f)</samp>
      • Support v8 coverage  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6273 <samp>(34199)</samp>
      • Support userEvent.upload in playwright provider  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6442 <samp>(cf148)</samp>
      • Support --inspect  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6433 <samp>(0499a)</samp>
      • Support --inspect-brk  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6434 <samp>(7ab0f)</samp>
    • cli:
      • Extend existing list command to output only a list of file names  -  by @Ma-hawaj and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6392 <samp>(008f0)</samp>
    • coverage:
      • Add --exclude-after-remap  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6309 <samp>(5932a)</samp>
    • mocker:
      • Introduce @vitest/mocker package, allow { spy: true } instead of a factory  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6289 <samp>(95f02)</samp>
    • vitest:
      • Add "provide" option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6253 <samp>(4409d)</samp>
      • Add return type and promisable mockFactory  -  by @syi0808 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6139 <samp>(f5e0b)</samp>
      • Add vi.advanceTimersToNextFrame  -  by @bnjm and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6347 <samp>(8ff63)</samp>
      • Allow env to be stubbed to undefined  -  by @JSanchezIO and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6359 <samp>(c3b27)</samp>
    • Migrate from fast-glob to tinyglobby  -  by @SuperchupuDev in https://github.com/vitest-dev/vitest/pull/6274 <samp>(c321a)</samp>

       ๐Ÿž Bug Fixes

    • Correctly resolve nested mocks with index file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6266 <samp>(081cf)</samp>
    • Don't panic when coverage.reporter is a string  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6267 <samp>(7b37d)</samp>
    • Align RawMatcherFn type definition with Jest  -  by @wheresrhys in https://github.com/vitest-dev/vitest/issues/6351 <samp>(d09f0)</samp>
    • Cjs build of vite node server  -  by @AkaraChen in https://github.com/vitest-dev/vitest/issues/6389 <samp>(12e70)</samp>
    • Allow inlining vite's cached dependencies  -  by @chriswheeldon-peakon in https://github.com/vitest-dev/vitest/issues/6284 <samp>(03208)</samp>
    • Print unexpected error message if peer dependencies have a different version  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6446 <samp>(b992b)</samp>
    • Ignore importer when resolving Vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6469 <samp>(0b447)</samp>
    • expect.getState().testPath always returns correct path  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6472 <samp>(ac698)</samp>
    • UserEvent works consistently between providers  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6480 <samp>(0b4da)</samp>
    • browser:
      • Print correct stack trace for unhandled errors  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6134 <samp>(1da6c)</samp>
      • Use documentElement as the root for selector  -  by @sheremet-va <samp>(d8077)</samp>
      • Keep querying elements even if locator is created with elementLocator, add pubic @vitest/browser/utils  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6296 <samp>(30dc5)</samp>
      • Produce valid config file if preview provider is used  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6305 <samp>(7f0ae)</samp>
      • Correctly run in-source tests in the browser  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6440 <samp>(c8531)</samp>
      • Exclude missed packages from optimization, print help message  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6445 <samp>(8d883)</samp>
      • Define mocker as a dependency  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6476 <samp>(9560a)</samp>
    • coverage:
      • Warn if vitest and @vitest/* versions don't match  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6317 <samp>(e662c)</samp>
      • V8 to support source maps with multiple sources  -  by @AriPerkkio and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6120 <samp>(1f6cb)</samp>
      • V8 to warn instead of crash when conversion fails  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6318 <samp>(91dea)</samp>
      • Use project specific vitenode for uncovered files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6044 <samp>(da52d)</samp>
    • runner:
      • Use performance.now instead of Date.now for duration  -  by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6382 <samp>(fe489)</samp>
      • Async assertion auto await should timeout  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6391 <samp>(ad6e7)</samp>
    • snapshot:
      • Reject multiple toMatchInlineSnapshot updates at the same location  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6332 <samp>(1606f)</samp>
      • Improve inline snapshot inside loop rejection  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6339 <samp>(e0368)</samp>
    • typecheck:
      • Run both runtime and typecheck tests if typecheck.include overlaps with include  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6256 <samp>(153ff)</samp>
    • types:
      • Allow Callbacks Passed to before*/after* to Return Anything  -  by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6393 <samp>(f6217)</samp>
    • ui:
      • Remove "filters" flickering  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6463 <samp>(0223b)</samp>
      • Render project name consistently  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6329 <samp>(94a18)</samp>
    • vite-node:
      • Disable watcher if hmr is disabled  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6251 <samp>(c51c6)</samp>
      • Fix watch on vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6422 <samp>(c3ac4)</samp>
    • vitest:
      • Update json reporter output  -  by @Emiyaaaaa in https://github.com/vitest-dev/vitest/issues/6064 <samp>(c9979)</samp>
      • Add more type guards for --merge-reports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6307 <samp>(0a5d8)</samp>
      • Always resolve vitest to the root version  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6369 <samp>(163d7)</samp>
      • Dispose vmForks listeners to avoid memory leak  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6448 <samp>(2673c)</samp>
        View changes on GitHub
    Open source โ†’
  50. 2.1.0-beta.79 Sept 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • browser:
      • Support userEvent.upload in playwright provider  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6442 <samp>(cf148)</samp>
      • Support --inspect  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6433 <samp>(0499a)</samp>
      • Support --inspect-brk  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6434 <samp>(7ab0f)</samp>
    • cli:
      • Extend existing list command to output only a list of file names  -  by @Ma-hawaj and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6392 <samp>(008f0)</samp>
    • mocker:
      • Introduce @vitest/mocker package, allow { spy: true } instead of a factory  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6289 <samp>(95f02)</samp>
    • vitest:
      • Allow env to be stubbed to undefined  -  by @JSanchezIO and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6359 <samp>(c3b27)</samp>

       ๐Ÿž Bug Fixes

    • Cjs build of vite node server  -  by @AkaraChen in https://github.com/vitest-dev/vitest/issues/6389 <samp>(12e70)</samp>
    • Allow inlining vite's cached dependencies  -  by @chriswheeldon-peakon in https://github.com/vitest-dev/vitest/issues/6284 <samp>(03208)</samp>
    • Print unexpected error message if peer dependencies have a different version  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6446 <samp>(b992b)</samp>
    • Ignore importer when resolving Vitest  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6469 <samp>(0b447)</samp>
    • browser:
      • Correctly run in-source tests in the browser  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6440 <samp>(c8531)</samp>
      • Exclude missed packages from optimization, print help message  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6445 <samp>(8d883)</samp>
    • runner:
      • Use performance.now instead of Date.now for duration  -  by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6382 <samp>(fe489)</samp>
      • Async assertion auto await should timeout  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6391 <samp>(ad6e7)</samp>
    • types:
      • Allow Callbacks Passed to before*/after* to Return Anything  -  by @LuciNyan in https://github.com/vitest-dev/vitest/issues/6393 <samp>(f6217)</samp>
    • ui:
      • Remove "filters" flickering  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6463 <samp>(0223b)</samp>
    • vite-node:
      • Fix watch on vite 6  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6422 <samp>(c3ac4)</samp>
    • vitest:
      • Dispose vmForks listeners to avoid memory leak  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6448 <samp>(2673c)</samp>
        View changes on GitHub
    Open source โ†’
  51. 2.1.0-beta.620 Aug 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • api:
      • Make spec into a class instead of a tuple  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6355 <samp>(874a1)</samp>
    • browser:
      • Support v8 coverage  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6273 <samp>(34199)</samp>
    • coverage:
      • Add --exclude-after-remap  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6309 <samp>(5932a)</samp>
    • vitest:
      • Add return type and promisable mockFactory  -  by @syi0808 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6139 <samp>(f5e0b)</samp>
      • Add vi.advanceTimersToNextFrame  -  by @bnjm and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6347 <samp>(8ff63)</samp>

       ๐Ÿž Bug Fixes

    • Align RawMatcherFn type definition with Jest  -  by @wheresrhys in https://github.com/vitest-dev/vitest/issues/6351 <samp>(d09f0)</samp>
    • coverage:
      • Use project specific vitenode for uncovered files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6044 <samp>(da52d)</samp>
    • snapshot:
      • Reject multiple toMatchInlineSnapshot updates at the same location  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6332 <samp>(1606f)</samp>
      • Improve inline snapshot inside loop rejection  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6339 <samp>(e0368)</samp>
    • typecheck:
      • Run both runtime and typecheck tests if typecheck.include overlaps with include  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6256 <samp>(153ff)</samp>
    • vitest:
      • Always resolve vitest to the root version  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6369 <samp>(163d7)</samp>
    • workspace:
      • Correctly resolve workspace globs and file paths  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6316 <samp>(afdcb)</samp>
        View changes on GitHub
    Open source โ†’
  52. 2.1.0-beta.512 Aug 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • vitest: Add "provide" option  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6253 <samp>(4409d)</samp>
    • browser: Recommend using vitest-browser-vue, vitest-browser-svelte or vitest-browser-react with built-in locators instead of @testing-library/framework packages <samp>(d79511)</samp>
      • Using built-in locators solves several issues we encountered after the Browser Mode rewrite in Vitest 2:
      • They support Shadow DOM unlike testing-library that relies solely on querySelector and closest
      • Having a single query mechanism between all frameworks and providers allows us to give users easy-to-understand examples which makes documenting it much easier
      • All locators have the retry-ability mechanism built-in when using .click/.fill and other userEvent methods
      • Locators use Playwright implementation which allows us to reuse established selectors from Playwright ecosystem

       ๐Ÿž Bug Fixes

    • browser:
      • Produce valid config file if preview provider is used  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6305 <samp>(7f0ae)</samp>
    • coverage:
      • Warn if vitest and @vitest/* versions don't match  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6317 <samp>(e662c)</samp>
      • V8 to support source maps with multiple sources  -  by @AriPerkkio and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6120 <samp>(1f6cb)</samp>
      • V8 to warn instead of crash when conversion fails  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6318 <samp>(91dea)</samp>
    • vitest:
      • Add more type guards for --merge-reports  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6307 <samp>(0a5d8)</samp>
        View changes on GitHub
    Open source โ†’
  53. 2.1.0-beta.47 Aug 2024pre-release
    Release notes

       ๐Ÿž Bug Fixes

    • browser: Keep querying elements even if locator is created with elementLocator, add pubic @vitest/browser/utils  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6296 <samp>(30dc5)</samp>
        View changes on GitHub
    Open source โ†’
  54. 2.1.0-beta.37 Aug 2024pre-release
    Release notes

       ๐Ÿž Bug Fixes

        View changes on GitHub
    Open source โ†’
  55. 2.1.0-beta.27 Aug 2024pre-release
    Release notes

    No significant changes

        View changes on GitHub
    Open source โ†’
  56. 2.1.0-beta.17 Aug 2024pre-release
    Release notes

       ๐Ÿš€ Features

    • browser:
      • Move page.config to server.config, add more docs  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6252 <samp>(af2b8)</samp>
      • Make iframe scalable, improve documentation  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6257 <samp>(74ca1)</samp>
      • Introduce built-in locators  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6084 <samp>(3347f)</samp>

       ๐Ÿž Bug Fixes

    • Correctly resolve nested mocks with index file  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6266 <samp>(081cf)</samp>
    • Don't panic when coverage.reporter is a string  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6267 <samp>(7b37d)</samp>
    • browser: Print correct stack trace for unhandled errors  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6134 <samp>(1da6c)</samp>
    • vite-node: Disable watcher if hmr is disabled  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6251 <samp>(c51c6)</samp>
    • vitest: Update json reporter output  -  by @Emiyaaaaa in https://github.com/vitest-dev/vitest/issues/6064 <samp>(c9979)</samp>
        View changes on GitHub
    Open source โ†’
  57. 2.0.531 Jul 2024
    Release notes

       ๐Ÿš€ Features

    • Introduce experimental reported tasks  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6149 <samp>(13d85)</samp>
      • This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go!

       ๐Ÿž Bug Fixes

    • Show a difference between string characters if both values are strings  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6191 <samp>(29176)</samp>
    • testNamePattern adds leading space  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6186 <samp>(073a5)</samp>
    • browser:
      • Don't bundle afterEach cleanup hooks in node entrypoint  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6192 <samp>(e6fbc)</samp>
      • UserEvent.setup initiates a separate state for userEvent instance  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6088 <samp>(883f3)</samp>
      • Correctly import optimized module in vi.importActual  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6219 <samp>(804ff)</samp>
      • Passing options to hover/unhover  -  by @MNeverOff in https://github.com/vitest-dev/vitest/issues/6175 <samp>(d4c00)</samp>
      • Improve unique CSS selector generation  -  by @zacharyvoase and Zack Voase in https://github.com/vitest-dev/vitest/issues/6243 <samp>(e7acd)</samp>
    • vitest:
      • Remove nuxt from auto inline deps  -  by @sheremet-va <samp>(93882)</samp>
      • Improve defineProject and defineWorkspace types  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6198 <samp>(8cd82)</samp>
      • Correctly resolve mocked node:* imports in __mocks__ folder  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6204 <samp>(a48be)</samp>
    • web-worker:
      • Expose globals on self  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6170 <samp>(12bb5)</samp>
        View changes on GitHub
    Open source โ†’
  58. 2.0.422 Jul 2024
    Release notes

       ๐Ÿž Bug Fixes

    • One-line environment options  -  by @hahanein in https://github.com/vitest-dev/vitest/issues/5105 <samp>(38269)</samp>
    • Resolve assets imported with require  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6159 <samp>(807a2)</samp>
    • browser:
      • Don't panic if @vitest/browser is installed outside of project root  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6135 <samp>(ccfcd)</samp>
      • Set global filepath  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6190 <samp>(0d0b4)</samp>
      • Allow preview and open in the editor screenshot error from ui  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6113 <samp>(2d620)</samp>
    • coverage:
      • Global thresholds to include files from glob thresholds  -  by @thor-juhasz and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6172 <samp>(02e3f)</samp>
      • Consistent type-only file handling  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6183 <samp>(90576)</samp>
      • Ignore *.cts files  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6189 <samp>(5da45)</samp>
      • Add thresholds.<glob>.100 option  -  by @thor-juhasz and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6174 <samp>(f6845)</samp>
    • spy:
      • Fix mockImplementation for function overload and unions  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6181 <samp>(7a75b)</samp>
        View changes on GitHub
    Open source โ†’
  59. 2.0.315 Jul 2024
    Release notes

       ๐Ÿš€ Features

    • ui: Show all suites/tests when parent matches  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6106 <samp>(840e0)</samp>

       ๐Ÿž Bug Fixes

    • --inspect-brk stop on Windows  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6110 <samp>(f8519)</samp>
    • browser:
      • Don't import from "vite"  -  by @sheremet-va <samp>(35655)</samp>
      • Allow immidiate reinvalidation of mocked dependencies  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6108 <samp>(f44cc)</samp>
    • spy:
      • Fix type error when assigning vi.spyOn to MockInstance of function overload  -  by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6086 <samp>(e9f9a)</samp>
    • vite-node:
      • Remove suffix slash on file protocol for window  -  by @syi0808 in https://github.com/vitest-dev/vitest/issues/6109 <samp>(93ebd)</samp>
        View changes on GitHub
    Open source โ†’
  60. 2.0.210 Jul 2024
    Release notes

       ๐Ÿž Bug Fixes

    • browser:
      • Remove @vitest/runner > pretty-format from prebundling because it doesn't exist  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6075 <samp>(a169d)</samp>
      • Inline pretty-format and replace picocolors with tinyrainbow  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6077 <samp>(80a43)</samp>
      • Remove crypto.randomUUID from the client  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6079 <samp>(04c83)</samp>
      • Correctly overwrite loupe require  -  by @sheremet-va <samp>(756ac)</samp>
      • Dedupe @vitest/browser/client  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6081 <samp>(ee725)</samp>
      • Don't release keyboard automatically  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6083 <samp>(58fac)</samp>
    • ui:
      • Test files notified only when running  -  by @userquin in https://github.com/vitest-dev/vitest/issues/6069 <samp>(af7fe)</samp>
      • Encode html entities in task name  -  by @userquin and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6070 <samp>(7f0cc)</samp>
    • web-worker:
      • Peer dependency version on vitest  -  by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6060 <samp>(95a2d)</samp>

       ๐ŸŽ Performance

    • browser: Don't import msw if no modules are mocked  -  by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6073 <samp>(aa527)</samp>
        View changes on GitHub
    Open source โ†’