From ce2b12e812d0d14c1cca79ca594f695c7b9ab7ab Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 24 Oct 2022 18:25:45 -0700 Subject: [PATCH] adding notes before making change unecessary dif temp add logs for pending tests fix linting issues undo unecessary change --- lib/reporters/default.js | 3 +++ lib/run-status.js | 17 +++++++++++++++++ lib/runner.js | 6 ++++++ 3 files changed, 26 insertions(+) diff --git a/lib/reporters/default.js b/lib/reporters/default.js index 6bb14fc94..dd4543df6 100644 --- a/lib/reporters/default.js +++ b/lib/reporters/default.js @@ -370,8 +370,11 @@ export default class Reporter { } this.lineWriter.writeLine(`${testsInFile.size} tests were pending in ${this.relativeFile(file)}\n`); + const testTitleToLogs = evt.pendingTestsLogReference.get(file) ?? new Map(); for (const title of testsInFile) { + const logs = testTitleToLogs.get(title) ?? []; this.lineWriter.writeLine(`${figures.circleDotted} ${this.prefixTitle(file, title)}`); + this.writeLogs({logs}); } this.lineWriter.writeLine(''); diff --git a/lib/run-status.js b/lib/run-status.js index ea1149fa4..efd4d5961 100644 --- a/lib/run-status.js +++ b/lib/run-status.js @@ -9,6 +9,7 @@ export default class RunStatus extends Emittery { super(); this.pendingTests = new Map(); + this.pendingTestsLogReference = new Map(); this.emptyParallelRun = parallelRuns && parallelRuns.currentFileCount === 0 @@ -60,6 +61,7 @@ export default class RunStatus extends Emittery { }); this.pendingTests.set(testFile, new Set()); + this.pendingTestsLogReference.set(testFile, new Map()); worker.onStateChange(data => this.emitStateChange(data)); } @@ -124,10 +126,15 @@ export default class RunStatus extends Emittery { fileStats.remainingTests--; this.removePendingTest(event); break; + case 'test-register-log-reference': + this.addLogReference(event); + break; case 'timeout': stats.timeouts++; event.pendingTests = this.pendingTests; + event.pendingTestsLogReference = this.pendingTestsLogReference; this.pendingTests = new Map(); + this.pendingTestsLogReference = new Map(); for (const testsInFile of event.pendingTests.values()) { stats.timedOutTests += testsInFile.size; } @@ -135,11 +142,15 @@ export default class RunStatus extends Emittery { break; case 'interrupt': event.pendingTests = this.pendingTests; + event.pendingTestsLogReference = this.pendingTestsLogReference; this.pendingTests = new Map(); + this.pendingTestsLogReference = new Map(); break; case 'process-exit': event.pendingTests = this.pendingTests; + event.pendingTestsLogReference = this.pendingTestsLogReference; this.pendingTests = new Map(); + this.pendingTestsLogReference = new Map(); break; case 'uncaught-exception': stats.uncaughtExceptions++; @@ -198,6 +209,12 @@ export default class RunStatus extends Emittery { return 0; } + addLogReference(event) { + if (this.pendingTestsLogReference.has(event.testFile)) { + this.pendingTestsLogReference.get(event.testFile).set(event.title, event.logs); + } + } + addPendingTest(event) { if (this.pendingTests.has(event.testFile)) { this.pendingTests.get(event.testFile).add(event.title); diff --git a/lib/runner.js b/lib/runner.js index 181e28758..bb5dd647e 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -358,6 +358,12 @@ export default class Runner extends Emittery { notifyTimeoutUpdate: this.notifyTimeoutUpdate, }); + this.emit('stateChange', { + type: 'test-register-log-reference', + title: task.title, + logs: test.logs, + }); + const result = await this.runSingle(test); testOk = result.passed;