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.