Skip to content

Commit 795a643

Browse files
authored
fix(coverage): await profiler calls (#7763)
1 parent c45097e commit 795a643

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

packages/coverage-v8/src/index.ts

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ const session = new inspector.Session()
1010
let enabled = false
1111

1212
const mod: CoverageProviderModule = {
13-
startCoverage({ isolate }) {
13+
async startCoverage({ isolate }) {
1414
if (isolate === false && enabled) {
1515
return
1616
}
1717

1818
enabled = true
1919

2020
session.connect()
21-
session.post('Profiler.enable')
22-
session.post('Profiler.startPreciseCoverage', {
23-
callCount: true,
24-
detailed: true,
25-
})
21+
await new Promise(resolve => session.post('Profiler.enable', resolve))
22+
await new Promise(resolve =>
23+
session.post(
24+
'Profiler.startPreciseCoverage',
25+
{ callCount: true, detailed: true },
26+
resolve,
27+
))
2628
},
2729

2830
takeCoverage(options): Promise<{ result: ScriptCoverageWithOffset[] }> {
@@ -32,14 +34,19 @@ const mod: CoverageProviderModule = {
3234
return reject(error)
3335
}
3436

35-
const result = coverage.result
36-
.filter(filterResult)
37-
.map(res => ({
38-
...res,
39-
startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0,
40-
}))
37+
try {
38+
const result = coverage.result
39+
.filter(filterResult)
40+
.map(res => ({
41+
...res,
42+
startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0,
43+
}))
4144

42-
resolve({ result })
45+
resolve({ result })
46+
}
47+
catch (e) {
48+
reject(e)
49+
}
4350
})
4451

4552
if (provider === 'stackblitz') {
@@ -48,13 +55,13 @@ const mod: CoverageProviderModule = {
4855
})
4956
},
5057

51-
stopCoverage({ isolate }) {
58+
async stopCoverage({ isolate }) {
5259
if (isolate === false) {
5360
return
5461
}
5562

56-
session.post('Profiler.stopPreciseCoverage')
57-
session.post('Profiler.disable')
63+
await new Promise(resolve => session.post('Profiler.stopPreciseCoverage', resolve))
64+
await new Promise(resolve => session.post('Profiler.disable', resolve))
5865
session.disconnect()
5966
},
6067

0 commit comments

Comments
 (0)