mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package controller
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/argoproj/argo-cd/gitops-engine/pkg/sync/common"
|
|
. "github.com/argoproj/argo-cd/gitops-engine/pkg/utils/testing"
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
)
|
|
|
|
func TestFilterObjectsForDeletion(t *testing.T) {
|
|
tests := []struct {
|
|
input []string
|
|
want []string
|
|
}{
|
|
{[]string{"1", "5", "7", "7", "4"}, []string{"7", "7"}},
|
|
{[]string{"1", "5", "2", "2", "4"}, []string{"5"}},
|
|
{[]string{"1"}, []string{"1"}},
|
|
{[]string{}, []string{}},
|
|
}
|
|
for _, tt := range tests {
|
|
in := sliceOfObjectsWithSyncWaves(tt.input)
|
|
need := sliceOfObjectsWithSyncWaves(tt.want)
|
|
got := FilterObjectsForDeletion(in)
|
|
assert.True(t, reflect.DeepEqual(got, need), "Received unexpected objects for deletion")
|
|
}
|
|
}
|
|
|
|
func podWithSyncWave(wave string) *unstructured.Unstructured {
|
|
return Annotate(NewPod(), common.AnnotationSyncWave, wave)
|
|
}
|
|
|
|
func sliceOfObjectsWithSyncWaves(waves []string) []*unstructured.Unstructured {
|
|
objects := make([]*unstructured.Unstructured, 0)
|
|
for _, wave := range waves {
|
|
objects = append(objects, podWithSyncWave(wave))
|
|
}
|
|
return objects
|
|
}
|