···4949export default <Environment>{
5050 name: 'custom',
5151 viteEnvironment: 'ssr',
5252- // optional - only if you support "experimental-vm" pool
5252+ // optional - only if you support "vmForks" or "vmThreads" pools
5353 async setupVM() {
5454 const vm = await import('node:vm')
5555 const context = vm.createContext()
+1-1
docs/guide/snapshot.md
···98989999## Visual Snapshots
100100101101-For visual regression testing of UI components and pages, Vitest provides built-in support through [browser mode](/guide/browser/) with the [`toMatchScreenshot()`](/api/browser/assertions#tomatchscreenshot-experimental) assertion:
101101+For visual regression testing of UI components and pages, Vitest provides built-in support through [browser mode](/guide/browser/) with the [`toMatchScreenshot()`](/api/browser/assertions#tomatchscreenshot) assertion:
102102103103```ts
104104import { expect, test } from 'vitest'
-1
packages/browser/context.d.ts
···866866 /**
867867 * Configures default options of `prettyDOM` and `debug` functions.
868868 * This will also affect `vitest-browser-{framework}` package.
869869- * @experimental
870869 */
871870 configurePrettyDOM(options: StringifyOptions): void
872871 /**
+4-4
docs/api/advanced/reporters.md
···1515 - [`onHookStart(beforeAll)`](#onhookstart)
1616 - [`onHookEnd(beforeAll)`](#onhookend)
1717 - [`onTestCaseReady`](#ontestcaseready)
1818- - [`onTestAnnotate`](#ontestannotate) <Version>3.2.0</Version>
1818+ - [`onTestCaseAnnotate`](#ontestcaseannotate) <Version>3.2.0</Version>
1919 - [`onTestCaseArtifactRecord`](#ontestcaseartifactrecord) <Version type="experimental">4.0.11</Version>
2020 - [`onHookStart(beforeEach)`](#onhookstart)
2121 - [`onHookEnd(beforeEach)`](#onhookend)
···313313314314At this point, [`testCase.result()`](/api/advanced/test-case#result) will have non-pending state.
315315316316-## onTestAnnotate <Version>3.2.0</Version> {#ontestannotate}
316316+## onTestCaseAnnotate <Version>3.2.0</Version> {#ontestcaseannotate}
317317318318```ts
319319-function onTestAnnotate(
319319+function onTestCaseAnnotate(
320320 testCase: TestCase,
321321 annotation: TestAnnotation,
322322): Awaitable<void>
323323```
324324325325-The `onTestAnnotate` hook is associated with the [`context.annotate`](/guide/test-context#annotate) method. When `annotate` is invoked, Vitest serialises it and sends the same attachment to the main thread where reporter can interact with it.
325325+The `onTestCaseAnnotate` hook is associated with the [`context.annotate`](/guide/test-context#annotate) method. When `annotate` is invoked, Vitest serialises it and sends the same attachment to the main thread where reporter can interact with it.
326326327327If the path is specified, Vitest stores it in a separate directory (configured by [`attachmentsDir`](/config/#attachmentsdir)) and modifies the `path` property to reference it.
328328
+5-1
docs/api/advanced/test-module.md
···121121}
122122```
123123124124-## viteEnvironment <Version type="experimental">4.0.15</Version> <Experimental /> {#viteenvironment}
124124+## viteEnvironment <Version>4.1.0</Version> {#viteenvironment}
125125126126This is a Vite's [`DevEnvironment`](https://vite.dev/guide/api-environment) that transforms all files inside of the test module.
127127+128128+::: details History
129129+- `v4.0.15`: added as experimental
130130+:::
127131128132## toTestSpecification <Version>4.1.0</Version> {#totestspecification}
129133
+1-1
docs/api/advanced/test-specification.md
···40404141Instance of [`TestModule`](/api/advanced/test-module) associated with the specification. If test wasn't queued yet, this will be `undefined`.
42424343-## pool <Badge type="warning">experimental</Badge> {#pool}
4343+## pool {#pool}
44444545The [`pool`](/config/#pool) in which the test module will run.
4646
+1-3
docs/api/advanced/vitest.md
···478478479479Register a handler that will be called when the test run is cancelled with [`vitest.cancelCurrentRun`](#cancelcurrentrun).
480480481481-::: warning EXPERIMENTAL
482482-Since 4.0.10, `onCancel` returns a teardown function that will remove the listener.
483483-:::
481481+Since 4.0.10, `onCancel` experimentally returns a teardown function that will remove the listener. Since 4.1.0 this behaviour is considered stable.
484482485483## onClose
486484
-1
docs/api/browser/context.md
···222222 /**
223223 * Configures default options of `prettyDOM` and `debug` functions.
224224 * This will also affect `vitest-browser-{framework}` package.
225225- * @experimental
226225 */
227226 configurePrettyDOM(options: StringifyOptions): void
228227 /**
-4
docs/guide/advanced/tests.md
···2727}
2828```
29293030-::: tip
3131-[`TestModule`](/api/advanced/test-module), [`TestSuite`](/api/advanced/test-suite) and [`TestCase`](/api/advanced/test-case) APIs are not experimental and follow SemVer since Vitest 2.1.
3232-:::
3333-3430## `createVitest`
35313632Creates a [Vitest](/api/advanced/vitest) instances without running tests.
···2727 public readonly moduleId: string
2828 /**
2929 * The current test pool. It's possible to have multiple pools in a single test project with `typecheck.enabled`.
3030- * @experimental In later versions, the project will only support a single pool.
3130 */
3231 public readonly pool: Pool
3332 /**