11import * as common from '../common/index.mjs' ;
22import 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' ;
44import { mkdir , writeFile , symlink , glob as asyncGlob } from 'node:fs/promises' ;
55import { glob , globSync , Dirent } from 'node:fs' ;
66import { test , describe } from 'node:test' ;
@@ -338,6 +338,11 @@ describe('fsPromises glob', function() {
338338 }
339339} ) ;
340340
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+
341346describe ( 'glob - withFileTypes' , function ( ) {
342347 const promisified = promisify ( glob ) ;
343348 for ( const [ pattern , expected ] of Object . entries ( patterns ) ) {
@@ -348,8 +353,7 @@ describe('glob - withFileTypes', function() {
348353 exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
349354 } ) ;
350355 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 ( ) ) ;
353357 } ) ;
354358 }
355359} ) ;
@@ -363,8 +367,7 @@ describe('globSync - withFileTypes', function() {
363367 exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
364368 } ) ;
365369 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 ( ) ) ;
368371 } ) ;
369372 }
370373} ) ;
@@ -379,8 +382,7 @@ describe('fsPromises glob - withFileTypes', function() {
379382 exclude : ( dirent ) => assert . ok ( dirent instanceof Dirent ) ,
380383 } ) ) actual . push ( item ) ;
381384 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 ( ) ) ;
384386 } ) ;
385387 }
386388} ) ;
0 commit comments