Skip to content

Commit 0a017bc

Browse files
alecmerdlerJeff Peeler
authored andcommitted
end-to-end test for cleaning up apiservices after CSV delete
1 parent f946fb1 commit 0a017bc

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

test/e2e/csv_e2e_test.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"strings"
77
"testing"
8+
"time"
89

910
"github.com/stretchr/testify/require"
1011
appsv1 "k8s.io/api/apps/v1"
@@ -17,6 +18,7 @@ import (
1718
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1819
"k8s.io/apimachinery/pkg/runtime"
1920
"k8s.io/apimachinery/pkg/util/wait"
21+
"k8s.io/apimachinery/pkg/watch"
2022

2123
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1"
2224
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
@@ -1217,9 +1219,31 @@ func TestCreateCSVWithOwnedAPIService(t *testing.T) {
12171219
csv.SetName(depName)
12181220

12191221
// Create the APIService CSV
1220-
cleanupCSV, err := createCSV(t, c, crc, csv, testNamespace, false, true)
1222+
cleanupCSV, err := createCSV(t, c, crc, csv, testNamespace, false, false)
12211223
require.NoError(t, err)
1222-
defer cleanupCSV()
1224+
defer func() {
1225+
watcher, err := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().Watch(metav1.ListOptions{FieldSelector: "metadata.name=" + apiServiceName})
1226+
require.NoError(t, err)
1227+
1228+
deleted := make(chan struct{})
1229+
go func() {
1230+
events := watcher.ResultChan()
1231+
for {
1232+
select {
1233+
case evt := <-events:
1234+
if evt.Type == watch.Deleted {
1235+
deleted <- struct{}{}
1236+
return
1237+
}
1238+
case <-time.After(pollDuration):
1239+
require.FailNow(t, "apiservice not cleaned up after CSV deleted")
1240+
}
1241+
}
1242+
}()
1243+
1244+
cleanupCSV()
1245+
<-deleted
1246+
}()
12231247

12241248
fetchedCSV, err := fetchCSV(t, crc, csv.Name, testNamespace, csvSucceededChecker)
12251249
require.NoError(t, err)

0 commit comments

Comments
 (0)