@vitest/coverage-v8 1.6.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/provider.d.ts +5 -1
- package/dist/provider.js +33 -16
- package/package.json +14 -14
package/dist/index.d.ts
CHANGED
package/dist/provider.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { CoverageMap } from 'istanbul-lib-coverage';
|
1
2
|
import { BaseCoverageProvider } from 'vitest/coverage';
|
2
3
|
import { CoverageProvider, AfterSuiteRunMeta, ReportContext, ResolvedCoverageOptions } from 'vitest';
|
3
4
|
import { Vitest } from 'vitest/node';
|
@@ -32,7 +33,10 @@ declare class V8CoverageProvider extends BaseCoverageProvider implements Coverag
|
|
32
33
|
resolveOptions(): Options;
|
33
34
|
clean(clean?: boolean): Promise<void>;
|
34
35
|
onAfterSuiteRun({ coverage, transformMode, projectName }: AfterSuiteRunMeta): void;
|
35
|
-
|
36
|
+
generateCoverage({ allTestsRun }: ReportContext): Promise<CoverageMap>;
|
37
|
+
reportCoverage(coverageMap: unknown, { allTestsRun }: ReportContext): Promise<void>;
|
38
|
+
generateReports(coverageMap: CoverageMap, allTestsRun?: boolean): Promise<void>;
|
39
|
+
mergeReports(coverageMaps: unknown[]): Promise<void>;
|
36
40
|
private getUntestedFiles;
|
37
41
|
private getSources;
|
38
42
|
private convertCoverage;
|
package/dist/provider.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { existsSync, promises as promises$1, writeFileSync } from 'node:fs';
|
1
|
+
import { existsSync, promises as promises$1, readdirSync, writeFileSync } from 'node:fs';
|
2
2
|
import { pathToFileURL, fileURLToPath as fileURLToPath$1 } from 'node:url';
|
3
3
|
import require$$0 from 'assert';
|
4
4
|
import require$$2 from 'util';
|
@@ -2056,11 +2056,12 @@ var v8ToIstanbul = function (path, wrapperLength, sources, excludePath, excludeE
|
|
2056
2056
|
|
2057
2057
|
var v8ToIstanbul$1 = /*@__PURE__*/getDefaultExportFromCjs(v8ToIstanbul);
|
2058
2058
|
|
2059
|
+
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
2059
2060
|
function normalizeWindowsPath(input = "") {
|
2060
|
-
if (!input
|
2061
|
+
if (!input) {
|
2061
2062
|
return input;
|
2062
2063
|
}
|
2063
|
-
return input.replace(/\\/g, "/");
|
2064
|
+
return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
|
2064
2065
|
}
|
2065
2066
|
|
2066
2067
|
const _UNC_REGEX = /^[/\\]{2}/;
|
@@ -2096,7 +2097,7 @@ const normalize = function(path) {
|
|
2096
2097
|
return isPathAbsolute && !isAbsolute(path) ? `/${path}` : path;
|
2097
2098
|
};
|
2098
2099
|
function cwd() {
|
2099
|
-
if (typeof process !== "undefined") {
|
2100
|
+
if (typeof process !== "undefined" && typeof process.cwd === "function") {
|
2100
2101
|
return process.cwd().replace(/\\/g, "/");
|
2101
2102
|
}
|
2102
2103
|
return "/";
|
@@ -2185,10 +2186,9 @@ const isAbsolute = function(p) {
|
|
2185
2186
|
const isWindows = process.platform === "win32";
|
2186
2187
|
const drive = isWindows ? process.cwd()[0] : null;
|
2187
2188
|
drive ? drive === drive.toUpperCase() ? drive.toLowerCase() : drive.toUpperCase() : null;
|
2188
|
-
const
|
2189
|
-
const hashRE = /#.*$/s;
|
2189
|
+
const postfixRE = /[?#].*$/;
|
2190
2190
|
function cleanUrl(url) {
|
2191
|
-
return url.replace(
|
2191
|
+
return url.replace(postfixRE, "");
|
2192
2192
|
}
|
2193
2193
|
/* @__PURE__ */ new Set([
|
2194
2194
|
...builtinModules,
|
@@ -2209,7 +2209,7 @@ function cleanUrl(url) {
|
|
2209
2209
|
|
2210
2210
|
const WRAPPER_LENGTH = 185;
|
2211
2211
|
const VITE_EXPORTS_LINE_PATTERN = /Object\.defineProperty\(__vite_ssr_exports__.*\n/g;
|
2212
|
-
const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]
|
2212
|
+
const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]*\]\),*/g;
|
2213
2213
|
const DEFAULT_PROJECT = Symbol.for("default-project");
|
2214
2214
|
const debug = createDebug("vitest:coverage");
|
2215
2215
|
let uniqueId = 0;
|
@@ -2282,9 +2282,7 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2282
2282
|
const promise = promises$1.writeFile(filename, JSON.stringify(coverage), "utf-8");
|
2283
2283
|
this.pendingPromises.push(promise);
|
2284
2284
|
}
|
2285
|
-
async
|
2286
|
-
if (provider === "stackblitz")
|
2287
|
-
this.ctx.logger.log(c.blue(" % ") + c.yellow("@vitest/coverage-v8 does not work on Stackblitz. Report will be empty."));
|
2285
|
+
async generateCoverage({ allTestsRun }) {
|
2288
2286
|
const coverageMap = libCoverage.createCoverageMap({});
|
2289
2287
|
let index = 0;
|
2290
2288
|
const total = this.pendingPromises.length;
|
@@ -2315,6 +2313,24 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2315
2313
|
const converted = await this.convertCoverage(untestedCoverage);
|
2316
2314
|
coverageMap.merge(await transformCoverage(converted));
|
2317
2315
|
}
|
2316
|
+
return coverageMap;
|
2317
|
+
}
|
2318
|
+
async reportCoverage(coverageMap, { allTestsRun }) {
|
2319
|
+
if (provider === "stackblitz")
|
2320
|
+
this.ctx.logger.log(c.blue(" % ") + c.yellow("@vitest/coverage-v8 does not work on Stackblitz. Report will be empty."));
|
2321
|
+
await this.generateReports(
|
2322
|
+
coverageMap || libCoverage.createCoverageMap({}),
|
2323
|
+
allTestsRun
|
2324
|
+
);
|
2325
|
+
const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
|
2326
|
+
if (!keepResults) {
|
2327
|
+
this.coverageFiles = /* @__PURE__ */ new Map();
|
2328
|
+
await promises$1.rm(this.coverageFilesDirectory, { recursive: true });
|
2329
|
+
if (readdirSync(this.options.reportsDirectory).length === 0)
|
2330
|
+
await promises$1.rm(this.options.reportsDirectory, { recursive: true });
|
2331
|
+
}
|
2332
|
+
}
|
2333
|
+
async generateReports(coverageMap, allTestsRun) {
|
2318
2334
|
const context = libReport.createContext({
|
2319
2335
|
dir: this.options.reportsDirectory,
|
2320
2336
|
coverageMap,
|
@@ -2353,11 +2369,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
|
|
2353
2369
|
});
|
2354
2370
|
}
|
2355
2371
|
}
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2359
|
-
|
2360
|
-
|
2372
|
+
}
|
2373
|
+
async mergeReports(coverageMaps) {
|
2374
|
+
const coverageMap = libCoverage.createCoverageMap({});
|
2375
|
+
for (const coverage of coverageMaps)
|
2376
|
+
coverageMap.merge(coverage);
|
2377
|
+
await this.generateReports(coverageMap, true);
|
2361
2378
|
}
|
2362
2379
|
async getUntestedFiles(testedFiles) {
|
2363
2380
|
const transformResults = normalizeTransformResults(this.ctx.vitenode.fetchCache);
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vitest/coverage-v8",
|
3
3
|
"type": "module",
|
4
|
-
"version": "
|
4
|
+
"version": "2.0.0-beta.10",
|
5
5
|
"description": "V8 coverage provider for Vitest",
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
7
7
|
"license": "MIT",
|
@@ -37,22 +37,22 @@
|
|
37
37
|
"dist"
|
38
38
|
],
|
39
39
|
"peerDependencies": {
|
40
|
-
"vitest": "
|
40
|
+
"vitest": "2.0.0-beta.10"
|
41
41
|
},
|
42
42
|
"dependencies": {
|
43
|
-
"@ampproject/remapping": "^2.
|
43
|
+
"@ampproject/remapping": "^2.3.0",
|
44
44
|
"@bcoe/v8-coverage": "^0.2.3",
|
45
|
-
"debug": "^4.3.
|
45
|
+
"debug": "^4.3.5",
|
46
46
|
"istanbul-lib-coverage": "^3.2.2",
|
47
47
|
"istanbul-lib-report": "^3.0.1",
|
48
48
|
"istanbul-lib-source-maps": "^5.0.4",
|
49
|
-
"istanbul-reports": "^3.1.
|
50
|
-
"magic-string": "^0.30.
|
51
|
-
"magicast": "^0.3.
|
52
|
-
"picocolors": "^1.0.
|
53
|
-
"std-env": "^3.
|
54
|
-
"strip-literal": "^2.
|
55
|
-
"test-exclude": "^
|
49
|
+
"istanbul-reports": "^3.1.7",
|
50
|
+
"magic-string": "^0.30.10",
|
51
|
+
"magicast": "^0.3.4",
|
52
|
+
"picocolors": "^1.0.1",
|
53
|
+
"std-env": "^3.7.0",
|
54
|
+
"strip-literal": "^2.1.0",
|
55
|
+
"test-exclude": "^7.0.1"
|
56
56
|
},
|
57
57
|
"devDependencies": {
|
58
58
|
"@types/debug": "^4.1.12",
|
@@ -60,10 +60,10 @@
|
|
60
60
|
"@types/istanbul-lib-report": "^3.0.3",
|
61
61
|
"@types/istanbul-lib-source-maps": "^4.0.4",
|
62
62
|
"@types/istanbul-reports": "^3.0.4",
|
63
|
-
"pathe": "^1.1.
|
63
|
+
"pathe": "^1.1.2",
|
64
64
|
"v8-to-istanbul": "^9.2.0",
|
65
|
-
"vite-node": "
|
66
|
-
"vitest": "
|
65
|
+
"vite-node": "2.0.0-beta.10",
|
66
|
+
"vitest": "2.0.0-beta.10"
|
67
67
|
},
|
68
68
|
"scripts": {
|
69
69
|
"build": "rimraf dist && rollup -c",
|