@@ -348,10 +348,13 @@ status:
348348 - cccccccccccccccccccccccccccccccccccccccc
349349 sources:
350350 - path: some/path
351+ helm:
352+ valueFiles:
353+ - $values_test/values.yaml
351354 repoURL: https://github.com/argoproj/argocd-example-apps.git
352355 - path: some/other/path
353356 repoURL: https://github.com/argoproj/argocd-example-apps-fake.git
354- - path: some/other/path
357+ - ref: values_test
355358 repoURL: https://github.com/argoproj/argocd-example-apps-fake-ref.git
356359`
357360
@@ -625,13 +628,13 @@ func TestAutoSyncEnabledSetToTrue(t *testing.T) {
625628 assert .False (t , app .Operation .Sync .Prune )
626629}
627630
628- func TestMultiSourceSelfHeal (t * testing.T ) {
631+ func TestAutoSyncMultiSourceWithoutSelfHeal (t * testing.T ) {
629632 // Simulate OutOfSync caused by object change in cluster
630633 // So our Sync Revisions and SyncStatus Revisions should deep equal
631634 t .Run ("ClusterObjectChangeShouldNotTriggerAutoSync" , func (t * testing.T ) {
632635 app := newFakeMultiSourceApp ()
633636 app .Spec .SyncPolicy .Automated .SelfHeal = false
634- app .Status .Sync .Revisions = []string {"z" , "x" , "v" }
637+ app .Status .OperationState . SyncResult .Revisions = []string {"z" , "x" , "v" }
635638 ctrl := newFakeController (& fakeData {apps : []runtime.Object {app }}, nil )
636639 syncStatus := v1alpha1.SyncStatus {
637640 Status : v1alpha1 .SyncStatusCodeOutOfSync ,
@@ -643,15 +646,14 @@ func TestMultiSourceSelfHeal(t *testing.T) {
643646 require .NoError (t , err )
644647 assert .Nil (t , app .Operation )
645648 })
646-
647649 t .Run ("NewRevisionChangeShouldTriggerAutoSync" , func (t * testing.T ) {
648650 app := newFakeMultiSourceApp ()
649651 app .Spec .SyncPolicy .Automated .SelfHeal = false
650- app .Status .Sync . Revisions = []string {"a " , "b " , "c " }
652+ app .Status .OperationState . SyncResult . Revisions = []string {"z " , "x " , "v " }
651653 ctrl := newFakeController (& fakeData {apps : []runtime.Object {app }}, nil )
652654 syncStatus := v1alpha1.SyncStatus {
653655 Status : v1alpha1 .SyncStatusCodeOutOfSync ,
654- Revisions : []string {"z " , "x " , "v " },
656+ Revisions : []string {"a " , "b " , "c " },
655657 }
656658 cond , _ := ctrl .autoSync (app , & syncStatus , []v1alpha1.ResourceStatus {{Name : "guestbook-1" , Kind : kube .DeploymentKind , Status : v1alpha1 .SyncStatusCodeOutOfSync }}, true )
657659 assert .Nil (t , cond )
@@ -872,45 +874,78 @@ func TestAutoSyncIndicateError(t *testing.T) {
872874
873875// TestAutoSyncParameterOverrides verifies we auto-sync if revision is same but parameter overrides are different
874876func TestAutoSyncParameterOverrides (t * testing.T ) {
875- app := newFakeApp ()
876- app .Spec .Source .Helm = & v1alpha1.ApplicationSourceHelm {
877- Parameters : []v1alpha1.HelmParameter {
878- {
879- Name : "a" ,
880- Value : "1" ,
877+ t .Run ("Single source" , func (t * testing.T ) {
878+ app := newFakeApp ()
879+ app .Spec .Source .Helm = & v1alpha1.ApplicationSourceHelm {
880+ Parameters : []v1alpha1.HelmParameter {
881+ {
882+ Name : "a" ,
883+ Value : "1" ,
884+ },
881885 },
882- },
883- }
884- ctrl := newFakeController (& fakeData {apps : []runtime.Object {app }}, nil )
885- syncStatus := v1alpha1.SyncStatus {
886- Status : v1alpha1 .SyncStatusCodeOutOfSync ,
887- Revision : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
888- }
889- app .Status .OperationState = & v1alpha1.OperationState {
890- Operation : v1alpha1.Operation {
891- Sync : & v1alpha1.SyncOperation {
892- Source : & v1alpha1.ApplicationSource {
893- Helm : & v1alpha1.ApplicationSourceHelm {
894- Parameters : []v1alpha1.HelmParameter {
895- {
896- Name : "a" ,
897- Value : "2" , // this value changed
886+ }
887+ app .Status .OperationState = & v1alpha1.OperationState {
888+ Operation : v1alpha1.Operation {
889+ Sync : & v1alpha1.SyncOperation {
890+ Source : & v1alpha1.ApplicationSource {
891+ Helm : & v1alpha1.ApplicationSourceHelm {
892+ Parameters : []v1alpha1.HelmParameter {
893+ {
894+ Name : "a" ,
895+ Value : "2" , // this value changed
896+ },
898897 },
899898 },
900899 },
901900 },
902901 },
903- },
904- Phase : synccommon .OperationFailed ,
905- SyncResult : & v1alpha1.SyncOperationResult {
902+ Phase : synccommon .OperationFailed ,
903+ SyncResult : & v1alpha1.SyncOperationResult {
904+ Revision : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
905+ },
906+ }
907+ syncStatus := v1alpha1.SyncStatus {
908+ Status : v1alpha1 .SyncStatusCodeOutOfSync ,
906909 Revision : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
907- },
908- }
909- cond , _ := ctrl .autoSync (app , & syncStatus , []v1alpha1.ResourceStatus {{Name : "guestbook" , Kind : kube .DeploymentKind , Status : v1alpha1 .SyncStatusCodeOutOfSync }}, true )
910- assert .Nil (t , cond )
911- app , err := ctrl .applicationClientset .ArgoprojV1alpha1 ().Applications (test .FakeArgoCDNamespace ).Get (t .Context (), "my-app" , metav1.GetOptions {})
912- require .NoError (t , err )
913- assert .NotNil (t , app .Operation )
910+ }
911+ ctrl := newFakeController (& fakeData {apps : []runtime.Object {app }}, nil )
912+ cond , _ := ctrl .autoSync (app , & syncStatus , []v1alpha1.ResourceStatus {{Name : "guestbook" , Kind : kube .DeploymentKind , Status : v1alpha1 .SyncStatusCodeOutOfSync }}, true )
913+ assert .Nil (t , cond )
914+ app , err := ctrl .applicationClientset .ArgoprojV1alpha1 ().Applications (test .FakeArgoCDNamespace ).Get (t .Context (), "my-app" , metav1.GetOptions {})
915+ require .NoError (t , err )
916+ assert .NotNil (t , app .Operation )
917+ })
918+
919+ t .Run ("Multi sources" , func (t * testing.T ) {
920+ app := newFakeMultiSourceApp ()
921+ app .Spec .Sources [0 ].Helm = & v1alpha1.ApplicationSourceHelm {
922+ Parameters : []v1alpha1.HelmParameter {
923+ {
924+ Name : "a" ,
925+ Value : "1" ,
926+ },
927+ },
928+ }
929+ ctrl := newFakeController (& fakeData {apps : []runtime.Object {app }}, nil )
930+ app .Status .OperationState .SyncResult .Revisions = []string {"z" , "x" , "v" }
931+ app .Status .OperationState .SyncResult .Sources [0 ].Helm = & v1alpha1.ApplicationSourceHelm {
932+ Parameters : []v1alpha1.HelmParameter {
933+ {
934+ Name : "a" ,
935+ Value : "2" , // this value changed
936+ },
937+ },
938+ }
939+ syncStatus := v1alpha1.SyncStatus {
940+ Status : v1alpha1 .SyncStatusCodeOutOfSync ,
941+ Revisions : []string {"z" , "x" , "v" },
942+ }
943+ cond , _ := ctrl .autoSync (app , & syncStatus , []v1alpha1.ResourceStatus {{Name : "guestbook" , Kind : kube .DeploymentKind , Status : v1alpha1 .SyncStatusCodeOutOfSync }}, true )
944+ assert .Nil (t , cond )
945+ app , err := ctrl .applicationClientset .ArgoprojV1alpha1 ().Applications (test .FakeArgoCDNamespace ).Get (t .Context (), "my-app" , metav1.GetOptions {})
946+ require .NoError (t , err )
947+ assert .NotNil (t , app .Operation )
948+ })
914949}
915950
916951// TestFinalizeAppDeletion verifies application deletion
0 commit comments