/** * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /// import type * as Global from './Global'; declare type Process = NodeJS.Process; export declare type DoneFn = Global.DoneFn; export declare type BlockFn = Global.BlockFn; export declare type BlockName = Global.BlockName; export declare type BlockMode = void | 'skip' | 'only' | 'todo'; export declare type TestMode = BlockMode; export declare type TestName = Global.TestName; export declare type TestFn = Global.TestFn; export declare type HookFn = Global.HookFn; export declare type AsyncFn = TestFn | HookFn; export declare type SharedHookType = 'afterAll' | 'beforeAll'; export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach'; export declare type TestContext = Global.TestContext; export declare type Exception = any; export declare type FormattedError = string; export declare type Hook = { asyncError: Error; fn: HookFn; type: HookType; parent: DescribeBlock; seenDone: boolean; timeout: number | undefined | null; }; export interface EventHandler { (event: AsyncEvent, state: State): void | Promise; (event: SyncEvent, state: State): void; } export declare type Event = SyncEvent | AsyncEvent; interface JestGlobals extends Global.TestFrameworkGlobals { expect: unknown; } export declare type SyncEvent = { asyncError: Error; mode: BlockMode; name: 'start_describe_definition'; blockName: BlockName; } | { mode: BlockMode; name: 'finish_describe_definition'; blockName: BlockName; } | { asyncError: Error; name: 'add_hook'; hookType: HookType; fn: HookFn; timeout: number | undefined; } | { asyncError: Error; name: 'add_test'; testName: TestName; fn: TestFn; mode?: TestMode; timeout: number | undefined; } | { name: 'error'; error: Exception; }; export declare type AsyncEvent = { name: 'setup'; testNamePattern?: string; runtimeGlobals: JestGlobals; parentProcess: Process; } | { name: 'include_test_location_in_result'; } | { name: 'hook_start'; hook: Hook; } | { name: 'hook_success'; describeBlock?: DescribeBlock; test?: TestEntry; hook: Hook; } | { name: 'hook_failure'; error: string | Exception; describeBlock?: DescribeBlock; test?: TestEntry; hook: Hook; } | { name: 'test_fn_start'; test: TestEntry; } | { name: 'test_fn_success'; test: TestEntry; } | { name: 'test_fn_failure'; error: Exception; test: TestEntry; } | { name: 'test_retry'; test: TestEntry; } | { name: 'test_start'; test: TestEntry; } | { name: 'test_skip'; test: TestEntry; } | { name: 'test_todo'; test: TestEntry; } | { name: 'test_done'; test: TestEntry; } | { name: 'run_describe_start'; describeBlock: DescribeBlock; } | { name: 'run_describe_finish'; describeBlock: DescribeBlock; } | { name: 'run_start'; } | { name: 'run_finish'; } | { name: 'teardown'; }; export declare type MatcherResults = { actual: unknown; expected: unknown; name: string; pass: boolean; }; export declare type TestStatus = 'skip' | 'done' | 'todo'; export declare type TestResult = { duration?: number | null; errors: Array; errorsDetailed: Array; invocations: number; status: TestStatus; location?: { column: number; line: number; } | null; testPath: Array; }; export declare type RunResult = { unhandledErrors: Array; testResults: TestResults; }; export declare type TestResults = Array; export declare type GlobalErrorHandlers = { uncaughtException: Array<(exception: Exception) => void>; unhandledRejection: Array<(exception: Exception, promise: Promise) => void>; }; export declare type State = { currentDescribeBlock: DescribeBlock; currentlyRunningTest?: TestEntry | null; expand?: boolean; hasFocusedTests: boolean; hasStarted: boolean; originalGlobalErrorHandlers?: GlobalErrorHandlers; parentProcess: Process | null; rootDescribeBlock: DescribeBlock; testNamePattern?: RegExp | null; testTimeout: number; unhandledErrors: Array; includeTestLocationInResult: boolean; }; export declare type DescribeBlock = { type: 'describeBlock'; children: Array; hooks: Array; mode: BlockMode; name: BlockName; parent?: DescribeBlock; /** @deprecated Please get from `children` array instead */ tests: Array; }; export declare type TestError = Exception | [Exception | undefined, Exception]; export declare type TestEntry = { type: 'test'; asyncError: Exception; errors: Array; fn: TestFn; invocations: number; mode: TestMode; name: TestName; parent: DescribeBlock; startedAt?: number | null; duration?: number | null; seenDone: boolean; status?: TestStatus | null; timeout?: number; }; export {};