From 1872fd02fc535dbd356c02e99a6d1ec6141dd327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ari=20Perkki=C3=B6?= Date: Thu, 6 Oct 2022 17:33:22 +0000 Subject: [PATCH] fix(coverage): fix sourcemaps of uncovered lines --- packages/coverage-istanbul/src/provider.ts | 2 +- .../coverage-test/coverage.istanbul.test.ts | 4 +-- test/coverage-test/src/untested-file.ts | 30 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/packages/coverage-istanbul/src/provider.ts b/packages/coverage-istanbul/src/provider.ts index 87f502ccd31a..64af1f15ceec 100644 --- a/packages/coverage-istanbul/src/provider.ts +++ b/packages/coverage-istanbul/src/provider.ts @@ -211,7 +211,7 @@ export class IstanbulCoverageProvider implements CoverageProvider { const lastCoverage = this.instrumenter.lastFileCoverage() if (lastCoverage) - coverageMap.data[lastCoverage.path] = lastCoverage + coverageMap.addFileCoverage(lastCoverage) } } } diff --git a/test/coverage-test/coverage-test/coverage.istanbul.test.ts b/test/coverage-test/coverage-test/coverage.istanbul.test.ts index 72dfddfbdcdc..45d58fd6a521 100644 --- a/test/coverage-test/coverage-test/coverage.istanbul.test.ts +++ b/test/coverage-test/coverage-test/coverage.istanbul.test.ts @@ -3,7 +3,7 @@ import { resolve } from 'pathe' import { expect, test } from 'vitest' test('istanbul html report', async () => { - const coveragePath = resolve('./coverage/coverage-test/src') + const coveragePath = resolve('./coverage') const files = fs.readdirSync(coveragePath) expect(files).toContain('index.html') @@ -24,7 +24,7 @@ test('istanbul lcov report', async () => { }) test('all includes untested files', () => { - const coveragePath = resolve('./coverage/coverage-test/src') + const coveragePath = resolve('./coverage') const files = fs.readdirSync(coveragePath) expect(files).toContain('untested-file.ts.html') diff --git a/test/coverage-test/src/untested-file.ts b/test/coverage-test/src/untested-file.ts index 1d1313eef8d4..9b6d86042cc0 100644 --- a/test/coverage-test/src/untested-file.ts +++ b/test/coverage-test/src/untested-file.ts @@ -1,3 +1,33 @@ +/* + * Some top level comment which adds some padding. This helps us see + * if sourcemaps are off. +*/ + export default function untestedFile() { return 'This file should end up in report when {"all": true} is given' } + +function add(a: number, b: number) { + // This line should NOT be covered + return a + b +} + +function multiply(a: number, b: number) { + // This line should NOT be covered + return a * b +} + +export function math(a: number, b: number, operator: '*' | '+') { + if (operator === '*') { + // This line should NOT be covered + return multiply(a, b) + } + + if (operator === '+') { + // This line should NOT be covered + return add(a, b) + } + + // This line should NOT be covered + throw new Error('Unsupported operator') +}