UNPKG

5.46 kBTypeScriptView Raw
1/**
2 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7import type { V8Coverage } from 'collect-v8-coverage';
8import type { CoverageMap, CoverageMapData } from 'istanbul-lib-coverage';
9import type { ConsoleBuffer } from '@jest/console';
10import type { Config, TestResult, TransformTypes } from '@jest/types';
11import type { FS as HasteFS, ModuleMap } from 'jest-haste-map';
12import type Resolver from 'jest-resolve';
13export interface RuntimeTransformResult extends TransformTypes.TransformResult {
14 wrapperLength: number;
15}
16export declare type V8CoverageResult = Array<{
17 codeTransformResult: RuntimeTransformResult | undefined;
18 result: V8Coverage[number];
19}>;
20export declare type SerializableError = TestResult.SerializableError;
21export declare type FailedAssertion = {
22 matcherName?: string;
23 message?: string;
24 actual?: unknown;
25 pass?: boolean;
26 passed?: boolean;
27 expected?: unknown;
28 isNot?: boolean;
29 stack?: string;
30 error?: unknown;
31};
32export declare type AssertionLocation = {
33 fullName: string;
34 path: string;
35};
36export declare type Status = AssertionResult['status'];
37export declare type Bytes = number;
38export declare type Milliseconds = TestResult.Milliseconds;
39export declare type AssertionResult = TestResult.AssertionResult;
40export declare type FormattedAssertionResult = Pick<AssertionResult, 'ancestorTitles' | 'fullName' | 'location' | 'status' | 'title'> & {
41 failureMessages: AssertionResult['failureMessages'] | null;
42};
43export declare type AggregatedResultWithoutCoverage = {
44 numFailedTests: number;
45 numFailedTestSuites: number;
46 numPassedTests: number;
47 numPassedTestSuites: number;
48 numPendingTests: number;
49 numTodoTests: number;
50 numPendingTestSuites: number;
51 numRuntimeErrorTestSuites: number;
52 numTotalTests: number;
53 numTotalTestSuites: number;
54 openHandles: Array<Error>;
55 snapshot: SnapshotSummary;
56 startTime: number;
57 success: boolean;
58 testResults: Array<TestResult>;
59 wasInterrupted: boolean;
60};
61export declare type AggregatedResult = AggregatedResultWithoutCoverage & {
62 coverageMap?: CoverageMap | null;
63};
64export declare type Suite = {
65 title: string;
66 suites: Array<Suite>;
67 tests: Array<AssertionResult>;
68};
69export declare type TestCaseResult = AssertionResult;
70export declare type TestResult = {
71 console?: ConsoleBuffer;
72 coverage?: CoverageMapData;
73 displayName?: Config.DisplayName;
74 failureMessage?: string | null;
75 leaks: boolean;
76 memoryUsage?: Bytes;
77 numFailingTests: number;
78 numPassingTests: number;
79 numPendingTests: number;
80 numTodoTests: number;
81 openHandles: Array<Error>;
82 perfStats: {
83 end: Milliseconds;
84 runtime: Milliseconds;
85 slow: boolean;
86 start: Milliseconds;
87 };
88 skipped: boolean;
89 snapshot: {
90 added: number;
91 fileDeleted: boolean;
92 matched: number;
93 unchecked: number;
94 uncheckedKeys: Array<string>;
95 unmatched: number;
96 updated: number;
97 };
98 testExecError?: SerializableError;
99 testFilePath: Config.Path;
100 testResults: Array<AssertionResult>;
101 v8Coverage?: V8CoverageResult;
102};
103export declare type FormattedTestResult = {
104 message: string;
105 name: string;
106 summary: string;
107 status: 'failed' | 'passed';
108 startTime: number;
109 endTime: number;
110 coverage: unknown;
111 assertionResults: Array<FormattedAssertionResult>;
112};
113export declare type FormattedTestResults = {
114 coverageMap?: CoverageMap | null | undefined;
115 numFailedTests: number;
116 numFailedTestSuites: number;
117 numPassedTests: number;
118 numPassedTestSuites: number;
119 numPendingTests: number;
120 numPendingTestSuites: number;
121 numRuntimeErrorTestSuites: number;
122 numTotalTests: number;
123 numTotalTestSuites: number;
124 snapshot: SnapshotSummary;
125 startTime: number;
126 success: boolean;
127 testResults: Array<FormattedTestResult>;
128 wasInterrupted: boolean;
129};
130export declare type CodeCoverageReporter = unknown;
131export declare type CodeCoverageFormatter = (coverage: CoverageMapData | null | undefined, reporter: CodeCoverageReporter) => Record<string, unknown> | null | undefined;
132export declare type UncheckedSnapshot = {
133 filePath: string;
134 keys: Array<string>;
135};
136export declare type SnapshotSummary = {
137 added: number;
138 didUpdate: boolean;
139 failure: boolean;
140 filesAdded: number;
141 filesRemoved: number;
142 filesRemovedList: Array<string>;
143 filesUnmatched: number;
144 filesUpdated: number;
145 matched: number;
146 total: number;
147 unchecked: number;
148 uncheckedKeysByFile: Array<UncheckedSnapshot>;
149 unmatched: number;
150 updated: number;
151};
152export declare type Test = {
153 context: Context;
154 duration?: number;
155 path: Config.Path;
156};
157declare type Context = {
158 config: Config.ProjectConfig;
159 hasteFS: HasteFS;
160 moduleMap: ModuleMap;
161 resolver: Resolver;
162};
163export declare type TestEvents = {
164 'test-file-start': [Test];
165 'test-file-success': [Test, TestResult];
166 'test-file-failure': [Test, SerializableError];
167 'test-case-result': [Config.Path, AssertionResult];
168};
169export declare type TestFileEvent<T extends keyof TestEvents = keyof TestEvents> = (eventName: T, args: TestEvents[T]) => unknown;
170export {};