Skip to content

Commit addef85

Browse files
committed
fix(test): register field indexer in controller test suite
The mapWorkloadToAgentCards test fails because suite_test.go creates a plain client.New() without a ctrl.Manager, so the field indexer for .spec.targetRef.name is never registered. Add a Manager in BeforeSuite to register the AgentCard targetRef index and expose indexedClient for tests that need field-indexed queries. Existing tests keep using the plain k8sClient unchanged. Fixes #351 Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: cwiklik <cwiklikj@gmail.com>
1 parent 8b02c00 commit addef85

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

kagenti-operator/internal/controller/indexers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ var _ = Describe("mapWorkloadToAgentCards", func() {
110110
sbx.SetNamespace(namespace)
111111
sbx.SetLabels(map[string]string{LabelAgentType: LabelValueAgent})
112112

113-
mapFn := mapWorkloadToAgentCards(k8sClient, "agents.x-k8s.io/v1alpha1", "Sandbox", logger)
113+
mapFn := mapWorkloadToAgentCards(indexedClient, "agents.x-k8s.io/v1alpha1", "Sandbox", logger)
114114
requests := mapFn(ctx, sbx)
115115
Expect(requests).To(HaveLen(1))
116116
Expect(requests[0].Name).To(Equal("sandbox-card"))

kagenti-operator/internal/controller/suite_test.go

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ import (
2828
appsv1 "k8s.io/api/apps/v1"
2929
"k8s.io/client-go/kubernetes/scheme"
3030
"k8s.io/client-go/rest"
31+
ctrl "sigs.k8s.io/controller-runtime"
3132
"sigs.k8s.io/controller-runtime/pkg/client"
3233
"sigs.k8s.io/controller-runtime/pkg/envtest"
3334
logf "sigs.k8s.io/controller-runtime/pkg/log"
3435
"sigs.k8s.io/controller-runtime/pkg/log/zap"
36+
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3537

3638
agentv1alpha1 "github.com/kagenti/operator/api/v1alpha1"
3739
// +kubebuilder:scaffold:imports
@@ -41,11 +43,12 @@ import (
4143
// http://onsi.github.io/ginkgo/ to learn more about Ginkgo.
4244

4345
var (
44-
ctx context.Context
45-
cancel context.CancelFunc
46-
testEnv *envtest.Environment
47-
cfg *rest.Config
48-
k8sClient client.Client
46+
ctx context.Context
47+
cancel context.CancelFunc
48+
testEnv *envtest.Environment
49+
cfg *rest.Config
50+
k8sClient client.Client
51+
indexedClient client.Client
4952
)
5053

5154
func TestControllers(t *testing.T) {
@@ -87,6 +90,22 @@ var _ = BeforeSuite(func() {
8790
k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
8891
Expect(err).NotTo(HaveOccurred())
8992
Expect(k8sClient).NotTo(BeNil())
93+
94+
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
95+
Scheme: scheme.Scheme,
96+
Metrics: metricsserver.Options{BindAddress: "0"},
97+
})
98+
Expect(err).NotTo(HaveOccurred())
99+
100+
err = RegisterAgentCardTargetRefIndex(mgr)
101+
Expect(err).NotTo(HaveOccurred())
102+
103+
go func() {
104+
defer GinkgoRecover()
105+
Expect(mgr.Start(ctx)).To(Succeed())
106+
}()
107+
108+
indexedClient = mgr.GetClient()
90109
})
91110

92111
var _ = AfterSuite(func() {

0 commit comments

Comments
 (0)