@@ -155,6 +155,42 @@ describe('version bumping', () => {
155155 expect ( changeFiles ) . toHaveLength ( 0 ) ;
156156 } ) ;
157157
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+
158194 it ( 'bumps all grouped packages' , async ( ) => {
159195 const monorepo : RepoFixture [ 'folders' ] = {
160196 packages : {
0 commit comments