@@ -7016,9 +7016,13 @@ namespace ts.projectSystem {
70167016 return foundModule ;
70177017 }
70187018
7019- function getExpectedMissedLocationResolutionTrace ( host : TestServerHost , expectedTrace : string [ ] , dirPath : string , module : FileOrFolder , moduleName : string , useNodeModules : boolean ) {
7019+ function getExpectedMissedLocationResolutionTrace ( host : TestServerHost , expectedTrace : string [ ] , dirPath : string , module : FileOrFolder , moduleName : string , useNodeModules : boolean , cacheLocation ?: string ) {
70207020 let foundModule = false ;
70217021 forEachAncestorDirectory ( dirPath , dirPath => {
7022+ if ( dirPath === cacheLocation ) {
7023+ return foundModule ;
7024+ }
7025+
70227026 const directory = useNodeModules ? combinePaths ( dirPath , nodeModules ) : dirPath ;
70237027 if ( useNodeModules && ! foundModule && ! host . directoryExists ( directory ) ) {
70247028 expectedTrace . push ( `Directory '${ directory } ' does not exist, skipping all lookups in it.` ) ;
@@ -7043,8 +7047,10 @@ namespace ts.projectSystem {
70437047 ) ;
70447048 }
70457049
7046- function getExpectedResolutionTraceFooter ( expectedTrace : string [ ] , module : FileOrFolder , moduleName : string , addRealPathTrace : boolean ) {
7047- expectedTrace . push ( `File '${ module . path } ' exist - use it as a name resolution result.` ) ;
7050+ function getExpectedResolutionTraceFooter ( expectedTrace : string [ ] , module : FileOrFolder , moduleName : string , addRealPathTrace : boolean , ignoreModuleFileFound ?: boolean ) {
7051+ if ( ! ignoreModuleFileFound ) {
7052+ expectedTrace . push ( `File '${ module . path } ' exist - use it as a name resolution result.` ) ;
7053+ }
70487054 if ( addRealPathTrace ) {
70497055 expectedTrace . push ( `Resolving real path for '${ module . path } ', result '${ module . path } '.` ) ;
70507056 }
@@ -7067,6 +7073,15 @@ namespace ts.projectSystem {
70677073 return expectedTrace ;
70687074 }
70697075
7076+ function getExpectedNonRelativeModuleResolutionFromCacheTrace ( host : TestServerHost , file : FileOrFolder , module : FileOrFolder , moduleName : string , cacheLocation : string , expectedTrace : string [ ] = [ ] ) {
7077+ getExpectedResolutionTraceHeader ( expectedTrace , file , moduleName ) ;
7078+ expectedTrace . push ( `Loading module '${ moduleName } ' from 'node_modules' folder, target file type 'TypeScript'.` ) ;
7079+ getExpectedMissedLocationResolutionTrace ( host , expectedTrace , getDirectoryPath ( file . path ) , module , moduleName , /*useNodeModules*/ true , cacheLocation ) ;
7080+ expectedTrace . push ( `Resolution for module '${ moduleName } ' was found in cache from location '${ cacheLocation } '.` ) ;
7081+ getExpectedResolutionTraceFooter ( expectedTrace , module , moduleName , /*addRealPathTrace*/ true , /*ignoreModuleFileFound*/ true ) ;
7082+ return expectedTrace ;
7083+ }
7084+
70707085 function getExpectedReusingResolutionFromOldProgram ( file : FileOrFolder , moduleName : string ) {
70717086 return `Reusing resolution of module '${ moduleName } ' to file '${ file . path } ' from old program.` ;
70727087 }
@@ -7223,12 +7238,12 @@ namespace ts.projectSystem {
72237238 service . openClientFile ( file1 . path ) ;
72247239 const expectedTrace = getExpectedNonRelativeModuleResolutionTrace ( host , file1 , module1 , module1Name ) ;
72257240 getExpectedNonRelativeModuleResolutionTrace ( host , file1 , module2 , module2Name , expectedTrace ) ;
7226- getExpectedNonRelativeModuleResolutionTrace ( host , file2 , module1 , module1Name , expectedTrace ) ;
7227- getExpectedNonRelativeModuleResolutionTrace ( host , file2 , module2 , module2Name , expectedTrace ) ;
7228- getExpectedNonRelativeModuleResolutionTrace ( host , file4 , module1 , module1Name , expectedTrace ) ;
7229- getExpectedNonRelativeModuleResolutionTrace ( host , file4 , module2 , module2Name , expectedTrace ) ;
7230- getExpectedNonRelativeModuleResolutionTrace ( host , file3 , module1 , module1Name , expectedTrace ) ;
7231- getExpectedNonRelativeModuleResolutionTrace ( host , file3 , module2 , module2Name , expectedTrace ) ;
7241+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file2 , module1 , module1Name , getDirectoryPath ( file1 . path ) , expectedTrace ) ;
7242+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file2 , module2 , module2Name , getDirectoryPath ( file1 . path ) , expectedTrace ) ;
7243+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file4 , module1 , module1Name , ` ${ projectLocation } /product` , expectedTrace ) ;
7244+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file4 , module2 , module2Name , ` ${ projectLocation } /product` , expectedTrace ) ;
7245+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file3 , module1 , module1Name , getDirectoryPath ( file4 . path ) , expectedTrace ) ;
7246+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file3 , module2 , module2Name , getDirectoryPath ( file4 . path ) , expectedTrace ) ;
72327247 verifyTrace ( resolutionTrace , expectedTrace ) ;
72337248 verifyWatchesWithConfigFile ( host , files , file1 ) ;
72347249
@@ -7266,12 +7281,12 @@ namespace ts.projectSystem {
72667281 getExpectedRelativeModuleResolutionTrace ( host , file1 , file3 , file3Name , expectedTrace ) ;
72677282 getExpectedNonRelativeModuleResolutionTrace ( host , file1 , module1 , module1Name , expectedTrace ) ;
72687283 getExpectedNonRelativeModuleResolutionTrace ( host , file1 , module2 , module2Name , expectedTrace ) ;
7269- getExpectedNonRelativeModuleResolutionTrace ( host , file2 , module1 , module1Name , expectedTrace ) ;
7270- getExpectedNonRelativeModuleResolutionTrace ( host , file2 , module2 , module2Name , expectedTrace ) ;
7271- getExpectedNonRelativeModuleResolutionTrace ( host , file4 , module1 , module1Name , expectedTrace ) ;
7272- getExpectedNonRelativeModuleResolutionTrace ( host , file4 , module2 , module2Name , expectedTrace ) ;
7273- getExpectedNonRelativeModuleResolutionTrace ( host , file3 , module1 , module1Name , expectedTrace ) ;
7274- getExpectedNonRelativeModuleResolutionTrace ( host , file3 , module2 , module2Name , expectedTrace ) ;
7284+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file2 , module1 , module1Name , getDirectoryPath ( file1 . path ) , expectedTrace ) ;
7285+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file2 , module2 , module2Name , getDirectoryPath ( file1 . path ) , expectedTrace ) ;
7286+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file4 , module1 , module1Name , ` ${ projectLocation } /product` , expectedTrace ) ;
7287+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file4 , module2 , module2Name , ` ${ projectLocation } /product` , expectedTrace ) ;
7288+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file3 , module1 , module1Name , getDirectoryPath ( file4 . path ) , expectedTrace ) ;
7289+ getExpectedNonRelativeModuleResolutionFromCacheTrace ( host , file3 , module2 , module2Name , getDirectoryPath ( file4 . path ) , expectedTrace ) ;
72757290 verifyTrace ( resolutionTrace , expectedTrace ) ;
72767291
72777292 const currentDirectory = getDirectoryPath ( file1 . path ) ;
0 commit comments