1
1
/* eslint-disable unicorn/filename-case */
2
2
3
+ import mock from 'mock-fs'
3
4
import { getFileInfo } from 'prettier'
4
5
5
6
import isSupportedExtension from 'pretty-quick/isSupportedExtension'
6
7
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
+ } )
8
23
9
24
test ( 'return true when file with supported extension passed in' , async ( ) => {
10
25
expect ( await isSupportedExtension ( true ) ( 'banana.js' ) ) . toEqual ( true )
@@ -30,3 +45,24 @@ test('do not resolve config when false passed', async () => {
30
45
resolveConfig : false ,
31
46
} )
32
47
} )
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