@@ -738,6 +738,54 @@ describe("assembleReleasePlan", () => {
738738 } ,
739739 ] ) ;
740740 } ) ;
741+
742+ // https://github.com/changesets/changesets/issues/963
743+ // https://github.com/changesets/changesets/issues/1759
744+ it ( "should not bump fixed packages due to peer dependents" , ( ) => {
745+ const setup = new FakeFullState ( { changesets : [ ] } ) ;
746+
747+ setup . addPackage ( "@ex/core" , "0.1.0" ) ;
748+ setup . addPackage ( "@ex/errors" , "0.1.0" ) ;
749+ setup . addPackage ( "@ex/api" , "0.1.0" ) ;
750+ setup . addPackage ( "some-peer" , "0.1.0" ) ; // optional peer
751+ setup . addPackage ( "@ex/components" , "0.1.0" ) ;
752+
753+ setup . updateDependencies ( "@ex/api" , [
754+ { name : "@ex/core" , range : "0.1.0" } ,
755+ { name : "@ex/errors" , range : "0.1.0" } ,
756+ { name : "some-peer" , range : "0.1.0" , type : "peer" } ,
757+ ] ) ;
758+ setup . updateDependencies ( "@ex/components" , [
759+ { name : "@ex/api" , range : "0.1.0" } ,
760+ { name : "some-peer" , range : "0.1.0" } ,
761+ ] ) ;
762+
763+ setup . addChangeset ( { releases : [ { name : "@ex/core" , type : "minor" } ] } ) ;
764+
765+ const result = assembleReleasePlan (
766+ setup . changesets ,
767+ setup . packages ,
768+ {
769+ ...defaultConfig ,
770+ fixed : [
771+ [
772+ "@ex/core" ,
773+ "@ex/errors" ,
774+ "@ex/api" ,
775+ "some-peer" ,
776+ "@ex/components" ,
777+ ] ,
778+ ] ,
779+ } ,
780+ undefined ,
781+ ) ;
782+
783+ expect ( result . releases ) . toHaveLength ( 5 ) ;
784+ expect (
785+ result . releases . every ( ( release ) => release . newVersion === "0.2.0" ) ,
786+ "every bump should be to 0.2.0" ,
787+ ) . toBe ( true ) ;
788+ } ) ;
741789 } ) ;
742790
743791 describe ( "pre mode" , ( ) => {
0 commit comments