vitest/docs/guide/mocking/globals.md

21 lines
811 B
Markdown

# Mocking Globals
You can mock global variables that are not present with `jsdom` or `node` by using [`vi.stubGlobal`](/api/vi#vi-stubglobal) helper. It will put the value of the global variable into a `globalThis` object.
By default, Vitest does not reset these globals, but you can turn on the [`unstubGlobals`](/config/#unstubglobals) option in your config to restore the original values after each test or call [`vi.unstubAllGlobals()`](/api/vi#vi-unstuballglobals) manually.
```ts
import { vi } from 'vitest'
const IntersectionObserverMock = vi.fn(class {
disconnect = vi.fn()
observe = vi.fn()
takeRecords = vi.fn()
unobserve = vi.fn()
})
vi.stubGlobal('IntersectionObserver', IntersectionObserverMock)
// now you can access it as `IntersectionObserver` or `window.IntersectionObserver`
```