@@ -3,7 +3,7 @@ import type { ResolvedResult } from 'eslint-import-context'
33
44vi . mock ( 'eslint-import-context' , ( ) => {
55 let mockContext : { cwd ?: string } | null = null
6-
6+
77 return {
88 useRuleContext : vi . fn ( ( ) => mockContext ) ,
99 __setMockContext : ( context : { cwd ?: string } | null ) => {
@@ -13,10 +13,13 @@ vi.mock('eslint-import-context', () => {
1313 }
1414} )
1515
16- import { resolve , createTypeScriptImportResolver } from 'eslint-import-resolver-typescript'
16+ import {
17+ resolve ,
18+ createTypeScriptImportResolver ,
19+ } from 'eslint-import-resolver-typescript'
1720import { useRuleContext } from 'eslint-import-context'
1821
19- const mockModule = await import ( 'eslint-import-context' ) as any
22+ const mockModule = ( await import ( 'eslint-import-context' ) ) as any
2023
2124describe ( 'Context-aware import resolution' , ( ) => {
2225 const originalCwd = process . cwd ( )
@@ -34,40 +37,58 @@ describe('Context-aware import resolution', () => {
3437
3538 describe ( 'Dynamic cwd resolution' , ( ) => {
3639 it ( 'should use context.cwd when available' , ( ) => {
37- const mockResolve = vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
38- const mockResolverFactory = vi . fn ( ) . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
39- vi . doMock ( 'unrs-resolver' , ( ) => ( { ResolverFactory : mockResolverFactory } ) )
40+ const mockResolve = vi
41+ . fn ( )
42+ . mockReturnValue ( { found : false } as ResolvedResult )
43+ const mockResolverFactory = vi
44+ . fn ( )
45+ . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
46+ vi . doMock ( 'unrs-resolver' , ( ) => ( {
47+ ResolverFactory : mockResolverFactory ,
48+ } ) )
4049
4150 mockModule . __setMockContext ( { cwd : testCwd1 } )
42-
51+
4352 resolve ( 'some-module' , '/test/file.ts' , { } )
44-
53+
4554 expect ( useRuleContext ) . toHaveBeenCalled ( )
4655 expect ( mockResolve ) . toHaveBeenCalled ( )
4756 } )
4857
4958 it ( 'should fallback to process.cwd() when context is null' , ( ) => {
50- const mockResolve = vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
51- const mockResolverFactory = vi . fn ( ) . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
52- vi . doMock ( 'unrs-resolver' , ( ) => ( { ResolverFactory : mockResolverFactory } ) )
59+ const mockResolve = vi
60+ . fn ( )
61+ . mockReturnValue ( { found : false } as ResolvedResult )
62+ const mockResolverFactory = vi
63+ . fn ( )
64+ . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
65+ vi . doMock ( 'unrs-resolver' , ( ) => ( {
66+ ResolverFactory : mockResolverFactory ,
67+ } ) )
5368
5469 mockModule . __setMockContext ( null )
55-
70+
5671 resolve ( 'some-module' , '/test/file.ts' , { } )
57-
72+
5873 expect ( useRuleContext ) . toHaveBeenCalled ( )
5974 expect ( mockResolve ) . toHaveBeenCalled ( )
6075 } )
6176
6277 it ( 'should fallback to process.cwd() when context.cwd is undefined' , ( ) => {
63- const mockResolve = vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
64- const mockResolverFactory = vi . fn ( ) . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
65- vi . doMock ( 'unrs-resolver' , ( ) => ( { ResolverFactory : mockResolverFactory } ) )
78+ const mockResolve = vi
79+ . fn ( )
80+ . mockReturnValue ( { found : false } as ResolvedResult )
81+ const mockResolverFactory = vi
82+ . fn ( )
83+ . mockImplementation ( ( ) => ( { sync : mockResolve } ) )
84+ vi . doMock ( 'unrs-resolver' , ( ) => ( {
85+ ResolverFactory : mockResolverFactory ,
86+ } ) )
6687
6788 mockModule . __setMockContext ( { } )
68-
89+
6990 resolve ( 'some-module' , '/test/file.ts' , { } )
70-
91+
7192 expect ( useRuleContext ) . toHaveBeenCalled ( )
7293 expect ( mockResolve ) . toHaveBeenCalled ( )
7394 } )
@@ -78,49 +99,49 @@ describe('Context-aware import resolution', () => {
7899 const mockResolverFactory = vi . fn ( )
79100 vi . doMock ( 'unrs-resolver' , ( ) => ( {
80101 ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => ( {
81- sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
82- } ) )
102+ sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
103+ } ) ) ,
83104 } ) )
84105
85106 mockModule . __setMockContext ( { cwd : testCwd1 } )
86-
107+
87108 resolve ( 'some-module' , '/test/file.ts' , { } )
88-
109+
89110 expect ( mockResolverFactory ) . toHaveBeenCalledTimes ( 1 )
90111 } )
91112
92113 it ( 'should create separate cache entries for different cwd values' , ( ) => {
93114 const mockResolverFactory = vi . fn ( )
94115 vi . doMock ( 'unrs-resolver' , ( ) => ( {
95116 ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => ( {
96- sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
97- } ) )
117+ sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
118+ } ) ) ,
98119 } ) )
99120
100121 // First resolution with testCwd1
101122 mockModule . __setMockContext ( { cwd : testCwd1 } )
102123 resolve ( 'some-module' , '/test/file.ts' , { } )
103-
124+
104125 // Second resolution with testCwd2 should create new resolver
105126 mockModule . __setMockContext ( { cwd : testCwd2 } )
106127 resolve ( 'some-module' , '/test/file.ts' , { } )
107-
128+
108129 expect ( mockResolverFactory ) . toHaveBeenCalledTimes ( 2 )
109130 } )
110131
111132 it ( 'should reuse cache for same cwd and options' , ( ) => {
112133 const mockResolverFactory = vi . fn ( )
113134 vi . doMock ( 'unrs-resolver' , ( ) => ( {
114135 ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => ( {
115- sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
116- } ) )
136+ sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
137+ } ) ) ,
117138 } ) )
118139
119140 mockModule . __setMockContext ( { cwd : testCwd1 } )
120-
141+
121142 resolve ( 'some-module' , '/test/file1.ts' , { } )
122143 resolve ( 'another-module' , '/test/file2.ts' , { } )
123-
144+
124145 expect ( mockResolverFactory ) . toHaveBeenCalledTimes ( 1 )
125146 } )
126147 } )
@@ -129,75 +150,87 @@ describe('Context-aware import resolution', () => {
129150 it ( 'should update cwd and recreate resolver when context changes' , ( ) => {
130151 const mockResolverFactory = vi . fn ( )
131152 const mockCloneWithOptions = vi . fn ( )
132-
153+
133154 const mockResolver = {
134155 sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
135- cloneWithOptions : mockCloneWithOptions
156+ cloneWithOptions : mockCloneWithOptions ,
136157 }
137-
158+
138159 vi . doMock ( 'unrs-resolver' , ( ) => ( {
139- ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => mockResolver )
160+ ResolverFactory : mockResolverFactory . mockImplementation (
161+ ( ) => mockResolver ,
162+ ) ,
140163 } ) )
141164
142165 mockModule . __setMockContext ( null )
143- const resolver = createTypeScriptImportResolver ( { project : [ './tsconfig.json' ] } )
144-
166+ const resolver = createTypeScriptImportResolver ( {
167+ project : [ './tsconfig.json' ] ,
168+ } )
169+
145170 resolver . resolve ( 'some-module' , '/test/file.ts' )
146-
171+
147172 mockModule . __setMockContext ( { cwd : testCwd1 } )
148173 resolver . resolve ( 'another-module' , '/test/file.ts' )
149-
174+
150175 expect ( useRuleContext ) . toHaveBeenCalledTimes ( 2 )
151176 expect ( mockCloneWithOptions ) . toHaveBeenCalled ( )
152177 } )
153178
154179 it ( 'should create new resolver when no existing resolver and context changes' , ( ) => {
155180 const mockResolverFactory = vi . fn ( )
156-
181+
157182 const mockResolver = {
158- sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult )
183+ sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
159184 }
160-
185+
161186 vi . doMock ( 'unrs-resolver' , ( ) => ( {
162- ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => mockResolver )
187+ ResolverFactory : mockResolverFactory . mockImplementation (
188+ ( ) => mockResolver ,
189+ ) ,
163190 } ) )
164191
165192 mockModule . __setMockContext ( null )
166- const resolver = createTypeScriptImportResolver ( { project : [ './tsconfig.json' ] } )
167-
193+ const resolver = createTypeScriptImportResolver ( {
194+ project : [ './tsconfig.json' ] ,
195+ } )
196+
168197 mockModule . __setMockContext ( { cwd : testCwd1 } )
169198 resolver . resolve ( 'some-module' , '/test/file.ts' )
170-
199+
171200 expect ( mockResolverFactory ) . toHaveBeenCalled ( )
172201 } )
173202
174203 it ( 'should not recreate resolver when cwd remains the same' , ( ) => {
175204 const mockResolverFactory = vi . fn ( )
176205 const mockCloneWithOptions = vi . fn ( )
177-
206+
178207 const mockResolver = {
179208 sync : vi . fn ( ) . mockReturnValue ( { found : false } as ResolvedResult ) ,
180- cloneWithOptions : mockCloneWithOptions
209+ cloneWithOptions : mockCloneWithOptions ,
181210 }
182-
211+
183212 vi . doMock ( 'unrs-resolver' , ( ) => ( {
184- ResolverFactory : mockResolverFactory . mockImplementation ( ( ) => mockResolver )
213+ ResolverFactory : mockResolverFactory . mockImplementation (
214+ ( ) => mockResolver ,
215+ ) ,
185216 } ) )
186217
187218 mockModule . __setMockContext ( { cwd : testCwd1 } )
188- const resolver = createTypeScriptImportResolver ( { project : [ './tsconfig.json' ] } )
189-
219+ const resolver = createTypeScriptImportResolver ( {
220+ project : [ './tsconfig.json' ] ,
221+ } )
222+
190223 resolver . resolve ( 'some-module' , '/test/file1.ts' )
191224 resolver . resolve ( 'another-module' , '/test/file2.ts' )
192-
225+
193226 expect ( useRuleContext ) . toHaveBeenCalledTimes ( 2 )
194227 expect ( mockCloneWithOptions ) . not . toHaveBeenCalled ( )
195228 } )
196229
197230 it ( 'should handle interfaceVersion and name properties correctly' , ( ) => {
198231 mockModule . __setMockContext ( null )
199232 const resolver = createTypeScriptImportResolver ( )
200-
233+
201234 expect ( resolver . interfaceVersion ) . toBe ( 3 )
202235 expect ( resolver . name ) . toBe ( 'eslint-import-resolver-typescript' )
203236 } )
@@ -206,18 +239,18 @@ describe('Context-aware import resolution', () => {
206239 describe ( 'Function signature compatibility' , ( ) => {
207240 it ( 'should handle optional parameters correctly in resolve function' , ( ) => {
208241 mockModule . __setMockContext ( { cwd : testCwd1 } )
209-
242+
210243 expect ( ( ) => resolve ( 'module' , '/file.ts' , { } , null ) ) . not . toThrow ( )
211244 expect ( ( ) => resolve ( 'module' , '/file.ts' ) ) . not . toThrow ( )
212245 expect ( ( ) => resolve ( 'module' , '/file.ts' , undefined ) ) . not . toThrow ( )
213246 } )
214247
215248 it ( 'should handle optional parameters correctly in createTypeScriptImportResolver' , ( ) => {
216249 mockModule . __setMockContext ( null )
217-
250+
218251 expect ( ( ) => createTypeScriptImportResolver ( { } ) ) . not . toThrow ( )
219252 expect ( ( ) => createTypeScriptImportResolver ( ) ) . not . toThrow ( )
220253 expect ( ( ) => createTypeScriptImportResolver ( null ) ) . not . toThrow ( )
221254 } )
222255 } )
223- } )
256+ } )
0 commit comments