88// }
99
1010const t = require ( 'tap' )
11- const { rimrafPosix, rimrafPosixSync } = require ( '../dist/cjs/src/rimraf-posix.js' )
11+ const {
12+ rimrafPosix,
13+ rimrafPosixSync,
14+ } = require ( '../dist/cjs/src/rimraf-posix.js' )
1215
1316const fs = require ( '../dist/cjs/src/fs.js' )
1417
@@ -56,92 +59,104 @@ t.test('actually delete some stuff', t => {
5659} )
5760
5861t . test ( 'throw unlink errors' , async t => {
59- const { rimrafPosix, rimrafPosixSync } = t . mock ( '../dist/cjs/src/rimraf-posix.js' , {
60- '../dist/cjs/src/fs.js' : {
61- ...fs ,
62- unlinkSync : path => {
63- throw Object . assign ( new Error ( 'cannot unlink' ) , { code : 'FOO' } )
64- } ,
65- promises : {
66- ...fs . promises ,
67- unlink : async path => {
62+ const { rimrafPosix, rimrafPosixSync } = t . mock (
63+ '../dist/cjs/src/rimraf-posix.js' ,
64+ {
65+ '../dist/cjs/src/fs.js' : {
66+ ...fs ,
67+ unlinkSync : path => {
6868 throw Object . assign ( new Error ( 'cannot unlink' ) , { code : 'FOO' } )
6969 } ,
70+ promises : {
71+ ...fs . promises ,
72+ unlink : async path => {
73+ throw Object . assign ( new Error ( 'cannot unlink' ) , { code : 'FOO' } )
74+ } ,
75+ } ,
7076 } ,
71- } ,
72- } )
77+ }
78+ )
7379 const path = t . testdir ( fixture )
7480 t . throws ( ( ) => rimrafPosixSync ( path , { } ) , { code : 'FOO' } )
7581 t . rejects ( rimrafPosix ( path , { } ) , { code : 'FOO' } )
7682} )
7783
7884t . test ( 'throw rmdir errors' , async t => {
79- const { rimrafPosix, rimrafPosixSync } = t . mock ( '../dist/cjs/src/rimraf-posix.js' , {
80- '../dist/cjs/src/fs.js' : {
81- ...fs ,
82- rmdirSync : path => {
83- throw Object . assign ( new Error ( 'cannot rmdir' ) , { code : 'FOO' } )
84- } ,
85- promises : {
86- ...fs . promises ,
87- rmdir : async path => {
85+ const { rimrafPosix, rimrafPosixSync } = t . mock (
86+ '../dist/cjs/src/rimraf-posix.js' ,
87+ {
88+ '../dist/cjs/src/fs.js' : {
89+ ...fs ,
90+ rmdirSync : path => {
8891 throw Object . assign ( new Error ( 'cannot rmdir' ) , { code : 'FOO' } )
8992 } ,
93+ promises : {
94+ ...fs . promises ,
95+ rmdir : async path => {
96+ throw Object . assign ( new Error ( 'cannot rmdir' ) , { code : 'FOO' } )
97+ } ,
98+ } ,
9099 } ,
91- } ,
92- } )
100+ }
101+ )
93102 const path = t . testdir ( fixture )
94103 t . throws ( ( ) => rimrafPosixSync ( path , { } ) , { code : 'FOO' } )
95104 t . rejects ( rimrafPosix ( path , { } ) , { code : 'FOO' } )
96105} )
97106
98107t . test ( 'throw unexpected readdir errors' , async t => {
99- const { rimrafPosix, rimrafPosixSync } = t . mock ( '../dist/cjs/src/rimraf-posix.js' , {
100- '../dist/cjs/src/fs.js' : {
101- ...fs ,
102- readdirSync : path => {
103- throw Object . assign ( new Error ( 'cannot readdir' ) , { code : 'FOO' } )
104- } ,
105- promises : {
106- ...fs . promises ,
107- readdir : async path => {
108+ const { rimrafPosix, rimrafPosixSync } = t . mock (
109+ '../dist/cjs/src/rimraf-posix.js' ,
110+ {
111+ '../dist/cjs/src/fs.js' : {
112+ ...fs ,
113+ readdirSync : path => {
108114 throw Object . assign ( new Error ( 'cannot readdir' ) , { code : 'FOO' } )
109115 } ,
116+ promises : {
117+ ...fs . promises ,
118+ readdir : async path => {
119+ throw Object . assign ( new Error ( 'cannot readdir' ) , { code : 'FOO' } )
120+ } ,
121+ } ,
110122 } ,
111- } ,
112- } )
123+ }
124+ )
113125 const path = t . testdir ( fixture )
114126 t . throws ( ( ) => rimrafPosixSync ( path , { } ) , { code : 'FOO' } )
115127 t . rejects ( rimrafPosix ( path , { } ) , { code : 'FOO' } )
116128} )
117129
118130t . test ( 'ignore ENOENTs from unlink/rmdir' , async t => {
119- const { rimrafPosix, rimrafPosixSync } = t . mock ( '../dist/cjs/src/rimraf-posix.js' , {
120- '../dist/cjs/src/fs.js' : {
121- ...fs ,
122- // simulate a case where two rimrafs are happening in parallel,
123- // so the deletion happens AFTER the readdir, but before ours.
124- rmdirSync : path => {
125- fs . rmdirSync ( path )
126- fs . rmdirSync ( path )
127- } ,
128- unlinkSync : path => {
129- fs . unlinkSync ( path )
130- fs . unlinkSync ( path )
131- } ,
132- promises : {
133- ...fs . promises ,
134- rmdir : async path => {
131+ const { rimrafPosix, rimrafPosixSync } = t . mock (
132+ '../dist/cjs/src/rimraf-posix.js' ,
133+ {
134+ '../dist/cjs/src/fs.js' : {
135+ ...fs ,
136+ // simulate a case where two rimrafs are happening in parallel,
137+ // so the deletion happens AFTER the readdir, but before ours.
138+ rmdirSync : path => {
139+ fs . rmdirSync ( path )
135140 fs . rmdirSync ( path )
136- return fs . promises . rmdir ( path )
137141 } ,
138- unlink : async path => {
142+ unlinkSync : path => {
143+ fs . unlinkSync ( path )
139144 fs . unlinkSync ( path )
140- return fs . promises . unlink ( path )
145+ } ,
146+ promises : {
147+ ...fs . promises ,
148+ rmdir : async path => {
149+ fs . rmdirSync ( path )
150+ return fs . promises . rmdir ( path )
151+ } ,
152+ unlink : async path => {
153+ fs . unlinkSync ( path )
154+ return fs . promises . unlink ( path )
155+ } ,
141156 } ,
142157 } ,
143- } ,
144- } )
158+ }
159+ )
145160 const { statSync } = fs
146161 t . test ( 'sync' , t => {
147162 const path = t . testdir ( fixture )
@@ -161,18 +176,21 @@ t.test('ignore ENOENTs from unlink/rmdir', async t => {
161176t . test ( 'rimraffing root, do not actually rmdir root' , async t => {
162177 let ROOT = null
163178 const { parse } = require ( 'path' )
164- const { rimrafPosix, rimrafPosixSync } = t . mock ( '../dist/cjs/src/rimraf-posix.js' , {
165- path : {
166- ...require ( 'path' ) ,
167- parse : path => {
168- const p = parse ( path )
169- if ( path === ROOT ) {
170- p . root = path
171- }
172- return p
179+ const { rimrafPosix, rimrafPosixSync } = t . mock (
180+ '../dist/cjs/src/rimraf-posix.js' ,
181+ {
182+ path : {
183+ ...require ( 'path' ) ,
184+ parse : path => {
185+ const p = parse ( path )
186+ if ( path === ROOT ) {
187+ p . root = path
188+ }
189+ return p
190+ } ,
173191 } ,
174- } ,
175- } )
192+ }
193+ )
176194 t . test ( 'async' , async t => {
177195 ROOT = t . testdir ( fixture )
178196 await rimrafPosix ( ROOT , { preserveRoot : false } )
0 commit comments