@@ -2843,7 +2843,7 @@ namespace ts.projectSystem {
28432843 const session = createSession ( host , {
28442844 canUseEvents : true ,
28452845 eventHandler : e => {
2846- if ( e . eventName === server . ConfigFileDiagEvent || e . eventName === server . ProjectsUpdatedInBackgroundEvent || e . eventName === server . ProjectInfoTelemetryEvent || e . eventName === server . OpenFileInfoTelemetryEvent ) {
2846+ if ( e . eventName === server . ConfigFileDiagEvent || e . eventName === server . ProjectsUpdatedInBackgroundEvent || e . eventName === server . ProjectInfoTelemetryEvent || e . eventName === server . OpenFileInfoTelemetryEvent || e . eventName === server . LargeFileReferencedEvent ) {
28472847 return ;
28482848 }
28492849 assert . equal ( e . eventName , server . ProjectLanguageServiceStateEvent ) ;
@@ -9028,6 +9028,27 @@ export const x = 10;`
90289028 fileSize : server . maxFileSize + 1
90299029 } ;
90309030
9031+ function createSessionWithEventHandler ( host : TestServerHost ) {
9032+ const largeFileReferencedEvents : server . LargeFileReferencedEvent [ ] = [ ] ;
9033+ const session = createSession ( host , {
9034+ eventHandler : e => {
9035+ if ( e . eventName === server . LargeFileReferencedEvent ) {
9036+ largeFileReferencedEvents . push ( e ) ;
9037+ }
9038+ }
9039+ } ) ;
9040+
9041+ return { session, verifyLargeFileReferencedEvent } ;
9042+
9043+ function verifyLargeFileReferencedEvent ( ) {
9044+ assert . equal ( largeFileReferencedEvents . length , 1 ) ;
9045+ assert . deepEqual ( largeFileReferencedEvents , [ {
9046+ eventName : server . LargeFileReferencedEvent ,
9047+ data : { file : largeFile . path , fileSize : largeFile . fileSize , maxFileSize : server . maxFileSize }
9048+ } ] ) ;
9049+ }
9050+ }
9051+
90319052 it ( "when large file is included by tsconfig" , ( ) => {
90329053 const file : File = {
90339054 path : `${ projectRoot } /src/file.ts` ,
@@ -9039,13 +9060,15 @@ export const x = 10;`
90399060 } ;
90409061 const files = [ file , largeFile , libFile , tsconfig ] ;
90419062 const host = createServerHost ( files ) ;
9042- const service = createProjectService ( host ) ;
9043- service . openClientFile ( file . path ) ;
9044- service . checkNumberOfProjects ( { configuredProjects : 1 } ) ;
9063+ const { session, verifyLargeFileReferencedEvent } = createSessionWithEventHandler ( host ) ;
9064+ const service = session . getProjectService ( ) ;
9065+ openFilesForSession ( [ file ] , session ) ;
9066+ checkNumberOfProjects ( service , { configuredProjects : 1 } ) ;
90459067 const project = service . configuredProjects . get ( tsconfig . path ) ! ;
90469068 checkProjectActualFiles ( project , [ file . path , libFile . path , largeFile . path , tsconfig . path ] ) ;
90479069 const info = service . getScriptInfo ( largeFile . path ) ! ;
90489070 assert . equal ( info . cacheSourceFile . sourceFile . text , "" ) ;
9071+ verifyLargeFileReferencedEvent ( ) ;
90499072 } ) ;
90509073
90519074 it ( "when large file is included by module resolution" , ( ) => {
@@ -9055,13 +9078,15 @@ export const x = 10;`
90559078 } ;
90569079 const files = [ file , largeFile , libFile ] ;
90579080 const host = createServerHost ( files ) ;
9058- const service = createProjectService ( host ) ;
9059- service . openClientFile ( file . path ) ;
9060- service . checkNumberOfProjects ( { inferredProjects : 1 } ) ;
9081+ const { session, verifyLargeFileReferencedEvent } = createSessionWithEventHandler ( host ) ;
9082+ const service = session . getProjectService ( ) ;
9083+ openFilesForSession ( [ file ] , session ) ;
9084+ checkNumberOfProjects ( service , { inferredProjects : 1 } ) ;
90619085 const project = service . inferredProjects [ 0 ] ;
90629086 checkProjectActualFiles ( project , [ file . path , libFile . path , largeFile . path ] ) ;
90639087 const info = service . getScriptInfo ( largeFile . path ) ! ;
90649088 assert . equal ( info . cacheSourceFile . sourceFile . text , "" ) ;
9089+ verifyLargeFileReferencedEvent ( ) ;
90659090 } ) ;
90669091 } ) ;
90679092
0 commit comments