diff --git a/CHANGELOG.md b/CHANGELOG.md index f2322ac2735e..aff3ad9d7cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - `[babel-plugin-jest-hoist]` Show codeframe on static hoisting issues ([#8865](https://github.com/facebook/jest/pull/8865)) - `[jest-config]` [**BREAKING**] Set default display name color based on runner ([#8689](https://github.com/facebook/jest/pull/8689)) +- `[@jest/test-result]` Create method to create empty `TestResult` ([#8867](https://github.com/facebook/jest/pull/8867)) ### Fixes diff --git a/packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapterInit.ts b/packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapterInit.ts index 2380e616dd68..0b0f92095ba3 100644 --- a/packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapterInit.ts +++ b/packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapterInit.ts @@ -7,7 +7,12 @@ import {Circus, Config, Global} from '@jest/types'; import {JestEnvironment} from '@jest/environment'; -import {AssertionResult, Status, TestResult} from '@jest/test-result'; +import { + AssertionResult, + Status, + TestResult, + createEmptyTestResult, +} from '@jest/test-result'; import {extractExpectedAssertionsErrors, getState, setState} from 'expect'; import {formatExecError, formatResultsErrors} from 'jest-message-util'; import { @@ -215,30 +220,14 @@ export const runAndTransformResultsToJestFormat = async ({ dispatch({name: 'teardown'}); return { + ...createEmptyTestResult(), console: undefined, displayName: config.displayName, failureMessage, - leaks: false, // That's legacy code, just adding it so Flow is happy. numFailingTests, numPassingTests, numPendingTests, numTodoTests, - openHandles: [], - perfStats: { - // populated outside - end: 0, - start: 0, - }, - skipped: false, - snapshot: { - added: 0, - fileDeleted: false, - matched: 0, - unchecked: 0, - uncheckedKeys: [], - unmatched: 0, - updated: 0, - }, sourceMaps: {}, testExecError, testFilePath: testPath, diff --git a/packages/jest-jasmine2/src/reporter.ts b/packages/jest-jasmine2/src/reporter.ts index 7354a8b42208..7970c045a738 100644 --- a/packages/jest-jasmine2/src/reporter.ts +++ b/packages/jest-jasmine2/src/reporter.ts @@ -6,7 +6,11 @@ */ import {Config} from '@jest/types'; -import {AssertionResult, TestResult} from '@jest/test-result'; +import { + AssertionResult, + TestResult, + createEmptyTestResult, +} from '@jest/test-result'; import {formatResultsErrors} from 'jest-message-util'; import {SpecResult} from './jasmine/Spec'; import {SuiteResult} from './jasmine/Suite'; @@ -78,6 +82,7 @@ export default class Jasmine2Reporter implements Reporter { }); const testResult = { + ...createEmptyTestResult(), console: null, failureMessage: formatResultsErrors( testResults, @@ -89,10 +94,6 @@ export default class Jasmine2Reporter implements Reporter { numPassingTests, numPendingTests, numTodoTests, - perfStats: { - end: 0, - start: 0, - }, snapshot: { added: 0, fileDeleted: false, diff --git a/packages/jest-test-result/src/helpers.ts b/packages/jest-test-result/src/helpers.ts index 6020142861bc..07bc0e6e2226 100644 --- a/packages/jest-test-result/src/helpers.ts +++ b/packages/jest-test-result/src/helpers.ts @@ -145,3 +145,28 @@ export const addResult = ( testResult.snapshot.unmatched + testResult.snapshot.updated; }; + +export const createEmptyTestResult = (): TestResult => ({ + leaks: false, // That's legacy code, just adding it as needed for typing + numFailingTests: 0, + numPassingTests: 0, + numPendingTests: 0, + numTodoTests: 0, + openHandles: [], + perfStats: { + end: 0, + start: 0, + }, + skipped: false, + snapshot: { + added: 0, + fileDeleted: false, + matched: 0, + unchecked: 0, + uncheckedKeys: [], + unmatched: 0, + updated: 0, + }, + testFilePath: '', + testResults: [], +}); diff --git a/packages/jest-test-result/src/index.ts b/packages/jest-test-result/src/index.ts index aa51fb4b4024..d942f144e519 100644 --- a/packages/jest-test-result/src/index.ts +++ b/packages/jest-test-result/src/index.ts @@ -9,6 +9,7 @@ export {default as formatTestResults} from './formatTestResults'; export { addResult, buildFailureTestResult, + createEmptyTestResult, makeEmptyAggregatedTestResult, } from './helpers'; export {