@vitest/coverage-istanbul 2.0.0-beta.2 → 2.0.0-beta.5

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.
@@ -38,8 +38,11 @@ declare class IstanbulCoverageProvider extends BaseCoverageProvider implements C
38
38
  } | undefined;
39
39
  onAfterSuiteRun({ coverage, transformMode, projectName }: AfterSuiteRunMeta): void;
40
40
  clean(clean?: boolean): Promise<void>;
41
- reportCoverage({ allTestsRun }?: ReportContext): Promise<void>;
42
- getCoverageMapForUncoveredFiles(coveredFiles: string[]): Promise<CoverageMap>;
41
+ generateCoverage({ allTestsRun }: ReportContext): Promise<CoverageMap>;
42
+ reportCoverage(coverageMap: unknown, { allTestsRun }: ReportContext): Promise<void>;
43
+ generateReports(coverageMap: CoverageMap, allTestsRun: boolean | undefined): Promise<void>;
44
+ mergeReports(coverageMaps: unknown[]): Promise<void>;
45
+ private getCoverageMapForUncoveredFiles;
43
46
  }
44
47
 
45
48
  export { IstanbulCoverageProvider };
package/dist/provider.js CHANGED
@@ -1,4 +1,4 @@
1
- import { promises, existsSync, writeFileSync } from 'node:fs';
1
+ import { promises, existsSync, readdirSync, writeFileSync } from 'node:fs';
2
2
  import { coverageConfigDefaults, defaultExclude, defaultInclude } from 'vitest/config';
3
3
  import { BaseCoverageProvider } from 'vitest/coverage';
4
4
  import c from 'picocolors';
@@ -203,7 +203,7 @@ class IstanbulCoverageProvider extends BaseCoverageProvider {
203
203
  this.coverageFiles = /* @__PURE__ */ new Map();
204
204
  this.pendingPromises = [];
205
205
  }
206
- async reportCoverage({ allTestsRun } = {}) {
206
+ async generateCoverage({ allTestsRun }) {
207
207
  const coverageMap = libCoverage.createCoverageMap({});
208
208
  let index = 0;
209
209
  const total = this.pendingPromises.length;
@@ -232,6 +232,22 @@ class IstanbulCoverageProvider extends BaseCoverageProvider {
232
232
  const uncoveredCoverage = await this.getCoverageMapForUncoveredFiles(coveredFiles);
233
233
  coverageMap.merge(await transformCoverage(uncoveredCoverage));
234
234
  }
235
+ return coverageMap;
236
+ }
237
+ async reportCoverage(coverageMap, { allTestsRun }) {
238
+ await this.generateReports(
239
+ coverageMap || libCoverage.createCoverageMap({}),
240
+ allTestsRun
241
+ );
242
+ const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
243
+ if (!keepResults) {
244
+ this.coverageFiles = /* @__PURE__ */ new Map();
245
+ await promises.rm(this.coverageFilesDirectory, { recursive: true });
246
+ if (readdirSync(this.options.reportsDirectory).length === 0)
247
+ await promises.rm(this.options.reportsDirectory, { recursive: true });
248
+ }
249
+ }
250
+ async generateReports(coverageMap, allTestsRun) {
235
251
  const context = libReport.createContext({
236
252
  dir: this.options.reportsDirectory,
237
253
  coverageMap,
@@ -270,11 +286,12 @@ class IstanbulCoverageProvider extends BaseCoverageProvider {
270
286
  });
271
287
  }
272
288
  }
273
- const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
274
- if (!keepResults) {
275
- this.coverageFiles = /* @__PURE__ */ new Map();
276
- await promises.rm(this.coverageFilesDirectory, { recursive: true });
277
- }
289
+ }
290
+ async mergeReports(coverageMaps) {
291
+ const coverageMap = libCoverage.createCoverageMap({});
292
+ for (const coverage of coverageMaps)
293
+ coverageMap.merge(coverage);
294
+ await this.generateReports(coverageMap, true);
278
295
  }
279
296
  async getCoverageMapForUncoveredFiles(coveredFiles) {
280
297
  const allFiles = await this.testExclude.glob(this.ctx.config.root);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/coverage-istanbul",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.2",
4
+ "version": "2.0.0-beta.5",
5
5
  "description": "Istanbul 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.2"
40
+ "vitest": "2.0.0-beta.5"
41
41
  },
42
42
  "dependencies": {
43
43
  "debug": "^4.3.4",
@@ -58,7 +58,7 @@
58
58
  "@types/istanbul-lib-source-maps": "^4.0.4",
59
59
  "@types/istanbul-reports": "^3.0.4",
60
60
  "pathe": "^1.1.2",
61
- "vitest": "2.0.0-beta.2"
61
+ "vitest": "2.0.0-beta.5"
62
62
  },
63
63
  "scripts": {
64
64
  "build": "rimraf dist && rollup -c",