variable

test.mock

function mock<T extends (...args: any[]) => any>(
Function?: T
): Mock<T>;

Creates a mock function. The optional Function becomes the mock's implementation.

function mock.clearAllMocks(): void;

Reset all mock function state (calls, results, etc.) without restoring their original implementation.

function mock.module(
id: string,
factory: () => any
): void | Promise<void>;

Replace the module id with the return value of factory.

If the module is already loaded, exports are overwritten with the return value of factory. If an export didn't exist before, it is not added to existing import statements. This is a consequence of how ESM works.

If the module is already loaded and factory returns a promise that is still pending, the exports are overwritten once it settles and the returned promise resolves after that. Otherwise nothing is returned.

@param id

module ID to mock

@param factory

a function returning an object used as the exports of the mocked module

import { mock } from "bun:test";

mock.module("fs/promises", () => {
 return {
   readFile: () => Promise.resolve("hello world"),
 };
});

import { readFile } from "fs/promises";

console.log(await readFile("hello.txt", "utf8")); // hello world
function mock.restore(): void;

Restore the previous value of mocks.