1
1
namespace ts {
2
2
describe ( "unittests:: tsbuild:: outFile:: on amd modules with --out" , ( ) => {
3
3
let outFileFs : vfs . FileSystem ;
4
- const { time, tick } = getTime ( ) ;
5
4
const enum project { lib , app }
6
5
function relName ( path : string ) { return path . slice ( 1 ) ; }
7
6
type Sources = [ string , readonly string [ ] ] ;
@@ -25,54 +24,52 @@ namespace ts {
25
24
]
26
25
] ;
27
26
before ( ( ) => {
28
- outFileFs = loadProjectFromDisk ( "tests/projects/amdModulesWithOut" , time ) ;
27
+ outFileFs = loadProjectFromDisk ( "tests/projects/amdModulesWithOut" ) ;
29
28
} ) ;
30
29
after ( ( ) => {
31
30
outFileFs = undefined ! ;
32
31
} ) ;
33
32
34
33
interface VerifyOutFileScenarioInput {
35
- scenario : string ;
36
- modifyFs : ( fs : vfs . FileSystem ) => void ;
34
+ subScenario : string ;
35
+ modifyFs ? : ( fs : vfs . FileSystem ) => void ;
37
36
modifyAgainFs ?: ( fs : vfs . FileSystem ) => void ;
38
37
}
39
38
40
39
function verifyOutFileScenario ( {
41
- scenario ,
40
+ subScenario ,
42
41
modifyFs,
43
42
modifyAgainFs
44
43
} : 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" ] ,
52
49
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
+ ]
63
61
} ) ;
64
62
}
65
63
66
64
describe ( "Prepend output with .tsbuildinfo" , ( ) => {
67
65
verifyOutFileScenario ( {
68
- scenario : "modules and globals mixed in amd" ,
69
- modifyFs : noop
66
+ subScenario : "modules and globals mixed in amd" ,
70
67
} ) ;
71
68
72
69
// Prologues
73
70
describe ( "Prologues" , ( ) => {
74
71
verifyOutFileScenario ( {
75
- scenario : "multiple prologues in all projects" ,
72
+ subScenario : "multiple prologues in all projects" ,
76
73
modifyFs : fs => {
77
74
enableStrict ( fs , sources [ project . lib ] [ source . config ] ) ;
78
75
addTestPrologue ( fs , sources [ project . lib ] [ source . ts ] [ 0 ] , `"myPrologue"` ) ;
@@ -90,7 +87,7 @@ namespace ts {
90
87
describe ( "Shebang" , ( ) => {
91
88
// changes declaration because its emitted in .d.ts file
92
89
verifyOutFileScenario ( {
93
- scenario : "shebang in all projects" ,
90
+ subScenario : "shebang in all projects" ,
94
91
modifyFs : fs => {
95
92
addShebang ( fs , "lib" , "file0" ) ;
96
93
addShebang ( fs , "lib" , "file1" ) ;
@@ -102,7 +99,7 @@ namespace ts {
102
99
// emitHelpers
103
100
describe ( "emitHelpers" , ( ) => {
104
101
verifyOutFileScenario ( {
105
- scenario : "multiple emitHelpers in all projects" ,
102
+ subScenario : "multiple emitHelpers in all projects" ,
106
103
modifyFs : fs => {
107
104
addSpread ( fs , "lib" , "file0" ) ;
108
105
addRest ( fs , "lib" , "file1" ) ;
@@ -117,7 +114,7 @@ namespace ts {
117
114
describe ( "triple slash refs" , ( ) => {
118
115
// changes declaration because its emitted in .d.ts file
119
116
verifyOutFileScenario ( {
120
- scenario : "triple slash refs in all projects" ,
117
+ subScenario : "triple slash refs in all projects" ,
121
118
modifyFs : fs => {
122
119
addTripleSlashRef ( fs , "lib" , "file0" ) ;
123
120
addTripleSlashRef ( fs , "app" , "file4" ) ;
@@ -161,7 +158,7 @@ ${internal} export enum internalEnum { a, b, c }`);
161
158
162
159
// Verify initial + incremental edits
163
160
verifyOutFileScenario ( {
164
- scenario : "stripInternal" ,
161
+ subScenario : "stripInternal" ,
165
162
modifyFs : stripInternalScenario ,
166
163
modifyAgainFs : fs => replaceText ( fs , sources [ project . lib ] [ source . ts ] [ 1 ] , `export const` , `/*@internal*/ export const` ) ,
167
164
} ) ;
@@ -175,26 +172,13 @@ ${internal} export enum internalEnum { a, b, c }`);
175
172
replaceText ( fs , sources [ project . app ] [ source . ts ] [ 0 ] , "file1" , "lib/file1" ) ;
176
173
}
177
174
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,
185
181
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
198
182
} ) ;
199
183
} ) ;
200
184
} ) ;
0 commit comments