11/* eslint-disable unicorn/filename-case */ 
22
3+ import  mock  from  'mock-fs' 
34import  {  getFileInfo  }  from  'prettier' 
45
56import  isSupportedExtension  from  'pretty-quick/isSupportedExtension' 
67
7- afterEach ( ( )  =>  jest . clearAllMocks ( ) ) 
8+ beforeEach ( ( )  =>  { 
9+   mock ( { 
10+     'banana.js' : 'banana()' , 
11+     'banana.txt' : 'yellow' , 
12+     'bsym.js' : mock . symlink ( {  path : 'banana.js'  } ) , 
13+     'bsym.txt' : mock . symlink ( {  path : 'banana.js'  } ) ,  // Yes extensions don't match 
14+     dsym : mock . symlink ( {  path : 'subdir'  } ) , 
15+     subdir : { } , 
16+   } ) 
17+ } ) 
18+ 
19+ afterEach ( ( )  =>  { 
20+   mock . restore ( ) 
21+   jest . clearAllMocks ( ) 
22+ } ) 
823
924test ( 'return true when file with supported extension passed in' ,  async  ( )  =>  { 
1025  expect ( await  isSupportedExtension ( true ) ( 'banana.js' ) ) . toEqual ( true ) 
@@ -30,3 +45,24 @@ test('do not resolve config when false passed', async () => {
3045    resolveConfig : false , 
3146  } ) 
3247} ) 
48+ 
49+ test ( 'return true when file symlink with supported extension passed in' ,  async  ( )  =>  { 
50+   expect ( await  isSupportedExtension ( true ) ( 'bsym.js' ) ) . toEqual ( true ) 
51+   expect ( getFileInfo ) . toHaveBeenCalledWith ( 'bsym.js' ,  { 
52+     file : 'bsym.js' , 
53+     resolveConfig : true , 
54+   } ) 
55+ } ) 
56+ 
57+ test ( 'return false when file symlink with unsupported extension passed in' ,  async  ( )  =>  { 
58+   expect ( await  isSupportedExtension ( true ) ( 'bsym.txt' ) ) . toEqual ( false ) 
59+   expect ( getFileInfo ) . toHaveBeenCalledWith ( 'bsym.txt' ,  { 
60+     file : 'bsym.txt' , 
61+     resolveConfig : true , 
62+   } ) 
63+ } ) 
64+ 
65+ test ( 'return false when directory symlink passed in' ,  async  ( )  =>  { 
66+   expect ( await  isSupportedExtension ( true ) ( 'dsym' ) ) . toEqual ( false ) 
67+   expect ( getFileInfo ) . not . toHaveBeenCalled ( ) 
68+ } ) 
0 commit comments