9
9
import { normalize , virtualFs } from '@angular-devkit/core' ;
10
10
import { HostTree } from '@angular-devkit/schematics' ;
11
11
import { SchematicTestRunner , UnitTestTree } from '@angular-devkit/schematics/testing' ;
12
- import { map } from 'rxjs/operators' ;
13
12
import * as semver from 'semver' ;
14
13
import { angularMajorCompatGuarantee } from './index' ;
15
14
@@ -51,8 +50,8 @@ describe('@schematics/update', () => {
51
50
appTree = new UnitTestTree ( new HostTree ( host ) ) ;
52
51
} ) ;
53
52
54
- it ( 'ignores dependencies not hosted on the NPM registry' , ( done ) => {
55
- const tree = new UnitTestTree (
53
+ it ( 'ignores dependencies not hosted on the NPM registry' , async ( ) => {
54
+ let newTree = new UnitTestTree (
56
55
new HostTree (
57
56
new virtualFs . test . TestHost ( {
58
57
'/package.json' : `{
@@ -65,22 +64,15 @@ describe('@schematics/update', () => {
65
64
) ,
66
65
) ;
67
66
68
- schematicRunner
69
- . runSchematicAsync ( 'update' , undefined , tree )
70
- . pipe (
71
- map ( ( t ) => {
72
- const packageJson = JSON . parse ( t . readContent ( '/package.json' ) ) ;
73
- expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-base' ] ) . toBe (
74
- 'file:update-base-1.0.0.tgz' ,
75
- ) ;
76
- } ) ,
77
- )
78
- . toPromise ( )
79
- . then ( done , done . fail ) ;
67
+ newTree = await schematicRunner . runSchematic ( 'update' , undefined , newTree ) ;
68
+ const packageJson = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
69
+ expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-base' ] ) . toBe (
70
+ 'file:update-base-1.0.0.tgz' ,
71
+ ) ;
80
72
} , 45000 ) ;
81
73
82
74
it ( 'should not error with yarn 2.0 protocols' , async ( ) => {
83
- const tree = new UnitTestTree (
75
+ let newTree = new UnitTestTree (
84
76
new HostTree (
85
77
new virtualFs . test . TestHost ( {
86
78
'/package.json' : `{
@@ -94,20 +86,18 @@ describe('@schematics/update', () => {
94
86
) ,
95
87
) ;
96
88
97
- const newTree = await schematicRunner
98
- . runSchematicAsync (
99
- 'update' ,
100
- {
101
- packages : [ '@angular-devkit-tests/update-base' ] ,
102
- } ,
103
- tree ,
104
- )
105
- . toPromise ( ) ;
89
+ newTree = await schematicRunner . runSchematic (
90
+ 'update' ,
91
+ {
92
+ packages : [ '@angular-devkit-tests/update-base' ] ,
93
+ } ,
94
+ newTree ,
95
+ ) ;
106
96
const { dependencies } = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
107
97
expect ( dependencies [ '@angular-devkit-tests/update-base' ] ) . toBe ( '1.1.0' ) ;
108
98
} ) ;
109
99
110
- it ( 'updates Angular as compatible with Angular N-1' , ( done ) => {
100
+ it ( 'updates Angular as compatible with Angular N-1' , async ( ) => {
111
101
// Add the basic migration package.
112
102
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
113
103
const packageJson = JSON . parse ( content ) ;
@@ -121,25 +111,18 @@ describe('@schematics/update', () => {
121
111
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
122
112
) ;
123
113
124
- schematicRunner
125
- . runSchematicAsync (
126
- 'update' ,
127
- {
128
- packages : [ '@angular/core@^6.0.0' ] ,
129
- } ,
130
- appTree ,
131
- )
132
- . pipe (
133
- map ( ( tree ) => {
134
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
135
- expect ( packageJson [ 'dependencies' ] [ '@angular/core' ] [ 0 ] ) . toBe ( '6' ) ;
136
- } ) ,
137
- )
138
- . toPromise ( )
139
- . then ( done , done . fail ) ;
114
+ const newTree = await schematicRunner . runSchematic (
115
+ 'update' ,
116
+ {
117
+ packages : [ '@angular/core@^6.0.0' ] ,
118
+ } ,
119
+ appTree ,
120
+ ) ;
121
+ const newPpackageJson = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
122
+ expect ( newPpackageJson [ 'dependencies' ] [ '@angular/core' ] [ 0 ] ) . toBe ( '6' ) ;
140
123
} , 45000 ) ;
141
124
142
- it ( 'updates Angular as compatible with Angular N-1 (2)' , ( done ) => {
125
+ it ( 'updates Angular as compatible with Angular N-1 (2)' , async ( ) => {
143
126
// Add the basic migration package.
144
127
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
145
128
const packageJson = JSON . parse ( content ) ;
@@ -159,25 +142,19 @@ describe('@schematics/update', () => {
159
142
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
160
143
) ;
161
144
162
- schematicRunner
163
- . runSchematicAsync (
164
- 'update' ,
165
- {
166
- packages : [ '@angular/core@^6.0.0' ] ,
167
- } ,
168
- appTree ,
169
- )
170
- . pipe (
171
- map ( ( tree ) => {
172
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
173
- expect ( packageJson [ 'dependencies' ] [ '@angular/core' ] [ 0 ] ) . toBe ( '6' ) ;
174
- expect ( packageJson [ 'dependencies' ] [ 'rxjs' ] [ 0 ] ) . toBe ( '6' ) ;
175
- expect ( packageJson [ 'dependencies' ] [ 'typescript' ] [ 0 ] ) . toBe ( '2' ) ;
176
- expect ( packageJson [ 'dependencies' ] [ 'typescript' ] [ 2 ] ) . not . toBe ( '4' ) ;
177
- } ) ,
178
- )
179
- . toPromise ( )
180
- . then ( done , done . fail ) ;
145
+ const newTree = await schematicRunner . runSchematic (
146
+ 'update' ,
147
+ {
148
+ packages : [ '@angular/core@^6.0.0' ] ,
149
+ } ,
150
+ appTree ,
151
+ ) ;
152
+
153
+ const newPackageJson = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
154
+ expect ( newPackageJson [ 'dependencies' ] [ '@angular/core' ] [ 0 ] ) . toBe ( '6' ) ;
155
+ expect ( newPackageJson [ 'dependencies' ] [ 'rxjs' ] [ 0 ] ) . toBe ( '6' ) ;
156
+ expect ( newPackageJson [ 'dependencies' ] [ 'typescript' ] [ 0 ] ) . toBe ( '2' ) ;
157
+ expect ( newPackageJson [ 'dependencies' ] [ 'typescript' ] [ 2 ] ) . not . toBe ( '4' ) ;
181
158
} , 45000 ) ;
182
159
183
160
it ( 'uses packageGroup for versioning' , async ( ) => {
@@ -192,26 +169,19 @@ describe('@schematics/update', () => {
192
169
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
193
170
) ;
194
171
195
- await schematicRunner
196
- . runSchematicAsync (
197
- 'update' ,
198
- {
199
- packages : [ '@angular-devkit-tests/update-package-group-1' ] ,
200
- } ,
201
- appTree ,
202
- )
203
- . pipe (
204
- map ( ( tree ) => {
205
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
206
- const deps = packageJson [ 'dependencies' ] ;
207
- expect ( deps [ '@angular-devkit-tests/update-package-group-1' ] ) . toBe ( '1.2.0' ) ;
208
- expect ( deps [ '@angular-devkit-tests/update-package-group-2' ] ) . toBe ( '2.0.0' ) ;
209
- } ) ,
210
- )
211
- . toPromise ( ) ;
172
+ const newTree = await schematicRunner . runSchematic (
173
+ 'update' ,
174
+ {
175
+ packages : [ '@angular-devkit-tests/update-package-group-1' ] ,
176
+ } ,
177
+ appTree ,
178
+ ) ;
179
+ const { dependencies : deps } = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
180
+ expect ( deps [ '@angular-devkit-tests/update-package-group-1' ] ) . toBe ( '1.2.0' ) ;
181
+ expect ( deps [ '@angular-devkit-tests/update-package-group-2' ] ) . toBe ( '2.0.0' ) ;
212
182
} , 45000 ) ;
213
183
214
- it ( 'can migrate only' , ( done ) => {
184
+ it ( 'can migrate only' , async ( ) => {
215
185
// Add the basic migration package.
216
186
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
217
187
const packageJson = JSON . parse ( content ) ;
@@ -221,29 +191,21 @@ describe('@schematics/update', () => {
221
191
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
222
192
) ;
223
193
224
- schematicRunner
225
- . runSchematicAsync (
226
- 'update' ,
227
- {
228
- packages : [ '@angular-devkit-tests/update-migrations' ] ,
229
- migrateOnly : true ,
230
- } ,
231
- appTree ,
232
- )
233
- . pipe (
234
- map ( ( tree ) => {
235
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
236
- expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-base' ] ) . toBe ( '1.0.0' ) ;
237
- expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-migrations' ] ) . toBe (
238
- '1.0.0' ,
239
- ) ;
240
- } ) ,
241
- )
242
- . toPromise ( )
243
- . then ( done , done . fail ) ;
194
+ const newTree = await schematicRunner . runSchematic (
195
+ 'update' ,
196
+ {
197
+ packages : [ '@angular-devkit-tests/update-migrations' ] ,
198
+ migrateOnly : true ,
199
+ } ,
200
+ appTree ,
201
+ ) ;
202
+
203
+ const newPackageJson = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
204
+ expect ( newPackageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-base' ] ) . toBe ( '1.0.0' ) ;
205
+ expect ( newPackageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-migrations' ] ) . toBe ( '1.0.0' ) ;
244
206
} , 45000 ) ;
245
207
246
- it ( 'can migrate from only' , ( done ) => {
208
+ it ( 'can migrate from only' , async ( ) => {
247
209
// Add the basic migration package.
248
210
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
249
211
const packageJson = JSON . parse ( content ) ;
@@ -253,29 +215,20 @@ describe('@schematics/update', () => {
253
215
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
254
216
) ;
255
217
256
- schematicRunner
257
- . runSchematicAsync (
258
- 'update' ,
259
- {
260
- packages : [ '@angular-devkit-tests/update-migrations' ] ,
261
- migrateOnly : true ,
262
- from : '0.1.2' ,
263
- } ,
264
- appTree ,
265
- )
266
- . pipe (
267
- map ( ( tree ) => {
268
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
269
- expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-migrations' ] ) . toBe (
270
- '1.6.0' ,
271
- ) ;
272
- } ) ,
273
- )
274
- . toPromise ( )
275
- . then ( done , done . fail ) ;
218
+ const newTree = await schematicRunner . runSchematic (
219
+ 'update' ,
220
+ {
221
+ packages : [ '@angular-devkit-tests/update-migrations' ] ,
222
+ migrateOnly : true ,
223
+ from : '0.1.2' ,
224
+ } ,
225
+ appTree ,
226
+ ) ;
227
+ const { dependencies } = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
228
+ expect ( dependencies [ '@angular-devkit-tests/update-migrations' ] ) . toBe ( '1.6.0' ) ;
276
229
} , 45000 ) ;
277
230
278
- it ( 'can install and migrate with --from (short version number)' , ( done ) => {
231
+ it ( 'can install and migrate with --from (short version number)' , async ( ) => {
279
232
// Add the basic migration package.
280
233
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
281
234
const packageJson = JSON . parse ( content ) ;
@@ -285,29 +238,20 @@ describe('@schematics/update', () => {
285
238
virtualFs . stringToFileBuffer ( JSON . stringify ( packageJson ) ) ,
286
239
) ;
287
240
288
- schematicRunner
289
- . runSchematicAsync (
290
- 'update' ,
291
- {
292
- packages : [ '@angular-devkit-tests/update-migrations' ] ,
293
- migrateOnly : true ,
294
- from : '0' ,
295
- } ,
296
- appTree ,
297
- )
298
- . pipe (
299
- map ( ( tree ) => {
300
- const packageJson = JSON . parse ( tree . readContent ( '/package.json' ) ) ;
301
- expect ( packageJson [ 'dependencies' ] [ '@angular-devkit-tests/update-migrations' ] ) . toBe (
302
- '1.6.0' ,
303
- ) ;
304
- } ) ,
305
- )
306
- . toPromise ( )
307
- . then ( done , done . fail ) ;
241
+ const newTree = await schematicRunner . runSchematic (
242
+ 'update' ,
243
+ {
244
+ packages : [ '@angular-devkit-tests/update-migrations' ] ,
245
+ migrateOnly : true ,
246
+ from : '0' ,
247
+ } ,
248
+ appTree ,
249
+ ) ;
250
+ const { dependencies } = JSON . parse ( newTree . readContent ( '/package.json' ) ) ;
251
+ expect ( dependencies [ '@angular-devkit-tests/update-migrations' ] ) . toBe ( '1.6.0' ) ;
308
252
} , 45000 ) ;
309
253
310
- it ( 'validates peer dependencies' , ( done ) => {
254
+ it ( 'validates peer dependencies' , async ( ) => {
311
255
const content = virtualFs . fileBufferToString ( host . sync . read ( normalize ( '/package.json' ) ) ) ;
312
256
const packageJson = JSON . parse ( content ) ;
313
257
const dependencies = packageJson [ 'dependencies' ] ;
@@ -326,27 +270,16 @@ describe('@schematics/update', () => {
326
270
const hasPeerdepMsg = ( dep : string ) =>
327
271
messages . some ( ( str ) => str . includes ( `missing peer dependency of "${ dep } "` ) ) ;
328
272
329
- schematicRunner
330
- . runSchematicAsync (
331
- 'update' ,
332
- {
333
- packages : [ '@angular-devkit/build-angular' ] ,
334
- next : true ,
335
- } ,
336
- appTree ,
337
- )
338
- . pipe (
339
- map ( ( ) => {
340
- expect ( hasPeerdepMsg ( '@angular/compiler-cli' ) ) . toBeTruthy (
341
- `Should show @angular/compiler-cli message.` ,
342
- ) ;
343
- expect ( hasPeerdepMsg ( 'typescript' ) ) . toBeTruthy ( `Should show typescript message.` ) ;
344
- expect ( hasPeerdepMsg ( '@angular/localize' ) ) . toBeFalsy (
345
- `Should not show @angular/localize message.` ,
346
- ) ;
347
- } ) ,
348
- )
349
- . toPromise ( )
350
- . then ( done , done . fail ) ;
273
+ await schematicRunner . runSchematic (
274
+ 'update' ,
275
+ {
276
+ packages : [ '@angular-devkit/build-angular' ] ,
277
+ next : true ,
278
+ } ,
279
+ appTree ,
280
+ ) ;
281
+ expect ( hasPeerdepMsg ( '@angular/compiler-cli' ) ) . toBeTruthy ( ) ;
282
+ expect ( hasPeerdepMsg ( 'typescript' ) ) . toBeTruthy ( ) ;
283
+ expect ( hasPeerdepMsg ( '@angular/localize' ) ) . toBeFalsy ( ) ;
351
284
} , 45000 ) ;
352
285
} ) ;
0 commit comments