@@ -41,6 +41,20 @@ describe('resolveRelativeImport', () => {
4141 expect ( resolved ?. path ) . toBe ( 'dist/utils.js' )
4242 } )
4343
44+ it ( 'resolves a relative import with extension priority for TS files' , ( ) => {
45+ const files = new Set < string > ( [ 'src/utils.ts' , 'src/utils.js' ] )
46+ const resolved = resolveRelativeImport ( './utils' , 'src/index.ts' , files )
47+
48+ expect ( resolved ?. path ) . toBe ( 'src/utils.ts' )
49+ } )
50+
51+ it ( 'resolves a relative import to .d.ts when source is a declaration file' , ( ) => {
52+ const files = new Set < string > ( [ 'dist/types.d.ts' , 'dist/types.ts' ] )
53+ const resolved = resolveRelativeImport ( './types' , 'dist/index.d.ts' , files )
54+
55+ expect ( resolved ?. path ) . toBe ( 'dist/types.d.ts' )
56+ } )
57+
4458 it ( 'resolves directory imports to index files' , ( ) => {
4559 const files = new Set < string > ( [ 'dist/components/index.js' ] )
4660 const resolved = resolveRelativeImport ( './components' , 'dist/index.js' , files )
@@ -55,6 +69,13 @@ describe('resolveRelativeImport', () => {
5569 expect ( resolved ?. path ) . toBe ( 'dist/shared/helpers.js' )
5670 } )
5771
72+ it ( 'returns null when the path would go above the package root' , ( ) => {
73+ const files = new Set < string > ( [ 'dist/index.js' ] )
74+ const resolved = resolveRelativeImport ( '../../outside' , 'dist/index.js' , files )
75+
76+ expect ( resolved ) . toBeNull ( )
77+ } )
78+
5879 it ( 'returns null for non-relative imports' , ( ) => {
5980 const files = new Set < string > ( [ 'dist/utils.js' ] )
6081 const resolved = resolveRelativeImport ( 'react' , 'dist/index.js' , files )
0 commit comments