1d8009c4bSEvan Baconimport { resolveWithTsConfigPaths } from '../resolveWithTsConfigPaths'; 2d8009c4bSEvan Bacon 3d8009c4bSEvan Bacondescribe(resolveWithTsConfigPaths, () => { 4d8009c4bSEvan Bacon it('resolves a simple alias', () => { 5*8a424bebSJames Ide const resolver = jest.fn(() => ({}) as any); 6d8009c4bSEvan Bacon expect( 7d8009c4bSEvan Bacon resolveWithTsConfigPaths( 8d8009c4bSEvan Bacon { 9d8009c4bSEvan Bacon paths: { 10d8009c4bSEvan Bacon '@foo/*': ['foo/*'], 11d8009c4bSEvan Bacon }, 12d8009c4bSEvan Bacon baseUrl: '.', 13d8009c4bSEvan Bacon }, 14d8009c4bSEvan Bacon { 15d8009c4bSEvan Bacon moduleName: '@foo/bar', 16d8009c4bSEvan Bacon originModulePath: './foo/bar', 17d8009c4bSEvan Bacon }, 18d8009c4bSEvan Bacon resolver 19d8009c4bSEvan Bacon ) 20d8009c4bSEvan Bacon ).not.toEqual(null); 21d8009c4bSEvan Bacon 22d8009c4bSEvan Bacon expect(resolver).toHaveBeenCalledWith('foo/bar'); 23d8009c4bSEvan Bacon }); 24d8009c4bSEvan Bacon it('resolves an alias with baseUrl', () => { 25*8a424bebSJames Ide const resolver = jest.fn(() => ({}) as any); 26d8009c4bSEvan Bacon expect( 27d8009c4bSEvan Bacon resolveWithTsConfigPaths( 28d8009c4bSEvan Bacon { 29d8009c4bSEvan Bacon paths: { 30d8009c4bSEvan Bacon '@foo/*': ['foo/*'], 31d8009c4bSEvan Bacon }, 32d8009c4bSEvan Bacon baseUrl: './src', 33d8009c4bSEvan Bacon }, 34d8009c4bSEvan Bacon { 35d8009c4bSEvan Bacon moduleName: '@foo/bar', 36d8009c4bSEvan Bacon originModulePath: './foo/bar', 37d8009c4bSEvan Bacon }, 38d8009c4bSEvan Bacon resolver 39d8009c4bSEvan Bacon ) 40d8009c4bSEvan Bacon ).not.toEqual(null); 41d8009c4bSEvan Bacon 42d8009c4bSEvan Bacon expect(resolver).toHaveBeenCalledWith('src/foo/bar'); 43d8009c4bSEvan Bacon }); 44d8009c4bSEvan Bacon it(`skips resolving if the origin module is inside the node_modules directory`, () => { 45*8a424bebSJames Ide const resolver = jest.fn(() => ({}) as any); 46d8009c4bSEvan Bacon expect( 47d8009c4bSEvan Bacon resolveWithTsConfigPaths( 48d8009c4bSEvan Bacon { 49d8009c4bSEvan Bacon paths: { 50d8009c4bSEvan Bacon '@foo/*': ['foo/*'], 51d8009c4bSEvan Bacon }, 52d8009c4bSEvan Bacon baseUrl: '.', 53d8009c4bSEvan Bacon }, 54d8009c4bSEvan Bacon { 55d8009c4bSEvan Bacon moduleName: '@foo/bar', 56d8009c4bSEvan Bacon originModulePath: './node_modules/foo/bar', 57d8009c4bSEvan Bacon }, 58d8009c4bSEvan Bacon resolver 59d8009c4bSEvan Bacon ) 60d8009c4bSEvan Bacon ).toEqual(null); 61d8009c4bSEvan Bacon 62d8009c4bSEvan Bacon expect(resolver).not.toHaveBeenCalled(); 63d8009c4bSEvan Bacon }); 64d8009c4bSEvan Bacon it(`skips resolving if the module name is absolute or relative`, () => { 65d8009c4bSEvan Bacon ['/foo/bar', './foo/bar'].forEach((moduleName) => { 66*8a424bebSJames Ide const resolver = jest.fn(() => ({}) as any); 67d8009c4bSEvan Bacon expect( 68d8009c4bSEvan Bacon resolveWithTsConfigPaths( 69d8009c4bSEvan Bacon { 70d8009c4bSEvan Bacon paths: { 71d8009c4bSEvan Bacon '@foo/*': ['foo/*'], 72d8009c4bSEvan Bacon }, 73d8009c4bSEvan Bacon baseUrl: '.', 74d8009c4bSEvan Bacon }, 75d8009c4bSEvan Bacon { 76d8009c4bSEvan Bacon moduleName, 77d8009c4bSEvan Bacon originModulePath: '/foo/bar', 78d8009c4bSEvan Bacon }, 79d8009c4bSEvan Bacon resolver 80d8009c4bSEvan Bacon ) 81d8009c4bSEvan Bacon ).toEqual(null); 82d8009c4bSEvan Bacon 83d8009c4bSEvan Bacon expect(resolver).not.toHaveBeenCalled(); 84d8009c4bSEvan Bacon }); 85d8009c4bSEvan Bacon }); 86d8009c4bSEvan Bacon}); 87