ShouldUpdate now makes sure pre-releases match + tests

pull/183/head
Adrien Delorme 2018-04-04 18:16:21 +02:00
parent 8ae29905c2
commit 28b601be3d
2 changed files with 34 additions and 0 deletions

View File

@ -130,6 +130,10 @@ func ShouldUpdate(current *types.Version, new *types.Version, policy types.Polic
return false, fmt.Errorf("failed to parse new version: %s", err)
}
if currentVersion.Prerelease() != newVersion.Prerelease() {
return false, nil
}
// new version is not higher than current - do nothing
if !currentVersion.LessThan(newVersion) {
return false, nil

View File

@ -193,6 +193,36 @@ func TestShouldUpdate(t *testing.T) {
want: true,
wantErr: false,
},
{
name: "prerelease patch increase, policy minor, no prerelease",
args: args{
current: &types.Version{Major: 1, Minor: 4, Patch: 5},
new: &types.Version{Major: 1, Minor: 4, Patch: 6, PreRelease: "xx"},
policy: types.PolicyTypeMinor,
},
want: false,
wantErr: false,
},
{
name: "prerelease patch increase, policy minor",
args: args{
current: &types.Version{Major: 1, Minor: 4, Patch: 5, PreRelease: "xx"},
new: &types.Version{Major: 1, Minor: 4, Patch: 6, PreRelease: "xx"},
policy: types.PolicyTypeMinor,
},
want: true,
wantErr: false,
},
{
name: "patch increase, policy minor, wrong prerelease",
args: args{
current: &types.Version{Major: 1, Minor: 4, Patch: 5, PreRelease: "xx"},
new: &types.Version{Major: 1, Minor: 4, Patch: 6, PreRelease: "yy"},
policy: types.PolicyTypeMinor,
},
want: false,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {