11namespace ts {
22 describe ( "unittests:: tsbuild:: outFile:: on amd modules with --out" , ( ) => {
33 let outFileFs : vfs . FileSystem ;
4- const { time, tick } = getTime ( ) ;
54 const enum project { lib , app }
65 function relName ( path : string ) { return path . slice ( 1 ) ; }
76 type Sources = [ string , readonly string [ ] ] ;
@@ -25,54 +24,52 @@ namespace ts {
2524 ]
2625 ] ;
2726 before ( ( ) => {
28- outFileFs = loadProjectFromDisk ( "tests/projects/amdModulesWithOut" , time ) ;
27+ outFileFs = loadProjectFromDisk ( "tests/projects/amdModulesWithOut" ) ;
2928 } ) ;
3029 after ( ( ) => {
3130 outFileFs = undefined ! ;
3231 } ) ;
3332
3433 interface VerifyOutFileScenarioInput {
35- scenario : string ;
36- modifyFs : ( fs : vfs . FileSystem ) => void ;
34+ subScenario : string ;
35+ modifyFs ? : ( fs : vfs . FileSystem ) => void ;
3736 modifyAgainFs ?: ( fs : vfs . FileSystem ) => void ;
3837 }
3938
4039 function verifyOutFileScenario ( {
41- scenario ,
40+ subScenario ,
4241 modifyFs,
4342 modifyAgainFs
4443 } : VerifyOutFileScenarioInput ) {
45- verifyTsbuildOutput ( {
46- scenario,
47- projFs : ( ) => outFileFs ,
48- time,
49- tick,
50- proj : "amdModulesWithOut" ,
51- rootNames : [ "/src/app" ] ,
44+ verifyTscIncrementalEdits ( {
45+ scenario : "amdModulesWithOut" ,
46+ subScenario,
47+ fs : ( ) => outFileFs ,
48+ commandLineArgs : [ "--b" , "/src/app" , "--verbose" ] ,
5249 baselineSourceMap : true ,
53- initialBuild : {
54- modifyFs
55- } ,
56- incrementalDtsUnchangedBuild : {
57- modifyFs : fs => appendText ( fs , relName ( sources [ project . lib ] [ source . ts ] [ 1 ] ) , "console.log(x);" )
58- } ,
59- incrementalHeaderChangedBuild : modifyAgainFs ? {
60- modifyFs : modifyAgainFs
61- } : undefined ,
62- baselineOnly : true
50+ modifyFs,
51+ incrementalScenarios : [
52+ {
53+ buildKind : BuildKind . IncrementalDtsUnchanged ,
54+ modifyFs : fs => appendText ( fs , relName ( sources [ project . lib ] [ source . ts ] [ 1 ] ) , "console.log(x);" )
55+ } ,
56+ ...( modifyAgainFs ? [ {
57+ buildKind : BuildKind . IncrementalHeadersChange ,
58+ modifyFs : modifyAgainFs
59+ } ] : emptyArray ) ,
60+ ]
6361 } ) ;
6462 }
6563
6664 describe ( "Prepend output with .tsbuildinfo" , ( ) => {
6765 verifyOutFileScenario ( {
68- scenario : "modules and globals mixed in amd" ,
69- modifyFs : noop
66+ subScenario : "modules and globals mixed in amd" ,
7067 } ) ;
7168
7269 // Prologues
7370 describe ( "Prologues" , ( ) => {
7471 verifyOutFileScenario ( {
75- scenario : "multiple prologues in all projects" ,
72+ subScenario : "multiple prologues in all projects" ,
7673 modifyFs : fs => {
7774 enableStrict ( fs , sources [ project . lib ] [ source . config ] ) ;
7875 addTestPrologue ( fs , sources [ project . lib ] [ source . ts ] [ 0 ] , `"myPrologue"` ) ;
@@ -90,7 +87,7 @@ namespace ts {
9087 describe ( "Shebang" , ( ) => {
9188 // changes declaration because its emitted in .d.ts file
9289 verifyOutFileScenario ( {
93- scenario : "shebang in all projects" ,
90+ subScenario : "shebang in all projects" ,
9491 modifyFs : fs => {
9592 addShebang ( fs , "lib" , "file0" ) ;
9693 addShebang ( fs , "lib" , "file1" ) ;
@@ -102,7 +99,7 @@ namespace ts {
10299 // emitHelpers
103100 describe ( "emitHelpers" , ( ) => {
104101 verifyOutFileScenario ( {
105- scenario : "multiple emitHelpers in all projects" ,
102+ subScenario : "multiple emitHelpers in all projects" ,
106103 modifyFs : fs => {
107104 addSpread ( fs , "lib" , "file0" ) ;
108105 addRest ( fs , "lib" , "file1" ) ;
@@ -117,7 +114,7 @@ namespace ts {
117114 describe ( "triple slash refs" , ( ) => {
118115 // changes declaration because its emitted in .d.ts file
119116 verifyOutFileScenario ( {
120- scenario : "triple slash refs in all projects" ,
117+ subScenario : "triple slash refs in all projects" ,
121118 modifyFs : fs => {
122119 addTripleSlashRef ( fs , "lib" , "file0" ) ;
123120 addTripleSlashRef ( fs , "app" , "file4" ) ;
@@ -161,7 +158,7 @@ ${internal} export enum internalEnum { a, b, c }`);
161158
162159 // Verify initial + incremental edits
163160 verifyOutFileScenario ( {
164- scenario : "stripInternal" ,
161+ subScenario : "stripInternal" ,
165162 modifyFs : stripInternalScenario ,
166163 modifyAgainFs : fs => replaceText ( fs , sources [ project . lib ] [ source . ts ] [ 1 ] , `export const` , `/*@internal*/ export const` ) ,
167164 } ) ;
@@ -175,26 +172,13 @@ ${internal} export enum internalEnum { a, b, c }`);
175172 replaceText ( fs , sources [ project . app ] [ source . ts ] [ 0 ] , "file1" , "lib/file1" ) ;
176173 }
177174
178- verifyTsbuildOutput ( {
179- scenario : "when the module resolution finds original source file" ,
180- projFs : ( ) => outFileFs ,
181- time,
182- tick,
183- proj : "amdModulesWithOut" ,
184- rootNames : [ "/src/app" ] ,
175+ verifyTsc ( {
176+ scenario : "amdModulesWithOut" ,
177+ subScenario : "when the module resolution finds original source file" ,
178+ fs : ( ) => outFileFs ,
179+ commandLineArgs : [ "-b" , "/src/app" , "--verbose" ] ,
180+ modifyFs,
185181 baselineSourceMap : true ,
186- initialBuild : {
187- modifyFs,
188- expectedDiagnostics : [
189- getExpectedDiagnosticForProjectsInBuild ( "src/lib/tsconfig.json" , "src/app/tsconfig.json" ) ,
190- [ Diagnostics . Project_0_is_out_of_date_because_output_file_1_does_not_exist , "src/lib/tsconfig.json" , "src/module.js" ] ,
191- [ Diagnostics . Building_project_0 , sources [ project . lib ] [ source . config ] ] ,
192- [ Diagnostics . Project_0_is_out_of_date_because_output_file_1_does_not_exist , "src/app/tsconfig.json" , "src/app/module.js" ] ,
193- [ Diagnostics . Building_project_0 , sources [ project . app ] [ source . config ] ] ,
194- ]
195- } ,
196- baselineOnly : true ,
197- verifyDiagnostics : true
198182 } ) ;
199183 } ) ;
200184 } ) ;
0 commit comments