7
7
*/
8
8
9
9
import { Architect } from '@angular-devkit/architect' ;
10
- import { TestLogger } from '@angular-devkit/architect/testing' ;
10
+ import { TestLogger , TestProjectHost } from '@angular-devkit/architect/testing' ;
11
11
import { take , tap , timeout } from 'rxjs/operators' ;
12
12
import {
13
13
browserBuild ,
@@ -30,6 +30,21 @@ describe('Browser Builder lazy modules', () => {
30
30
} ) ;
31
31
afterEach ( async ( ) => host . restore ( ) . toPromise ( ) ) ;
32
32
33
+ function addLazyLoadedModulesInTsConfig ( host : TestProjectHost , lazyModuleFiles : Record < string , string > ) {
34
+ const files = [
35
+ ...Object . keys ( lazyModuleFiles ) ,
36
+ 'main.ts' ,
37
+ ]
38
+ . map ( f => '"' + f . replace ( 'src/' , '' ) + '"' )
39
+ . join ( ', ' ) ;
40
+
41
+ host . replaceInFile (
42
+ 'src/tsconfig.app.json' ,
43
+ '"main.ts"' ,
44
+ `${ files } ` ,
45
+ ) ;
46
+ }
47
+
33
48
const cases : [ string , Record < string , string > ] [ ] = [
34
49
[ 'string' , lazyModuleStringImport ] ,
35
50
[ 'function' , lazyModuleFnImport ] ,
@@ -40,6 +55,10 @@ describe('Browser Builder lazy modules', () => {
40
55
host . writeMultipleFiles ( lazyModuleFiles ) ;
41
56
host . writeMultipleFiles ( imports ) ;
42
57
58
+ if ( name === 'string' ) {
59
+ addLazyLoadedModulesInTsConfig ( host , lazyModuleFiles ) ;
60
+ }
61
+
43
62
const { files } = await browserBuild ( architect , host , target ) ;
44
63
expect ( 'lazy-lazy-module.js' in files ) . toBe ( true ) ;
45
64
} ) ;
@@ -91,6 +110,7 @@ describe('Browser Builder lazy modules', () => {
91
110
it ( 'supports lazy bundle for lazy routes with AOT' , async ( ) => {
92
111
host . writeMultipleFiles ( lazyModuleFiles ) ;
93
112
host . writeMultipleFiles ( imports ) ;
113
+ addLazyLoadedModulesInTsConfig ( host , lazyModuleFiles ) ;
94
114
95
115
const { files } = await browserBuild ( architect , host , target , { aot : true } ) ;
96
116
if ( ivyEnabled ) {
@@ -131,10 +151,13 @@ describe('Browser Builder lazy modules', () => {
131
151
} ) ;
132
152
133
153
it ( `supports lazy bundle for System.import() calls` , async ( ) => {
134
- host . writeMultipleFiles ( {
154
+ const lazyfiles = {
135
155
'src/lazy-module.ts' : 'export const value = 42;' ,
136
156
'src/main.ts' : `declare var System: any; System.import('./lazy-module');` ,
137
- } ) ;
157
+ } ;
158
+
159
+ host . writeMultipleFiles ( lazyfiles ) ;
160
+ addLazyLoadedModulesInTsConfig ( host , lazyfiles ) ;
138
161
139
162
const { files } = await browserBuild ( architect , host , target ) ;
140
163
expect ( files [ 'lazy-module.js' ] ) . not . toBeUndefined ( ) ;
@@ -199,6 +222,7 @@ describe('Browser Builder lazy modules', () => {
199
222
}` ,
200
223
} ) ;
201
224
host . replaceInFile ( 'src/tsconfig.app.json' , `"module": "es2015"` , `"module": "esnext"` ) ;
225
+ addLazyLoadedModulesInTsConfig ( host , lazyModuleFiles ) ;
202
226
203
227
const { files } = await browserBuild ( architect , host , target , {
204
228
lazyModules : [ 'src/app/lazy/lazy.module' ] ,
@@ -227,6 +251,7 @@ describe('Browser Builder lazy modules', () => {
227
251
}` ,
228
252
} ) ;
229
253
host . replaceInFile ( 'src/tsconfig.app.json' , `"module": "es2015"` , `"module": "esnext"` ) ;
254
+ addLazyLoadedModulesInTsConfig ( host , lazyModuleFiles ) ;
230
255
const { files } = await browserBuild ( architect , host , target , {
231
256
lazyModules : [ 'src/app/lazy/lazy.module' ] ,
232
257
aot : true ,
0 commit comments