github.com/argoproj/argo-cd/v2@v2.10.9/pkg/apiclient/application/forwarder_overwrite_test.go (about) 1 package application 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" 8 9 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" 10 "github.com/argoproj/argo-cd/v2/test" 11 ) 12 13 func TestProcessApplicationListField_SyncOperation(t *testing.T) { 14 list := v1alpha1.ApplicationList{ 15 Items: []v1alpha1.Application{{Operation: &v1alpha1.Operation{Sync: &v1alpha1.SyncOperation{ 16 Revision: "abc", 17 }}}}, 18 } 19 20 res, err := processApplicationListField(&list, map[string]interface{}{"items.operation.sync": true}, false) 21 require.NoError(t, err) 22 resMap, ok := res.(map[string]interface{}) 23 require.True(t, ok) 24 25 items, ok := resMap["items"].([]map[string]interface{}) 26 require.True(t, ok) 27 item := test.ToMap(items[0]) 28 29 val, ok, err := unstructured.NestedString(item, "operation", "sync", "revision") 30 require.NoError(t, err) 31 require.True(t, ok) 32 33 require.Equal(t, "abc", val) 34 } 35 36 func TestProcessApplicationListField_SyncOperationMissing(t *testing.T) { 37 list := v1alpha1.ApplicationList{ 38 Items: []v1alpha1.Application{{Operation: nil}}, 39 } 40 41 res, err := processApplicationListField(&list, map[string]interface{}{"items.operation.sync": true}, false) 42 require.NoError(t, err) 43 resMap, ok := res.(map[string]interface{}) 44 require.True(t, ok) 45 46 items, ok := resMap["items"].([]map[string]interface{}) 47 require.True(t, ok) 48 item := test.ToMap(items[0]) 49 50 _, ok, err = unstructured.NestedString(item, "operation") 51 require.NoError(t, err) 52 require.False(t, ok) 53 }