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