Skip to content

Commit b394627

Browse files
committed
test/e2e: actually test that we can do CRUD on the resources
Signed-off-by: Dr. Stefan Schimanski <[email protected]>
1 parent 6fb4c62 commit b394627

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ require (
1717
golang.org/x/sync v0.11.0
1818
golang.org/x/sys v0.30.0
1919
k8s.io/api v0.32.3
20+
k8s.io/apiextensions-apiserver v0.32.1
2021
k8s.io/apimachinery v0.32.3
2122
k8s.io/client-go v0.32.3
2223
k8s.io/klog/v2 v2.130.1
@@ -73,7 +74,6 @@ require (
7374
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
7475
gopkg.in/inf.v0 v0.9.1 // indirect
7576
gopkg.in/yaml.v3 v3.0.1 // indirect
76-
k8s.io/apiextensions-apiserver v0.32.1 // indirect
7777
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
7878
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
7979
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect

test/e2e/apiexport_test.go

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ import (
2727

2828
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3031
"k8s.io/apimachinery/pkg/runtime"
32+
runtimeschema "k8s.io/apimachinery/pkg/runtime/schema"
3133
"k8s.io/apimachinery/pkg/util/sets"
3234
"k8s.io/apimachinery/pkg/util/wait"
3335
"k8s.io/client-go/rest"
@@ -94,6 +96,7 @@ var _ = Describe("VirtualWorkspace Provider", Ordered, func() {
9496
Raw: []byte(`{"type":"object","properties":{"spec":{"type":"object","properties":{"message":{"type":"string"}}}}}`),
9597
},
9698
Storage: true,
99+
Served: true,
97100
}},
98101
},
99102
}
@@ -149,11 +152,35 @@ var _ = Describe("VirtualWorkspace Provider", Ordered, func() {
149152
envtest.Eventually(GinkgoT(), func() (bool, string) {
150153
err := cli.Cluster(provider).Get(ctx, client.ObjectKey{Name: "example.com"}, endpoints)
151154
if err != nil {
152-
return false, fmt.Sprintf("failed to get APIExportEndpointSlice in %s: %v", provider, err)
155+
return false, fmt.Sprintf("failed to get APIExportEndpointSlice in %q: %v", provider, err)
153156
}
154157
return len(endpoints.Status.APIExportEndpoints) > 0, toYAML(GinkgoT(), endpoints)
155-
}, wait.ForeverTestTimeout, time.Millisecond*100, "failed to see endpoints in APIExportEndpointSlice in %s", provider)
158+
}, wait.ForeverTestTimeout, time.Millisecond*100, "failed to see endpoints in APIExportEndpointSlice in %q", provider)
156159
vwEndpoint = endpoints.Status.APIExportEndpoints[0].URL
160+
161+
By(fmt.Sprintf("waiting until the APIBinding in the consumer workspace %q to be ready", consumer))
162+
envtest.Eventually(GinkgoT(), func() (bool, string) {
163+
current := &apisv1alpha1.APIBinding{}
164+
err := cli.Cluster(consumer).Get(ctx, client.ObjectKey{Name: "example.com"}, current)
165+
if err != nil {
166+
return false, fmt.Sprintf("failed to get APIBinding in %q: %v", consumer, err)
167+
}
168+
if current.Status.Phase != apisv1alpha1.APIBindingPhaseBound {
169+
return false, fmt.Sprintf("binding not bound:\n\n%s", toYAML(GinkgoT(), current))
170+
}
171+
return true, ""
172+
}, wait.ForeverTestTimeout, time.Millisecond*100, "failed to wait for APIBinding in consumer workspace to be ready %q", consumer)
173+
174+
By("waiting until things can be listed in the consumer workspace")
175+
envtest.Eventually(GinkgoT(), func() (bool, string) {
176+
u := &unstructured.UnstructuredList{}
177+
u.SetGroupVersionKind(runtimeschema.GroupVersionKind{Group: "example.com", Version: "v1", Kind: "ThingList"})
178+
err = cli.Cluster(consumer).List(ctx, u)
179+
if err != nil {
180+
return false, fmt.Sprintf("failed to list things in %s: %v", consumer, err)
181+
}
182+
return true, ""
183+
}, wait.ForeverTestTimeout, time.Millisecond*100, "failed to wait for things to be listable in consumer workspace %q", consumer)
157184
})
158185

159186
Describe("with a multicluster provider and manager", func() {

0 commit comments

Comments
 (0)