From a83a831037f99e47c36de47040c60c56fe2e1170 Mon Sep 17 00:00:00 2001 From: Mark1626 Date: Sat, 12 Sep 2020 08:28:31 +0530 Subject: [PATCH 1/6] feat: Add Console to custom console object --- packages/jest-console/src/BufferedConsole.ts | 2 ++ packages/jest-console/src/CustomConsole.ts | 2 ++ packages/jest-console/src/__tests__/CustomConsole.test.ts | 6 ++++++ packages/jest-console/src/__tests__/bufferedConsole.test.ts | 6 ++++++ 4 files changed, 16 insertions(+) diff --git a/packages/jest-console/src/BufferedConsole.ts b/packages/jest-console/src/BufferedConsole.ts index 7ed54795e030..08583a76711b 100644 --- a/packages/jest-console/src/BufferedConsole.ts +++ b/packages/jest-console/src/BufferedConsole.ts @@ -39,6 +39,8 @@ export default class BufferedConsole extends Console { this._groupDepth = 0; } + Console: NodeJS.ConsoleConstructor = Console; + static write( buffer: ConsoleBuffer, type: LogType, diff --git a/packages/jest-console/src/CustomConsole.ts b/packages/jest-console/src/CustomConsole.ts index de38ab55d4a0..34bd357a06e0 100644 --- a/packages/jest-console/src/CustomConsole.ts +++ b/packages/jest-console/src/CustomConsole.ts @@ -37,6 +37,8 @@ export default class CustomConsole extends Console { this._groupDepth = 0; } + Console: NodeJS.ConsoleConstructor = Console; + private _log(type: LogType, message: string) { clearLine(this._stdout); super.log( diff --git a/packages/jest-console/src/__tests__/CustomConsole.test.ts b/packages/jest-console/src/__tests__/CustomConsole.test.ts index 6751a0f63fb3..07bb5cf4f888 100644 --- a/packages/jest-console/src/__tests__/CustomConsole.test.ts +++ b/packages/jest-console/src/__tests__/CustomConsole.test.ts @@ -224,4 +224,10 @@ describe('CustomConsole', () => { _console.timeEnd('custom'); }); }); + + describe('console', () => { + test('should be able to initialize console instance', () => { + expect(_console.Console).toBeDefined(); + }); + }); }); diff --git a/packages/jest-console/src/__tests__/bufferedConsole.test.ts b/packages/jest-console/src/__tests__/bufferedConsole.test.ts index aa9fb36e34f1..8b0ee9f98439 100644 --- a/packages/jest-console/src/__tests__/bufferedConsole.test.ts +++ b/packages/jest-console/src/__tests__/bufferedConsole.test.ts @@ -184,4 +184,10 @@ describe('CustomConsole', () => { _console.timeEnd('custom'); }); }); + + describe('console', () => { + test('should be able to initialize console instance', () => { + expect(_console.Console).toBeDefined(); + }); + }); }); From 071ab43b9f6255000c109a98e65629f236e9ab51 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 14 Sep 2020 09:41:32 +0200 Subject: [PATCH 2/6] chore: use property initialization --- packages/jest-console/src/BufferedConsole.ts | 15 +++++---------- packages/jest-console/src/CustomConsole.ts | 9 +++------ 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/packages/jest-console/src/BufferedConsole.ts b/packages/jest-console/src/BufferedConsole.ts index 08583a76711b..48f5fda2eae3 100644 --- a/packages/jest-console/src/BufferedConsole.ts +++ b/packages/jest-console/src/BufferedConsole.ts @@ -19,24 +19,19 @@ import type { } from './types'; export default class BufferedConsole extends Console { - private _buffer: ConsoleBuffer; - private _counters: LogCounters; - private _timers: LogTimers; - private _groupDepth: number; + private _buffer: ConsoleBuffer = []; + private _counters: LogCounters = {}; + private _timers: LogTimers = {}; + private _groupDepth = 0; constructor() { - const buffer: ConsoleBuffer = []; super({ write: (message: string) => { - BufferedConsole.write(buffer, 'log', message, null); + BufferedConsole.write(this._buffer, 'log', message, null); return true; }, } as NodeJS.WritableStream); - this._buffer = buffer; - this._counters = {}; - this._timers = {}; - this._groupDepth = 0; } Console: NodeJS.ConsoleConstructor = Console; diff --git a/packages/jest-console/src/CustomConsole.ts b/packages/jest-console/src/CustomConsole.ts index 34bd357a06e0..4a46b8359f36 100644 --- a/packages/jest-console/src/CustomConsole.ts +++ b/packages/jest-console/src/CustomConsole.ts @@ -18,9 +18,9 @@ export default class CustomConsole extends Console { private _stdout: NodeJS.WriteStream; private _stderr: NodeJS.WriteStream; private _formatBuffer: Formatter; - private _counters: LogCounters; - private _timers: LogTimers; - private _groupDepth: number; + private _counters: LogCounters = {}; + private _timers: LogTimers = {}; + private _groupDepth = 0; constructor( stdout: NodeJS.WriteStream, @@ -32,9 +32,6 @@ export default class CustomConsole extends Console { this._stdout = stdout; this._stderr = stderr; this._formatBuffer = formatBuffer; - this._counters = {}; - this._timers = {}; - this._groupDepth = 0; } Console: NodeJS.ConsoleConstructor = Console; From ebaf3a25195202cfcfc7c856193e13cde6547089 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 14 Sep 2020 09:43:24 +0200 Subject: [PATCH 3/6] co-locate props --- packages/jest-console/src/BufferedConsole.ts | 4 ++-- packages/jest-console/src/CustomConsole.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/jest-console/src/BufferedConsole.ts b/packages/jest-console/src/BufferedConsole.ts index 48f5fda2eae3..55c4e20ffc95 100644 --- a/packages/jest-console/src/BufferedConsole.ts +++ b/packages/jest-console/src/BufferedConsole.ts @@ -24,6 +24,8 @@ export default class BufferedConsole extends Console { private _timers: LogTimers = {}; private _groupDepth = 0; + Console: NodeJS.ConsoleConstructor = Console; + constructor() { super({ write: (message: string) => { @@ -34,8 +36,6 @@ export default class BufferedConsole extends Console { } as NodeJS.WritableStream); } - Console: NodeJS.ConsoleConstructor = Console; - static write( buffer: ConsoleBuffer, type: LogType, diff --git a/packages/jest-console/src/CustomConsole.ts b/packages/jest-console/src/CustomConsole.ts index 4a46b8359f36..8412fbbea189 100644 --- a/packages/jest-console/src/CustomConsole.ts +++ b/packages/jest-console/src/CustomConsole.ts @@ -22,6 +22,8 @@ export default class CustomConsole extends Console { private _timers: LogTimers = {}; private _groupDepth = 0; + Console: NodeJS.ConsoleConstructor = Console; + constructor( stdout: NodeJS.WriteStream, stderr: NodeJS.WriteStream, @@ -34,8 +36,6 @@ export default class CustomConsole extends Console { this._formatBuffer = formatBuffer; } - Console: NodeJS.ConsoleConstructor = Console; - private _log(type: LogType, message: string) { clearLine(this._stdout); super.log( From 50c7ba43efff2b41521deb6fe6a9bd8faffdf1d5 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 14 Sep 2020 09:44:55 +0200 Subject: [PATCH 4/6] less syntax --- packages/jest-console/src/CustomConsole.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/jest-console/src/CustomConsole.ts b/packages/jest-console/src/CustomConsole.ts index 8412fbbea189..0bbb8561db2d 100644 --- a/packages/jest-console/src/CustomConsole.ts +++ b/packages/jest-console/src/CustomConsole.ts @@ -27,8 +27,7 @@ export default class CustomConsole extends Console { constructor( stdout: NodeJS.WriteStream, stderr: NodeJS.WriteStream, - formatBuffer: Formatter = (_type: LogType, message: string): string => - message, + formatBuffer: Formatter = (_type, message) => message, ) { super(stdout, stderr); this._stdout = stdout; From d37792d1006ef300ae8c5453e8a8f97a504224c3 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 14 Sep 2020 09:47:31 +0200 Subject: [PATCH 5/6] changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9aaf5641d85..d6702543432b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,8 @@ ### Fixes -- Fix lifecycle hook function types ([#10480](https://github.com/facebook/jest/pull/10480)) +- `[jest-console]` Add `Console` constructor to `console` object ([#10502](https://github.com/facebook/jest/pull/10502)) +- `[jest-globals]` Fix lifecycle hook function types ([#10480](https://github.com/facebook/jest/pull/10480)) ### Chore & Maintenance From 6955472ebbcf3b370cd51682437b62f4b3f0a334 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 14 Sep 2020 11:26:45 +0200 Subject: [PATCH 6/6] snap --- e2e/__tests__/__snapshots__/consoleAfterTeardown.test.ts.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/__tests__/__snapshots__/consoleAfterTeardown.test.ts.snap b/e2e/__tests__/__snapshots__/consoleAfterTeardown.test.ts.snap index c75128492c2e..0057efd49acc 100644 --- a/e2e/__tests__/__snapshots__/consoleAfterTeardown.test.ts.snap +++ b/e2e/__tests__/__snapshots__/consoleAfterTeardown.test.ts.snap @@ -15,6 +15,6 @@ PASS __tests__/console.test.js 14 | }); 15 | - at BufferedConsole.log (../../packages/jest-console/build/BufferedConsole.js:201:10) + at BufferedConsole.log (../../packages/jest-console/build/BufferedConsole.js:197:10) at log (__tests__/console.test.js:12:13) `;