@@ -638,6 +638,44 @@ public void PrepareRelease_ResetsVersionHeightOffset()
638638 Assert . Equal ( expectedReleaseVersionOptions , releaseVersion ) ;
639639 }
640640
641+ [ Fact ]
642+ public void PrepareRelease_DoesNotResetNegativeVersionHeightOffset ( )
643+ {
644+ // create and configure repository
645+ this . InitializeSourceControl ( ) ;
646+
647+ var initialVersionOptions = new VersionOptions
648+ {
649+ Version = SemanticVersion . Parse ( "1.0-beta" ) ,
650+ VersionHeightOffset = - 1 ,
651+ } ;
652+
653+ var expectedReleaseVersionOptions = new VersionOptions
654+ {
655+ Version = SemanticVersion . Parse ( "1.0" ) ,
656+ VersionHeightOffset = - 1 ,
657+ } ;
658+
659+ var expectedMainVersionOptions = new VersionOptions
660+ {
661+ Version = SemanticVersion . Parse ( "1.1-alpha" ) ,
662+ VersionHeightOffset = - 1 ,
663+ } ;
664+
665+ // create version.json
666+ this . WriteVersionFile ( initialVersionOptions ) ;
667+
668+ var releaseManager = new ReleaseManager ( ) ;
669+ releaseManager . PrepareRelease ( this . RepoPath ) ;
670+
671+ this . SetContextToHead ( ) ;
672+ VersionOptions newVersion = this . Context . VersionFile . GetVersion ( ) ;
673+ Assert . Equal ( expectedMainVersionOptions , newVersion ) ;
674+
675+ VersionOptions releaseVersion = this . GetVersionOptions ( committish : this . LibGit2Repository . Branches [ "v1.0" ] . Tip . Sha ) ;
676+ Assert . Equal ( expectedReleaseVersionOptions , releaseVersion ) ;
677+ }
678+
641679 [ Theory ]
642680 [ InlineData ( "1.0-beta" , "{0} Custom commit message pattern" , "1.0 Custom commit message pattern" ) ]
643681 [ InlineData ( "1.0-beta" , "Custom commit message pattern - {0} custom message" , "Custom commit message pattern - 1.0 custom message" ) ]
0 commit comments