File tree Expand file tree Collapse file tree 2 files changed +49
-0
lines changed
Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -159,6 +159,12 @@ export default class HTMLReporter implements Reporter {
159159 if ( this . ctx . config . coverage . enabled && this . ctx . config . coverage . htmlDir ) {
160160 const coverageHtmlDir = this . ctx . config . coverage . htmlDir
161161 const destCoverageDir = resolve ( this . reporterDir , 'coverage' )
162+ if ( coverageHtmlDir === destCoverageDir ) {
163+ // skip and preserve already generated coverage report.
164+ // this can happen when users configures `outputFile`
165+ // next to `coverage.reportsDirectory`.
166+ return
167+ }
162168 await fs . rm ( destCoverageDir , { recursive : true , force : true } )
163169 await fs . mkdir ( destCoverageDir , { recursive : true } )
164170 await fs . cp ( coverageHtmlDir , destCoverageDir , { recursive : true } )
Original file line number Diff line number Diff line change @@ -118,6 +118,7 @@ test('basic', () => {});
118118 ] ,
119119 } ,
120120 } )
121+ expect ( result . stderr ) . toMatchInlineSnapshot ( `""` )
121122 expect ( result . errorTree ( ) ) . toMatchInlineSnapshot ( `
122123 {
123124 "basic.test.ts": {
@@ -127,3 +128,45 @@ test('basic', () => {});
127128 ` )
128129 expect ( result . fs . statFile ( 'html/index.html' ) . isFile ( ) ) . toBe ( true )
129130} )
131+
132+ it ( 'html and coverage already next each other' , async ( ) => {
133+ const result = await runInlineTests ( {
134+ 'basic.ts' : `
135+ export const add = (a: number, b: number) => a + b;
136+ ` ,
137+ 'basic.test.ts' : `
138+ import { test, expect } from "vitest";
139+ import { add } from "./basic";
140+ test('add', () => {
141+ expect(add(1, 2)).toBe(3);
142+ });
143+ ` ,
144+ } , {
145+ reporters : [
146+ 'default' ,
147+ [ 'html' , { outputFile : './custom-dir/index.html' } ] ,
148+ ] ,
149+ coverage : {
150+ enabled : true ,
151+ reporter : [ 'html' ] ,
152+ reportsDirectory : './custom-dir/coverage' ,
153+ } ,
154+ } )
155+ expect ( result . stderr ) . toMatchInlineSnapshot ( `""` )
156+ expect ( result . errorTree ( ) ) . toMatchInlineSnapshot ( `
157+ {
158+ "basic.test.ts": {
159+ "add": "passed",
160+ },
161+ }
162+ ` )
163+ expect ( {
164+ html : result . fs . statFile ( 'custom-dir/index.html' ) . isFile ( ) ,
165+ coverage : result . fs . statFile ( 'custom-dir/coverage/index.html' ) . isFile ( ) ,
166+ } ) . toMatchInlineSnapshot ( `
167+ {
168+ "coverage": true,
169+ "html": true,
170+ }
171+ ` )
172+ } )
You can’t perform that action at this time.
0 commit comments