@@ -155,6 +155,42 @@ describe('version bumping', () => {
155
155
expect ( changeFiles ) . toHaveLength ( 0 ) ;
156
156
} ) ;
157
157
158
+ it ( 'does not bumps dependent packages with `peerDependencies` when `bumpPeerDeps=false`' , async ( ) => {
159
+ const monorepo : RepoFixture [ 'folders' ] = {
160
+ packages : {
161
+ 'pkg-1' : { version : '1.0.0' } ,
162
+ 'pkg-2' : { version : '1.0.0' , dependencies : { 'pkg-1' : '1.0.0' } } ,
163
+ 'pkg-3' : { version : '1.0.0' , devDependencies : { 'pkg-2' : '1.0.0' } } ,
164
+ 'pkg-4' : { version : '1.0.0' , peerDependencies : { 'pkg-3' : '1.0.0' } } ,
165
+ 'pkg-5' : { version : '1.0.0' , optionalDependencies : { 'pkg-4' : '1.0.0' } } ,
166
+ } ,
167
+ } ;
168
+ repositoryFactory = new RepositoryFactory ( { folders : monorepo } ) ;
169
+ const repo = repositoryFactory . cloneRepository ( ) ;
170
+
171
+ generateChangeFiles ( [ 'pkg-1' ] , repo . rootPath ) ;
172
+
173
+ repo . push ( ) ;
174
+
175
+ await bump ( { path : repo . rootPath , bumpDeps : true , bumpPeerDeps : false } as BeachballOptions ) ;
176
+
177
+ const packageInfos = getPackageInfos ( repo . rootPath ) ;
178
+
179
+ const pkg1NewVersion = '1.1.0' ;
180
+ const dependentNewVersion = '1.0.1' ;
181
+ expect ( packageInfos [ 'pkg-1' ] . version ) . toBe ( pkg1NewVersion ) ;
182
+ expect ( packageInfos [ 'pkg-2' ] . version ) . toBe ( dependentNewVersion ) ;
183
+ expect ( packageInfos [ 'pkg-3' ] . version ) . toBe ( dependentNewVersion ) ;
184
+
185
+ expect ( packageInfos [ 'pkg-2' ] . dependencies ! [ 'pkg-1' ] ) . toBe ( pkg1NewVersion ) ;
186
+ expect ( packageInfos [ 'pkg-3' ] . devDependencies ! [ 'pkg-2' ] ) . toBe ( dependentNewVersion ) ;
187
+ expect ( packageInfos [ 'pkg-4' ] . peerDependencies ! [ 'pkg-3' ] ) . toBe ( '1.0.0' ) ;
188
+ expect ( packageInfos [ 'pkg-5' ] . optionalDependencies ! [ 'pkg-4' ] ) . toBe ( '1.0.0' ) ;
189
+
190
+ const changeFiles = getChangeFiles ( repo . rootPath ) ;
191
+ expect ( changeFiles ) . toHaveLength ( 0 ) ;
192
+ } ) ;
193
+
158
194
it ( 'bumps all grouped packages' , async ( ) => {
159
195
const monorepo : RepoFixture [ 'folders' ] = {
160
196
packages : {
0 commit comments