Skip to content

Commit 16a61e4

Browse files
committed
Fix coverage plugin not writing output - use recorder for async generation
- Coverage generation was async but not awaited by event.all.after - Process could exit before coverage file was written - Now uses recorder.add() to ensure coverage generation completes - Fixes 'writing output/coverage' message not appearing in tests
1 parent 4654f83 commit 16a61e4

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

lib/plugin/coverage.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,17 @@ export default function (config) {
149149
const coverageReport = new CoverageReport(coverageOptions)
150150
coverageReport.cleanCache()
151151

152-
event.dispatcher.on(event.all.after, async () => {
153-
output.print(`writing ${coverageOptions.outputDir}`)
154-
await coverageReport.generate()
152+
event.dispatcher.on(event.all.after, () => {
153+
// Add coverage generation to recorder to ensure it completes before process exit
154+
recorder.add(
155+
'generate coverage report',
156+
async () => {
157+
output.print(`writing ${coverageOptions.outputDir}`)
158+
await coverageReport.generate()
159+
},
160+
true,
161+
false,
162+
)
155163
})
156164

157165
// we're going to try to "start" coverage before each step because this is

0 commit comments

Comments
 (0)