@@ -137,6 +137,69 @@ func Test_VersionInfo_IncPatch_OverflowPatchLevel(t *testing.T) {
137137 }
138138}
139139
140+ func Test_VersionInfo_IncMinor_Mappings (t * testing.T ) {
141+ tests := []struct {
142+ in string
143+ want string
144+ }{
145+ {in : "v1" , want : "v1.1" },
146+ {in : "v1.2" , want : "v1.3" },
147+ {in : "v1.2.3" , want : "v1.3.0" },
148+ }
149+ for _ , tt := range tests {
150+ vi := & gitsemver.VersionInfo {Tag : tt .in }
151+ if got := vi .IncMinor (); got != tt .want {
152+ t .Fatalf ("IncMinor(%q): expected %q, got %q" , tt .in , tt .want , got )
153+ }
154+ if ! vi .SameTree {
155+ t .Fatalf ("IncMinor(%q): expected SameTree=true" , tt .in )
156+ }
157+ }
158+ }
159+
160+ func Test_VersionInfo_IncMinor_PrereleaseTag (t * testing.T ) {
161+ vi := & gitsemver.VersionInfo {Tag : "v1.2.3-rc.1" }
162+ if got := vi .IncMinor (); got != "v1.3.0" {
163+ t .Fatalf ("expected v1.3.0, got %q" , got )
164+ }
165+ if ! vi .SameTree {
166+ t .Fatal ("expected SameTree=true" )
167+ }
168+ }
169+
170+ func Test_VersionInfo_IncMinor_AvoidsEquivalentPrefixCollisions (t * testing.T ) {
171+ vi := & gitsemver.VersionInfo {
172+ Tag : "v1.2.3" ,
173+ Tags : []gitsemver.GitTag {
174+ {Tag : "v1.3.0" },
175+ {Tag : "1.4.0" },
176+ },
177+ }
178+ if got := vi .IncMinor (); got != "v1.5.0" {
179+ t .Fatalf ("expected v1.5.0, got %q" , got )
180+ }
181+ }
182+
183+ func Test_VersionInfo_IncMinor_InvalidTagNoLoop (t * testing.T ) {
184+ vi := & gitsemver.VersionInfo {Tag : "not-a-semver-tag" }
185+ if got := vi .IncMinor (); got != "not-a-semver-tag" {
186+ t .Fatalf ("expected unchanged tag, got %q" , got )
187+ }
188+ if ! vi .SameTree {
189+ t .Fatal ("expected SameTree=true for unchanged non-semver tag" )
190+ }
191+ }
192+
193+ func Test_VersionInfo_IncMinor_OverflowMinorLevel (t * testing.T ) {
194+ vi := & gitsemver.VersionInfo {Tag : "v1.9999999999999999999999999" }
195+ if got := vi .IncMinor (); got != "v1.9999999999999999999999999" {
196+ t .Fatalf ("expected unchanged overflow minor tag, got %q" , got )
197+ }
198+ if ! vi .SameTree {
199+ t .Fatal ("expected SameTree=true for unchanged overflow tag" )
200+ }
201+ }
202+
140203func Test_CleanBranch (t * testing.T ) {
141204 isEqual (t , "branch-with-dots" , gitsemver .CleanBranch ("-branch.with..dots" ))
142205 isEqual (t , "gitlab-branch" , gitsemver .CleanBranch ("gitlab---branch" ))
0 commit comments