@vitest/coverage-v8 2.0.0-beta.3 → 2.0.0-beta.6

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 CHANGED
@@ -1,4 +1,5 @@
1
1
  import { V8CoverageProvider } from './provider.js';
2
+ import 'istanbul-lib-coverage';
2
3
  import 'vitest/coverage';
3
4
  import 'vitest';
4
5
  import 'vitest/node';
@@ -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
- reportCoverage({ allTestsRun }?: ReportContext): Promise<void>;
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';
@@ -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 reportCoverage({ allTestsRun } = {}) {
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
- const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
2357
- if (!keepResults) {
2358
- this.coverageFiles = /* @__PURE__ */ new Map();
2359
- await promises$1.rm(this.coverageFilesDirectory, { recursive: true });
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": "2.0.0-beta.3",
4
+ "version": "2.0.0-beta.6",
5
5
  "description": "V8 coverage provider for Vitest",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -37,7 +37,7 @@
37
37
  "dist"
38
38
  ],
39
39
  "peerDependencies": {
40
- "vitest": "2.0.0-beta.3"
40
+ "vitest": "2.0.0-beta.6"
41
41
  },
42
42
  "dependencies": {
43
43
  "@ampproject/remapping": "^2.3.0",
@@ -62,8 +62,8 @@
62
62
  "@types/istanbul-reports": "^3.0.4",
63
63
  "pathe": "^1.1.2",
64
64
  "v8-to-istanbul": "^9.2.0",
65
- "vite-node": "2.0.0-beta.3",
66
- "vitest": "2.0.0-beta.3"
65
+ "vite-node": "2.0.0-beta.6",
66
+ "vitest": "2.0.0-beta.6"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "rimraf dist && rollup -c",