Skip to content

Commit

Permalink
compare only required condition parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
waveywaves committed Mar 11, 2024
1 parent c41fdb1 commit 27e5d05
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 10 deletions.
18 changes: 8 additions & 10 deletions src/test/e2e/ucluster_lifecycle_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ import (
"github.com/UffizziCloud/uffizzi-cluster-operator/src/controllers/uffizzicluster"
"github.com/UffizziCloud/uffizzi-cluster-operator/src/pkg/constants"
"github.com/UffizziCloud/uffizzi-cluster-operator/src/test/util/conditions"
"github.com/UffizziCloud/uffizzi-cluster-operator/src/test/util/diff"
"github.com/UffizziCloud/uffizzi-cluster-operator/src/test/util/resources"
"github.com/google/go-cmp/cmp"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
v1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -114,8 +112,8 @@ func wrapUffizziClusterLifecycleTest(ctx context.Context, ns *v1.Namespace, uc *
expectedConditions = uffizzicluster.GetAllInitializingConditions()
return containsAllConditionsQ(expectedOutput)(expectedConditions, uc.Status.Conditions)
}, timeout, pollingTimeout).Should(shouldBeTrueQ)
d := cmp.Diff(expectedConditions, uc.Status.Conditions)
GinkgoWriter.Printf(diff.PrintWantGot(d))

GinkgoWriter.Printf(conditions.CreateConditionsCmpDiff(expectedConditions, uc.Status.Conditions))
})

It("Should be in a Ready State", func() {
Expand All @@ -129,8 +127,8 @@ func wrapUffizziClusterLifecycleTest(ctx context.Context, ns *v1.Namespace, uc *
expectedConditions = uffizzicluster.GetAllReadyConditions()
return containsAllConditionsQ(expectedOutput)(expectedConditions, uc.Status.Conditions)
}, timeout, pollingTimeout).Should(shouldBeTrueQ)
d := cmp.Diff(expectedConditions, uc.Status.Conditions)
GinkgoWriter.Printf(diff.PrintWantGot(d))

GinkgoWriter.Printf(conditions.CreateConditionsCmpDiff(expectedConditions, uc.Status.Conditions))
})
})

Expand All @@ -154,8 +152,8 @@ func wrapUffizziClusterLifecycleTest(ctx context.Context, ns *v1.Namespace, uc *
}
return containsAllConditionsQ(expectedOutput)(expectedConditions, uc.Status.Conditions)
}, timeout, pollingTimeout).Should(shouldBeTrueQ)
d := cmp.Diff(expectedConditions, uc.Status.Conditions)
GinkgoWriter.Printf(diff.PrintWantGot(d))

GinkgoWriter.Printf(conditions.CreateConditionsCmpDiff(expectedConditions, uc.Status.Conditions))
})
})

Expand All @@ -179,8 +177,8 @@ func wrapUffizziClusterLifecycleTest(ctx context.Context, ns *v1.Namespace, uc *
}
return containsAllConditionsQ(expectedOutput)(expectedConditions, uc.Status.Conditions)
}, timeout, pollingTimeout).Should(shouldBeTrueQ)
d := cmp.Diff(expectedConditions, uc.Status.Conditions)
GinkgoWriter.Printf(diff.PrintWantGot(d))

GinkgoWriter.Printf(conditions.CreateConditionsCmpDiff(expectedConditions, uc.Status.Conditions))
})
})
}
Expand Down
25 changes: 25 additions & 0 deletions src/test/util/conditions/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,28 @@ func ContainsAllConditions(requiredConditions, actualConditions []metav1.Conditi
func ContainsNoConditions(requiredConditions, actualConditions []metav1.Condition) bool {
return ContainsConditionsDecorator(requiredConditions, actualConditions, false)
}

func CreateConditionsCmpDiff(requiredConditions, actualConditions []metav1.Condition) string {
// create a clone of actual conditions which only has the keys required conditions has
// then compare the two slices
actualConditionsForCmp := []metav1.Condition{}
requiredConditionsForCmp := []metav1.Condition{}
for _, actualCondition := range actualConditions {
actualConditionForCmp := metav1.Condition{
Type: actualCondition.Type,
Status: actualCondition.Status,
Reason: actualCondition.Reason,
}
actualConditionsForCmp = append(actualConditionsForCmp, actualConditionForCmp)
}
for _, requiredCondition := range requiredConditions {
requiredConditionForCmp := metav1.Condition{
Type: requiredCondition.Type,
Status: requiredCondition.Status,
Reason: requiredCondition.Reason,
}
requiredConditionsForCmp = append(requiredConditionsForCmp, requiredConditionForCmp)
}

return diff.PrintWantGot(cmp.Diff(requiredConditionsForCmp, actualConditionsForCmp))
}

0 comments on commit 27e5d05

Please sign in to comment.