@@ -142,6 +142,52 @@ describe('utils/addDependenciesToPackages', () => {
142
142
expect ( pkg . getDependencyVersionRange ( 'project-only-dep' ) ) . toEqual ( '^1.0.0' ) ;
143
143
} ) ;
144
144
145
+ test ( 'should update all package dependencies when run from project root' , async ( ) => {
146
+ let cwd = f . copy ( 'package-with-external-deps-installed' ) ;
147
+ let project = await Project . init ( cwd ) ;
148
+ let packages = await project . getPackages ( ) ;
149
+ let fooPkg = project . getPackageByName ( packages , 'foo' ) ;
150
+ let barPkg = project . getPackageByName ( packages , 'bar' ) ;
151
+ if ( ! fooPkg || ! barPkg ) {
152
+ // This check is required to satisfy flow
153
+ throw new Error ( 'missing packages' ) ;
154
+ }
155
+
156
+ expect ( project . pkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual (
157
+ '^1.0.0'
158
+ ) ;
159
+ expect ( fooPkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual ( '^1.0.0' ) ;
160
+ expect ( barPkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual ( '^1.0.0' ) ;
161
+
162
+ expect ( project . pkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( '^1.0.0' ) ;
163
+ expect ( fooPkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( '^1.0.0' ) ;
164
+ expect ( barPkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( null ) ;
165
+
166
+ await addDependenciesToPackage ( project , project . pkg , [
167
+ { name : 'global-dep' , version : '^1.1.0' } ,
168
+ { name : 'foo-dep' , version : '^1.2.0' }
169
+ ] ) ;
170
+
171
+ // Refetch packages as their config will be stale
172
+ packages = await project . getPackages ( ) ;
173
+ fooPkg = project . getPackageByName ( packages , 'foo' ) ;
174
+ barPkg = project . getPackageByName ( packages , 'bar' ) ;
175
+ if ( ! fooPkg || ! barPkg ) {
176
+ // This check is required to satisfy flow
177
+ throw new Error ( 'missing packages' ) ;
178
+ }
179
+
180
+ expect ( project . pkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual (
181
+ '^1.1.0'
182
+ ) ;
183
+ expect ( fooPkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual ( '^1.1.0' ) ;
184
+ expect ( barPkg . getDependencyVersionRange ( 'global-dep' ) ) . toEqual ( '^1.1.0' ) ;
185
+
186
+ expect ( project . pkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( '^1.2.0' ) ;
187
+ expect ( fooPkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( '^1.2.0' ) ;
188
+ expect ( barPkg . getDependencyVersionRange ( 'foo-dep' ) ) . toEqual ( null ) ;
189
+ } ) ;
190
+
145
191
test ( 'should be able to add packages with tagged versions (without specifying)' , async ( ) => {
146
192
let cwd = f . copy ( 'package-with-external-deps-installed' ) ;
147
193
let project = await Project . init ( cwd ) ;
0 commit comments