@@ -108,6 +108,17 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
108
108
} ) ) ;
109
109
}
110
110
111
+ // fs.lutimes
112
+ {
113
+ assert . throws ( ( ) => {
114
+ fs . lutimes ( blockedFile , new Date ( ) , new Date ( ) , ( ) => { } ) ;
115
+ } , common . expectsError ( {
116
+ code : 'ERR_ACCESS_DENIED' ,
117
+ permission : 'FileSystemWrite' ,
118
+ resource : path . toNamespacedPath ( blockedFile ) ,
119
+ } ) ) ;
120
+ }
121
+
111
122
// fs.mkdir
112
123
{
113
124
assert . throws ( ( ) => {
@@ -270,3 +281,101 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
270
281
} ) ;
271
282
}
272
283
}
284
+
285
+ // fs.chmod
286
+ {
287
+ assert . throws ( ( ) => {
288
+ fs . chmod ( blockedFile , 0o755 , common . mustNotCall ( ) ) ;
289
+ } , {
290
+ code : 'ERR_ACCESS_DENIED' ,
291
+ permission : 'FileSystemWrite' ,
292
+ } ) ;
293
+ assert . rejects ( async ( ) => {
294
+ await fs . promises . chmod ( blockedFile , 0o755 ) ;
295
+ } , {
296
+ code : 'ERR_ACCESS_DENIED' ,
297
+ permission : 'FileSystemWrite' ,
298
+ } ) ;
299
+ }
300
+
301
+ // fs.lchmod
302
+ {
303
+ if ( common . isOSX ) {
304
+ assert . throws ( ( ) => {
305
+ fs . lchmod ( blockedFile , 0o755 , common . mustNotCall ( ) ) ;
306
+ } , {
307
+ code : 'ERR_ACCESS_DENIED' ,
308
+ permission : 'FileSystemWrite' ,
309
+ } ) ;
310
+ assert . rejects ( async ( ) => {
311
+ await fs . promises . lchmod ( blockedFile , 0o755 ) ;
312
+ } , {
313
+ code : 'ERR_ACCESS_DENIED' ,
314
+ permission : 'FileSystemWrite' ,
315
+ } ) ;
316
+ }
317
+ }
318
+
319
+ // fs.appendFile
320
+ {
321
+ assert . throws ( ( ) => {
322
+ fs . appendFile ( blockedFile , 'new data' , common . mustNotCall ( ) ) ;
323
+ } , {
324
+ code : 'ERR_ACCESS_DENIED' ,
325
+ permission : 'FileSystemWrite' ,
326
+ } ) ;
327
+ assert . rejects ( async ( ) => {
328
+ await fs . promises . appendFile ( blockedFile , 'new data' ) ;
329
+ } , {
330
+ code : 'ERR_ACCESS_DENIED' ,
331
+ permission : 'FileSystemWrite' ,
332
+ } ) ;
333
+ }
334
+
335
+ // fs.chown
336
+ {
337
+ assert . throws ( ( ) => {
338
+ fs . chown ( blockedFile , 1541 , 999 , common . mustNotCall ( ) ) ;
339
+ } , {
340
+ code : 'ERR_ACCESS_DENIED' ,
341
+ permission : 'FileSystemWrite' ,
342
+ } ) ;
343
+ assert . rejects ( async ( ) => {
344
+ await fs . promises . chown ( blockedFile , 1541 , 999 ) ;
345
+ } , {
346
+ code : 'ERR_ACCESS_DENIED' ,
347
+ permission : 'FileSystemWrite' ,
348
+ } ) ;
349
+ }
350
+
351
+ // fs.lchown
352
+ {
353
+ assert . throws ( ( ) => {
354
+ fs . lchown ( blockedFile , 1541 , 999 , common . mustNotCall ( ) ) ;
355
+ } , {
356
+ code : 'ERR_ACCESS_DENIED' ,
357
+ permission : 'FileSystemWrite' ,
358
+ } ) ;
359
+ assert . rejects ( async ( ) => {
360
+ await fs . promises . lchown ( blockedFile , 1541 , 999 ) ;
361
+ } , {
362
+ code : 'ERR_ACCESS_DENIED' ,
363
+ permission : 'FileSystemWrite' ,
364
+ } ) ;
365
+ }
366
+
367
+ // fs.link
368
+ {
369
+ assert . throws ( ( ) => {
370
+ fs . link ( blockedFile , path . join ( blockedFolder , '/linked' ) , common . mustNotCall ( ) ) ;
371
+ } , {
372
+ code : 'ERR_ACCESS_DENIED' ,
373
+ permission : 'FileSystemWrite' ,
374
+ } ) ;
375
+ assert . rejects ( async ( ) => {
376
+ await fs . promises . link ( blockedFile , path . join ( blockedFolder , '/linked' ) ) ;
377
+ } , {
378
+ code : 'ERR_ACCESS_DENIED' ,
379
+ permission : 'FileSystemWrite' ,
380
+ } ) ;
381
+ }
0 commit comments