1
1
import * as common from '../common/index.mjs' ;
2
2
import tmpdir from '../common/tmpdir.js' ;
3
- import { resolve , dirname , sep , basename } from 'node:path' ;
3
+ import { resolve , dirname , sep , relative , join , isAbsolute } from 'node:path' ;
4
4
import { mkdir , writeFile , symlink , glob as asyncGlob } from 'node:fs/promises' ;
5
5
import { glob , globSync , Dirent } from 'node:fs' ;
6
6
import { test , describe } from 'node:test' ;
@@ -338,6 +338,11 @@ describe('fsPromises glob', function() {
338
338
}
339
339
} ) ;
340
340
341
+ const normalizeDirent = ( dirent ) => relative ( fixtureDir , join ( dirent . parentPath , dirent . name ) ) ;
342
+ // The call to `join()` with only one argument is important, as
343
+ // it ensures that the proper path seperators are applied.
344
+ const normalizePath = ( path ) => ( isAbsolute ( path ) ? relative ( fixtureDir , path ) : join ( path ) ) ;
345
+
341
346
describe ( 'glob - withFileTypes' , function ( ) {
342
347
const promisified = promisify ( glob ) ;
343
348
for ( const [ pattern , expected ] of Object . entries ( patterns ) ) {
@@ -348,8 +353,7 @@ describe('glob - withFileTypes', function() {
348
353
exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
349
354
} ) ;
350
355
assertDirents ( actual ) ;
351
- const normalized = expected . filter ( Boolean ) . map ( ( item ) => basename ( item ) ) . sort ( ) ;
352
- assert . deepStrictEqual ( actual . map ( ( dirent ) => dirent . name ) . sort ( ) , normalized . sort ( ) ) ;
356
+ assert . deepStrictEqual ( actual . map ( normalizeDirent ) . sort ( ) , expected . filter ( Boolean ) . map ( normalizePath ) . sort ( ) ) ;
353
357
} ) ;
354
358
}
355
359
} ) ;
@@ -363,8 +367,7 @@ describe('globSync - withFileTypes', function() {
363
367
exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
364
368
} ) ;
365
369
assertDirents ( actual ) ;
366
- const normalized = expected . filter ( Boolean ) . map ( ( item ) => basename ( item ) ) . sort ( ) ;
367
- assert . deepStrictEqual ( actual . map ( ( dirent ) => dirent . name ) . sort ( ) , normalized . sort ( ) ) ;
370
+ assert . deepStrictEqual ( actual . map ( normalizeDirent ) . sort ( ) , expected . filter ( Boolean ) . map ( normalizePath ) . sort ( ) ) ;
368
371
} ) ;
369
372
}
370
373
} ) ;
@@ -379,8 +382,7 @@ describe('fsPromises glob - withFileTypes', function() {
379
382
exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
380
383
} ) ) actual . push ( item ) ;
381
384
assertDirents ( actual ) ;
382
- const normalized = expected . filter ( Boolean ) . map ( ( item ) => basename ( item ) ) . sort ( ) ;
383
- assert . deepStrictEqual ( actual . map ( ( dirent ) => dirent . name ) . sort ( ) , normalized . sort ( ) ) ;
385
+ assert . deepStrictEqual ( actual . map ( normalizeDirent ) . sort ( ) , expected . filter ( Boolean ) . map ( normalizePath ) . sort ( ) ) ;
384
386
} ) ;
385
387
}
386
388
} ) ;
0 commit comments