From 044bdeb72e4283b0fc993251e4acba49b8c52880 Mon Sep 17 00:00:00 2001 From: Conrad Buck Date: Thu, 4 Feb 2021 15:29:58 -0500 Subject: [PATCH] Ensure verbose mode prints output synchronously Fixes #8208 --- packages/jest-reporters/src/DefaultReporter.ts | 8 +++++--- packages/jest-reporters/src/VerboseReporter.ts | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/jest-reporters/src/DefaultReporter.ts b/packages/jest-reporters/src/DefaultReporter.ts index 77b1fbe94b46..b49c23022aec 100644 --- a/packages/jest-reporters/src/DefaultReporter.ts +++ b/packages/jest-reporters/src/DefaultReporter.ts @@ -43,15 +43,17 @@ export default class DefaultReporter extends BaseReporter { this._err = process.stderr.write.bind(process.stderr); this._status = new Status(); this._bufferedOutput = new Set(); - this._wrapStdio(process.stdout); - this._wrapStdio(process.stderr); + this.__wrapStdio(process.stdout); + this.__wrapStdio(process.stderr); this._status.onChange(() => { this._clearStatus(); this._printStatus(); }); } - private _wrapStdio(stream: NodeJS.WritableStream | NodeJS.WriteStream) { + protected __wrapStdio( + stream: NodeJS.WritableStream | NodeJS.WriteStream + ): void { const originalWrite = stream.write; let buffer: Array = []; diff --git a/packages/jest-reporters/src/VerboseReporter.ts b/packages/jest-reporters/src/VerboseReporter.ts index 5d7de322f330..514d2e6ab23e 100644 --- a/packages/jest-reporters/src/VerboseReporter.ts +++ b/packages/jest-reporters/src/VerboseReporter.ts @@ -29,6 +29,10 @@ export default class VerboseReporter extends DefaultReporter { this._globalConfig = globalConfig; } + // Verbose mode is for debugging. Buffering of output is undesirable. + // See https://github.com/facebook/jest/issues/8208 + protected __wrapStdio(): void {} + static filterTestResults( testResults: Array, ): Array {