From 62309c8c3a47877328e71e0060a8869b7ba24cf8 Mon Sep 17 00:00:00 2001
From: Fabian Seidl <fabian.seidl@h-da.de>
Date: Tue, 3 Dec 2024 09:43:34 +0100
Subject: [PATCH] fix use of deprecated field of struct, needs helper because
 non comparable impl.MessageState

---
 controller/northbound/server/utils_test.go | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/controller/northbound/server/utils_test.go b/controller/northbound/server/utils_test.go
index d86de701b..7a4636caa 100644
--- a/controller/northbound/server/utils_test.go
+++ b/controller/northbound/server/utils_test.go
@@ -9,7 +9,7 @@ import (
 
 func contains(array []*validate.Violation, err *validate.Violation) bool {
 	for _, v := range array {
-		if *v.FieldPath == *err.FieldPath && *v.ConstraintId == *err.ConstraintId && *v.Message == *err.Message {
+		if isEqualFieldPaths(v.Field, err.Field) && *v.ConstraintId == *err.ConstraintId && *v.Message == *err.Message {
 			return true
 		}
 	}
@@ -17,6 +17,20 @@ func contains(array []*validate.Violation, err *validate.Violation) bool {
 	return false
 }
 
+func isEqualFieldPaths(violationFieldPath, errFieldPath *validate.FieldPath) bool {
+	if len(violationFieldPath.GetElements()) != len(errFieldPath.GetElements()) {
+		return false
+	}
+
+	for i, elem := range violationFieldPath.GetElements() {
+		if elem != errFieldPath.GetElements()[i] {
+			return false
+		}
+	}
+
+	return true
+}
+
 func assertValidationErrors(t *testing.T, err error, expectedValidationErrors []*validate.Violation) {
 	st := status.Convert(err)
 	errDetails := st.Details()
-- 
GitLab