@@ -39,17 +39,19 @@ namespace ts {
3939
4040 interface VerifyBuild {
4141 modifyDiskLayout : ( fs : vfs . FileSystem ) => void ;
42+ tsconfigs ?: readonly string [ ] ;
4243 expectedExitStatus : ExitStatus ;
4344 expectedDiagnostics : ( fs : vfs . FileSystem ) => fakes . ExpectedDiagnostic [ ] ;
4445 expectedOutputs : readonly string [ ] ;
4546 notExpectedOutputs : readonly string [ ] ;
4647 }
4748
48- function verifyBuild ( { modifyDiskLayout, expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs } : VerifyBuild ) {
49+ function verifyBuild ( { modifyDiskLayout, tsconfigs = [ "/src/tsconfig.json" ] ,
50+ expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs } : VerifyBuild ) {
4951 const fs = projFs . shadow ( ) ;
5052 const host = fakes . SolutionBuilderHost . create ( fs ) ;
5153 modifyDiskLayout ( fs ) ;
52- const builder = createSolutionBuilder ( host , [ "/src/tsconfig.json" ] , { verbose : true } ) ;
54+ const builder = createSolutionBuilder ( host , tsconfigs , { verbose : true } ) ;
5355 const exitStatus = builder . build ( ) ;
5456 assert . equal ( exitStatus , expectedExitStatus ) ;
5557 host . assertDiagnosticMessages ( ...expectedDiagnostics ( fs ) ) ;
@@ -156,5 +158,19 @@ namespace ts {
156158 notExpectedOutputs : [ ...coreOutputs ( ) , ...animalOutputs ( ) , ...zooOutputs ( ) ]
157159 } ) ;
158160 } ) ;
161+
162+ it ( "returns an error exit in case of a bogus file" , ( ) => {
163+ verifyBuild ( {
164+ modifyDiskLayout : noop ,
165+ tsconfigs : [ "bogus.json" ] ,
166+ expectedExitStatus : ExitStatus . DiagnosticsPresent_OutputsSkipped ,
167+ expectedDiagnostics : _ => [
168+ getExpectedDiagnosticForProjectsInBuild ( "bogus.json" ) ,
169+ errorDiagnostic ( [ Diagnostics . File_0_not_found , "/bogus.json" ] ) ,
170+ ] ,
171+ expectedOutputs : emptyArray ,
172+ notExpectedOutputs : [ ...coreOutputs ( ) , ...animalOutputs ( ) , ...zooOutputs ( ) ]
173+ } ) ;
174+ } ) ;
159175 } ) ;
160176}
0 commit comments