From 1518c4ec16d06b7281f0b6c9a0e8c40952475f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Tue, 22 Oct 2024 22:21:51 +0200 Subject: [PATCH 1/3] fix: cel type provider should return a type type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- staging/src/k8s.io/apiserver/pkg/cel/types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apiserver/pkg/cel/types.go b/staging/src/k8s.io/apiserver/pkg/cel/types.go index 83c90c8916e..84bfd7e658b 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/types.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/types.go @@ -429,7 +429,7 @@ func (rt *DeclTypeProvider) FindStructType(typeName string) (*types.Type, bool) declType, found := rt.findDeclType(typeName) if found { expT := declType.CelType() - return expT, found + return types.NewTypeTypeWithParam(expT), found } return rt.typeProvider.FindStructType(typeName) } From 0d825361e6d31171b77a00665fdb63816b8b6e00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Thu, 24 Oct 2024 21:57:51 +0200 Subject: [PATCH 2/3] add test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- .../src/k8s.io/apiserver/pkg/cel/types_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/cel/types_test.go b/staging/src/k8s.io/apiserver/pkg/cel/types_test.go index fef500b53f6..b08e11849e0 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/types_test.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/types_test.go @@ -18,6 +18,9 @@ package cel import ( "testing" + + "github.com/google/cel-go/common/types" + "github.com/stretchr/testify/assert" ) func TestTypes_ListType(t *testing.T) { @@ -77,3 +80,16 @@ func testValue(t *testing.T, id int64, val interface{}) *DynValue { } return dv } + +func TestDeclTypeProvider_FindStructType(t *testing.T) { + obj := NewObjectType("foo", map[string]*DeclField{ + "bar": NewDeclField("bar", StringType, true, nil, nil), + }) + base := types.NewEmptyRegistry() + provider := NewDeclTypeProvider(obj) + provider, err := provider.WithTypeProvider(base) + assert.NoError(t, err) + wrappedType, found := provider.FindStructType("foo") + assert.True(t, found) + assert.Equal(t, types.TypeKind, wrappedType.Kind()) +} From ea1bd956c57f23b4ac5feb0b24ea79bbbe3b31ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Thu, 24 Oct 2024 22:25:37 +0200 Subject: [PATCH 3/3] use require MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- staging/src/k8s.io/apiserver/pkg/cel/types_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/cel/types_test.go b/staging/src/k8s.io/apiserver/pkg/cel/types_test.go index b08e11849e0..f7056fa0d92 100644 --- a/staging/src/k8s.io/apiserver/pkg/cel/types_test.go +++ b/staging/src/k8s.io/apiserver/pkg/cel/types_test.go @@ -20,7 +20,7 @@ import ( "testing" "github.com/google/cel-go/common/types" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestTypes_ListType(t *testing.T) { @@ -88,8 +88,8 @@ func TestDeclTypeProvider_FindStructType(t *testing.T) { base := types.NewEmptyRegistry() provider := NewDeclTypeProvider(obj) provider, err := provider.WithTypeProvider(base) - assert.NoError(t, err) + require.NoError(t, err) wrappedType, found := provider.FindStructType("foo") - assert.True(t, found) - assert.Equal(t, types.TypeKind, wrappedType.Kind()) + require.True(t, found) + require.Equal(t, types.TypeKind, wrappedType.Kind()) }