argo-cd/util/diff/diff_test.go

67 lines
1.8 KiB
Go

package diff
import (
"testing"
"github.com/argoproj/argo-cd/test"
"github.com/argoproj/argo-cd/util/kube"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
func TestDiff(t *testing.T) {
leftDep := test.DemoDeployment()
leftUn := kube.MustToUnstructured(leftDep)
diffRes := Diff(leftUn, leftUn)
assert.False(t, diffRes.Diff.Modified())
assert.Nil(t, diffRes.AdditionsOnly)
}
func TestDiffArraySame(t *testing.T) {
leftDep := test.DemoDeployment()
rightDep := leftDep.DeepCopy()
leftUn := kube.MustToUnstructured(leftDep)
rightUn := kube.MustToUnstructured(rightDep)
left := []*unstructured.Unstructured{leftUn}
right := []*unstructured.Unstructured{rightUn}
diffResList, err := DiffArray(left, right)
assert.Nil(t, err)
assert.False(t, diffResList.Modified)
assert.Nil(t, diffResList.AdditionsOnly)
}
func TestDiffArrayAdditions(t *testing.T) {
leftDep := test.DemoDeployment()
rightDep := leftDep.DeepCopy()
rightDep.Status.Replicas = 1
leftUn := kube.MustToUnstructured(leftDep)
rightUn := kube.MustToUnstructured(rightDep)
left := []*unstructured.Unstructured{leftUn}
right := []*unstructured.Unstructured{rightUn}
diffResList, err := DiffArray(left, right)
assert.Nil(t, err)
assert.True(t, diffResList.Modified)
assert.True(t, *diffResList.AdditionsOnly)
}
func TestDiffArrayModification(t *testing.T) {
leftDep := test.DemoDeployment()
rightDep := leftDep.DeepCopy()
ten := int32(10)
rightDep.Spec.Replicas = &ten
leftUn := kube.MustToUnstructured(leftDep)
rightUn := kube.MustToUnstructured(rightDep)
left := []*unstructured.Unstructured{leftUn}
right := []*unstructured.Unstructured{rightUn}
diffResList, err := DiffArray(left, right)
assert.Nil(t, err)
assert.True(t, diffResList.Modified)
assert.False(t, *diffResList.AdditionsOnly)
}