1616
1717/* eslint-disable no-restricted-imports */
1818
19- import * as utils from '../utils' ;
20- import { describe , expect , jest , test } from '@jest/globals' ;
19+ import { beforeEach , describe , expect , jest , test } from '@jest/globals' ;
2120import fs from 'fs' ;
2221import tmp from 'tmp' ;
2322
@@ -34,6 +33,13 @@ jest.mock('fs', () => ({
3433} ) ) ;
3534jest . mock ( 'tmp' , ( ) => ( { dirSync : jest . fn ( ) } ) ) ;
3635
36+ let utils : typeof import ( '../utils' ) ;
37+ beforeEach ( async ( ) => {
38+ await jest . isolateModulesAsync ( async ( ) => {
39+ utils = await import ( '../utils' ) ;
40+ } ) ;
41+ } ) ;
42+
3743const mockedFs = jest . mocked ( fs ) ;
3844const mockedTmp = jest . mocked ( tmp ) ;
3945
@@ -176,7 +182,10 @@ describe('Utils', () => {
176182 utils . mktmpdir ( ) ;
177183
178184 expect ( mockedTmp . dirSync ) . toHaveBeenCalledTimes ( 1 ) ;
179- expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( { unsafeCleanup : true } ) ;
185+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( {
186+ name : '_work0' ,
187+ unsafeCleanup : true
188+ } ) ;
180189 } ) ;
181190
182191 test ( 'calls tmp.dirSync with the specified boolean parameter in input' , ( ) => {
@@ -188,7 +197,10 @@ describe('Utils', () => {
188197 utils . mktmpdir ( false ) ;
189198
190199 expect ( mockedTmp . dirSync ) . toHaveBeenCalledTimes ( 1 ) ;
191- expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( { unsafeCleanup : false } ) ;
200+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( {
201+ name : '_work0' ,
202+ unsafeCleanup : false
203+ } ) ;
192204 } ) ;
193205
194206 test ( 'returns the name of the directory created by tmp.dirSync' , ( ) => {
@@ -201,5 +213,38 @@ describe('Utils', () => {
201213
202214 expect ( content ) . toEqual ( 'tmpDir' ) ;
203215 } ) ;
216+
217+ test ( 'returns progressive folders if called repeatedly' , ( ) => {
218+ mockedTmp . dirSync . mockReturnValueOnce ( {
219+ name : 'tmpDir' ,
220+ removeCallback : ( ) => { }
221+ } ) ;
222+ mockedTmp . dirSync . mockReturnValueOnce ( {
223+ name : 'tmpDir' ,
224+ removeCallback : ( ) => { }
225+ } ) ;
226+ mockedTmp . dirSync . mockReturnValueOnce ( {
227+ name : 'tmpDir' ,
228+ removeCallback : ( ) => { }
229+ } ) ;
230+
231+ utils . mktmpdir ( ) ;
232+ utils . mktmpdir ( ) ;
233+ utils . mktmpdir ( ) ;
234+
235+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledTimes ( 3 ) ;
236+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( {
237+ name : '_work0' ,
238+ unsafeCleanup : true
239+ } ) ;
240+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( {
241+ name : '_work1' ,
242+ unsafeCleanup : true
243+ } ) ;
244+ expect ( mockedTmp . dirSync ) . toHaveBeenCalledWith ( {
245+ name : '_work2' ,
246+ unsafeCleanup : true
247+ } ) ;
248+ } ) ;
204249 } ) ;
205250} ) ;
0 commit comments