@@ -39,17 +39,19 @@ namespace ts {
39
39
40
40
interface VerifyBuild {
41
41
modifyDiskLayout : ( fs : vfs . FileSystem ) => void ;
42
+ tsconfigs ?: readonly string [ ] ;
42
43
expectedExitStatus : ExitStatus ;
43
44
expectedDiagnostics : ( fs : vfs . FileSystem ) => fakes . ExpectedDiagnostic [ ] ;
44
45
expectedOutputs : readonly string [ ] ;
45
46
notExpectedOutputs : readonly string [ ] ;
46
47
}
47
48
48
- function verifyBuild ( { modifyDiskLayout, expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs } : VerifyBuild ) {
49
+ function verifyBuild ( { modifyDiskLayout, tsconfigs = [ "/src/tsconfig.json" ] ,
50
+ expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs } : VerifyBuild ) {
49
51
const fs = projFs . shadow ( ) ;
50
52
const host = fakes . SolutionBuilderHost . create ( fs ) ;
51
53
modifyDiskLayout ( fs ) ;
52
- const builder = createSolutionBuilder ( host , [ "/src/tsconfig.json" ] , { verbose : true } ) ;
54
+ const builder = createSolutionBuilder ( host , tsconfigs , { verbose : true } ) ;
53
55
const exitStatus = builder . build ( ) ;
54
56
assert . equal ( exitStatus , expectedExitStatus ) ;
55
57
host . assertDiagnosticMessages ( ...expectedDiagnostics ( fs ) ) ;
@@ -156,5 +158,19 @@ namespace ts {
156
158
notExpectedOutputs : [ ...coreOutputs ( ) , ...animalOutputs ( ) , ...zooOutputs ( ) ]
157
159
} ) ;
158
160
} ) ;
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
+ } ) ;
159
175
} ) ;
160
176
}
0 commit comments