MCPcopy
hub / github.com/argoproj/argo-cd / TestAutoSyncMultiSourceWithoutSelfHeal

Function TestAutoSyncMultiSourceWithoutSelfHeal

controller/appcontroller_test.go:682–715  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

680}
681
682func TestAutoSyncMultiSourceWithoutSelfHeal(t *testing.T) {
683 // Simulate OutOfSync caused by object change in cluster
684 // So our Sync Revisions and SyncStatus Revisions should deep equal
685 t.Run("ClusterObjectChangeShouldNotTriggerAutoSync", func(t *testing.T) {
686 app := newFakeMultiSourceApp()
687 app.Spec.SyncPolicy.Automated.SelfHeal = new(false)
688 app.Status.OperationState.SyncResult.Revisions = []string{"z", "x", "v"}
689 ctrl := newFakeController(t.Context(), &fakeData{apps: []runtime.Object{app}}, nil)
690 syncStatus := v1alpha1.SyncStatus{
691 Status: v1alpha1.SyncStatusCodeOutOfSync,
692 Revisions: []string{"z", "x", "v"},
693 }
694 cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook-1", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, true)
695 assert.Nil(t, cond)
696 app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(t.Context(), "my-app", metav1.GetOptions{})
697 require.NoError(t, err)
698 assert.Nil(t, app.Operation)
699 })
700 t.Run("NewRevisionChangeShouldTriggerAutoSync", func(t *testing.T) {
701 app := newFakeMultiSourceApp()
702 app.Spec.SyncPolicy.Automated.SelfHeal = new(false)
703 app.Status.OperationState.SyncResult.Revisions = []string{"z", "x", "v"}
704 ctrl := newFakeController(t.Context(), &fakeData{apps: []runtime.Object{app}}, nil)
705 syncStatus := v1alpha1.SyncStatus{
706 Status: v1alpha1.SyncStatusCodeOutOfSync,
707 Revisions: []string{"a", "b", "c"},
708 }
709 cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook-1", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, true)
710 assert.Nil(t, cond)
711 app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(t.Context(), "my-app", metav1.GetOptions{})
712 require.NoError(t, err)
713 assert.NotNil(t, app.Operation)
714 })
715}
716
717func TestAutoSyncNotAllowEmpty(t *testing.T) {
718 app := newFakeApp()

Callers

nothing calls this directly

Calls 8

newFakeMultiSourceAppFunction · 0.85
newFakeControllerFunction · 0.85
autoSyncMethod · 0.80
RunMethod · 0.65
ContextMethod · 0.65
GetMethod · 0.65
ApplicationsMethod · 0.65
ArgoprojV1alpha1Method · 0.65

Tested by

no test coverage detected