diff --git a/util/webhook/webhook.go b/util/webhook/webhook.go index eea68e4166b3..69bfe50d09a9 100644 --- a/util/webhook/webhook.go +++ b/util/webhook/webhook.go @@ -307,9 +307,7 @@ func ensureAbsPath(input string) string { func appRevisionHasChanged(app *v1alpha1.Application, revision string, touchedHead bool) bool { targetRev := app.Spec.Source.TargetRevision if targetRev == "HEAD" || targetRev == "" { // revision is head - if !touchedHead { // and head has not updated - return false // revision has not changed - } + return touchedHead } return targetRev == revision diff --git a/util/webhook/webhook_test.go b/util/webhook/webhook_test.go index 58c2b2ad91ca..c78e46a8e3c0 100644 --- a/util/webhook/webhook_test.go +++ b/util/webhook/webhook_test.go @@ -155,3 +155,25 @@ func Test_getAppRefreshPrefix(t *testing.T) { }) } } + +func TestAppRevisionHasChanged(t *testing.T) { + assert.True(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{}, + }}, "master", true)) + + assert.False(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{}, + }}, "master", false)) + + assert.False(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{ + TargetRevision: "dev", + }, + }}, "master", true)) + + assert.True(t, appRevisionHasChanged(&v1alpha1.Application{Spec: v1alpha1.ApplicationSpec{ + Source: v1alpha1.ApplicationSource{ + TargetRevision: "dev", + }, + }}, "dev", false)) +}