@happy-dom/jest-environment
Version:
Use Happy DOM as environment in Jest.
68 lines • 2.03 kB
TypeScript
import VM from 'vm';
import { ModuleMocker } from 'jest-mock';
import { LegacyFakeTimers, ModernFakeTimers } from '@jest/fake-timers';
import { JestEnvironment, EnvironmentContext } from '@jest/environment';
import { Window } from 'happy-dom';
import { Script } from 'vm';
import { Global, Config } from '@jest/types';
/**
* Happy DOM Jest Environment.
*/
export default class HappyDOMEnvironment implements JestEnvironment {
fakeTimers: LegacyFakeTimers<number>;
fakeTimersModern: ModernFakeTimers;
window: Window;
global: Global.Global;
moduleMocker: ModuleMocker;
/**
* jest-environment-jsdom" has the default set to ['browser']
* As changing this value would be a breaking change, we will keep it at ['node', 'node-addons'] until we do a major release
*
* @see https://stackoverflow.com/questions/72428323/jest-referenceerror-vue-is-not-defined
*/
customExportConditions: string[];
private _configuredExportConditions;
/**
* Constructor.
*
* @param config Jest config.
* @param config.globalConfig jest global config.
* @param config.projectConfig jest project config.
* @param options Options.
*/
constructor(config: {
globalConfig: Config.GlobalConfig;
projectConfig: Config.ProjectConfig;
} | Config.ProjectConfig, options?: EnvironmentContext);
/**
* Respect any export conditions specified as options
* https://jestjs.io/docs/configuration#testenvironmentoptions-object
*/
exportConditions(): string[];
/**
* Setup.
*
* @returns Promise.
*/
setup(): Promise<void>;
/**
* Teardown.
*
* @returns Promise.
*/
teardown(): Promise<void>;
/**
* Runs a script.
*
* @param script Script.
* @returns Result.
*/
runScript(script: Script): null;
/**
* Returns the VM context.
*
* @returns Context.
*/
getVmContext(): VM.Context;
}
//# sourceMappingURL=index.d.ts.map