Utilities

A set of useful utility functions.

rstest.stubEnv

Type: (name: string, value: string | undefined) => Rstest

Temporarily sets an environment variable in process.env to the specified value. Useful for testing code that depends on environment variables.

  • If value is undefined, the variable will be removed from process.env.
  • You can call this multiple times to stub multiple variables.
  • Use rstest.unstubAllEnvs() to restore all environment variables changed by this method.

Example:

rstest.stubEnv('NODE_ENV', 'test');
expect(process.env.NODE_ENV).toBe('test');

rstest.stubEnv('MY_VAR', undefined);
expect(process.env.MY_VAR).toBeUndefined();

rstest.unstubAllEnvs

Type: () => Rstest

Restores all environment variables that were changed using rstest.stubEnv to their original values.

  • Call this after your test to clean up any environment changes.
  • Automatically called before each test if unstubEnvs config is enabled.

Example:

rstest.stubEnv('NODE_ENV', 'test');
// ... run some code
rstest.unstubAllEnvs();
expect(process.env.NODE_ENV).not.toBe('test');

rstest.stubGlobal

Type: (name: string | number | symbol, value: unknown) => Rstest

Temporarily sets a global variable to the specified value. Useful for mocking global objects or functions.

  • You can call this multiple times to stub multiple globals.
  • Use rstest.unstubAllGlobals() to restore all globals changed by this method.

Example:

rstest.stubGlobal('myGlobal', 123);
expect(globalThis.myGlobal).toBe(123);

rstest.stubGlobal(Symbol.for('foo'), 'bar');
expect(globalThis[Symbol.for('foo')]).toBe('bar');

rstest.unstubAllGlobals

Type: () => Rstest

Restores all global variables that were changed using rstest.stubGlobal to their original values.

  • Call this after your test to clean up any global changes.
  • Automatically called before each test if unstubGlobals config is enabled.

Example:

rstest.stubGlobal('myGlobal', 123);
// ... run some code
rstest.unstubAllGlobals();
expect(globalThis.myGlobal).toBeUndefined();

rstest.setConfig

Type:

type RuntimeConfig = {
  testTimeout?: number;
  hookTimeout?: number;
  clearMocks?: boolean;
  resetMocks?: boolean;
  restoreMocks?: boolean;
  maxConcurrency?: number;
  retry?: number;
};

type SetConfig = (config: RuntimeConfig) => void;

Dynamically updates the runtime configuration for the current test file. Useful for temporarily overriding test settings such as timeouts, concurrency, or mock behavior.

Example:

rstest.setConfig({ testTimeout: 1000, retry: 2 });
// ... run some code with the new config
rstest.resetConfig(); // Restore to default config

rstest.resetConfig

Type: () => void

Resets the runtime configuration that was changed using rstest.setConfig back to the default values.