mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
fix(coverage): istanbul untested files source maps are off (#9208)
This commit is contained in:
parent
5d26b87b08
commit
372e86fdef
@ -88,6 +88,7 @@ export class IstanbulCoverageProvider extends BaseCoverageProvider<ResolvedCover
|
||||
sourceMap as any,
|
||||
)
|
||||
|
||||
if (!id.includes('vitest-uncovered-coverage=true')) {
|
||||
const transformMap = new GenMapping(sourceMap)
|
||||
|
||||
eachMapping(new TraceMap(sourceMap as any), (mapping) => {
|
||||
@ -110,6 +111,7 @@ export class IstanbulCoverageProvider extends BaseCoverageProvider<ResolvedCover
|
||||
id,
|
||||
encodedMap as any,
|
||||
)
|
||||
}
|
||||
|
||||
const map = this.instrumenter.lastSourceMap() as any
|
||||
this.transformedModuleIds.add(id)
|
||||
@ -225,7 +227,7 @@ export class IstanbulCoverageProvider extends BaseCoverageProvider<ResolvedCover
|
||||
}
|
||||
|
||||
// Make sure file is not served from cache so that instrumenter loads up requested file coverage
|
||||
await transform(`${filename}?cache=${cacheKey}`)
|
||||
await transform(`${filename}?cache=${cacheKey}&vitest-uncovered-coverage=true`)
|
||||
const lastCoverage = this.instrumenter.lastFileCoverage()
|
||||
coverageMap.addFileCoverage(lastCoverage)
|
||||
|
||||
|
||||
@ -3,14 +3,14 @@ import { expect } from 'vitest'
|
||||
import { formatSummary } from './utils'
|
||||
|
||||
expect.addSnapshotSerializer({
|
||||
test: val => val.constructor.name === 'CoverageMap',
|
||||
test: val => val.constructor?.name === 'CoverageMap',
|
||||
serialize: (val: CoverageMap, config, indentation, depth, refs, printer) => {
|
||||
return printer(formatSummary(val.getCoverageSummary()), config, indentation, depth, refs)
|
||||
},
|
||||
})
|
||||
|
||||
expect.addSnapshotSerializer({
|
||||
test: val => val.constructor.name === 'FileCoverage',
|
||||
test: val => val.constructor?.name === 'FileCoverage',
|
||||
serialize: (val: FileCoverage, config, indentation, depth, refs, printer) => {
|
||||
return printer(formatSummary(val.toSummary()), config, indentation, depth, refs)
|
||||
},
|
||||
|
||||
@ -39,4 +39,34 @@ test('coverage results matches snapshot', async () => {
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
const lineCoverages = coverageMap.files().reduce((all, file) => ({
|
||||
[file]: coverageMap.fileCoverageFor(file).getLineCoverage(),
|
||||
...all,
|
||||
}), {})
|
||||
|
||||
expect(lineCoverages).toMatchInlineSnapshot(`
|
||||
{
|
||||
"<process-cwd>/fixtures/src/even.ts": {
|
||||
"2": 1,
|
||||
"6": 0,
|
||||
},
|
||||
"<process-cwd>/fixtures/src/math.ts": {
|
||||
"10": 0,
|
||||
"14": 0,
|
||||
"2": 1,
|
||||
"6": 0,
|
||||
},
|
||||
"<process-cwd>/fixtures/src/untested-file.ts": {
|
||||
"14": 0,
|
||||
"21": 0,
|
||||
"33": 0,
|
||||
"35": 0,
|
||||
"39": 0,
|
||||
"41": 0,
|
||||
"46": 0,
|
||||
"9": 0,
|
||||
},
|
||||
}
|
||||
`)
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user