@@ -152,6 +152,25 @@ fnErr();
152152 } ) ;
153153 }
154154
155+ function verifyConfigFileErrors ( { openFiles, expectedConfigFileDiagEvents } : VerifyScenario ) {
156+ it ( "verify config file errors" , ( ) => {
157+ const host = createServerHost ( [ dependencyTs , dependencyConfig , usageTs , usageConfig , libFile ] ) ;
158+ const { session, events } = createSessionWithEventTracking < server . ConfigFileDiagEvent > ( host , server . ConfigFileDiagEvent ) ;
159+
160+ for ( const file of openFiles ( ) ) {
161+ session . executeCommandSeq < protocol . OpenRequest > ( {
162+ command : protocol . CommandTypes . Open ,
163+ arguments : { file : file . path }
164+ } ) ;
165+ }
166+
167+ assert . deepEqual ( events , expectedConfigFileDiagEvents ( ) . map ( data => ( {
168+ eventName : server . ConfigFileDiagEvent ,
169+ data
170+ } ) ) ) ;
171+ } ) ;
172+ }
173+
155174 interface GetErrDiagnostics {
156175 file : File ;
157176 syntax : protocol . Diagnostic [ ] ;
@@ -170,11 +189,13 @@ fnErr();
170189 expectedGetErr : ( ) => readonly GetErrDiagnostics [ ] ;
171190 expectedGetErrForProject : ( ) => readonly GetErrForProjectDiagnostics [ ] ;
172191 expectedSyncDiagnostics : ( ) => readonly SyncDiagnostics [ ] ;
192+ expectedConfigFileDiagEvents : ( ) => readonly server . ConfigFileDiagEvent [ "data" ] [ ] ;
173193 }
174194 function verifyScenario ( scenario : VerifyScenario ) {
175195 verifyErrorsUsingGeterr ( scenario ) ;
176196 verifyErrorsUsingGeterrForProject ( scenario ) ;
177197 verifyErrorsUsingSyncMethods ( scenario ) ;
198+ verifyConfigFileErrors ( scenario ) ;
178199 }
179200
180201 function emptyDiagnostics ( file : File ) : GetErrDiagnostics {
@@ -243,6 +264,22 @@ fnErr();
243264 return { project, ...diagnostics } ;
244265 }
245266
267+ function usageConfigDiag ( ) : server . ConfigFileDiagEvent [ "data" ] {
268+ return {
269+ triggerFile : usageTs . path ,
270+ configFileName : usageConfig . path ,
271+ diagnostics : emptyArray
272+ } ;
273+ }
274+
275+ function dependencyConfigDiag ( ) : server . ConfigFileDiagEvent [ "data" ] {
276+ return {
277+ triggerFile : dependencyTs . path ,
278+ configFileName : dependencyConfig . path ,
279+ diagnostics : emptyArray
280+ } ;
281+ }
282+
246283 describe ( "when dependency project is not open" , ( ) => {
247284 verifyScenario ( {
248285 openFiles : ( ) => [ usageTs ] ,
@@ -267,6 +304,9 @@ fnErr();
267304 syncDiagnostics ( usageDiagnostics ( ) , usageConfig . path ) ,
268305 syncDiagnostics ( emptyDiagnostics ( dependencyTs ) , usageConfig . path ) ,
269306 ] ,
307+ expectedConfigFileDiagEvents : ( ) => [
308+ usageConfigDiag ( )
309+ ] ,
270310 } ) ;
271311 } ) ;
272312
@@ -290,6 +330,10 @@ fnErr();
290330 syncDiagnostics ( emptyDiagnostics ( dependencyTs ) , usageConfig . path ) ,
291331 syncDiagnostics ( dependencyDiagnostics ( ) , dependencyConfig . path ) ,
292332 ] ,
333+ expectedConfigFileDiagEvents : ( ) => [
334+ usageConfigDiag ( ) ,
335+ dependencyConfigDiag ( )
336+ ] ,
293337 } ) ;
294338 } ) ;
295339 } ) ;
0 commit comments