From 680f5b65e74c81ebd3b8d7ec2e75e13b6e9e279a Mon Sep 17 00:00:00 2001 From: Rob Watson Date: Wed, 22 Jun 2022 20:57:06 +0200 Subject: [PATCH] watcher: Clean up test --- logs/watcher_test.go | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/logs/watcher_test.go b/logs/watcher_test.go index d37dd9c..7d0d287 100644 --- a/logs/watcher_test.go +++ b/logs/watcher_test.go @@ -109,11 +109,6 @@ func TestWatcherClosedChannel(t *testing.T) { } func TestWatcherWithPodWatcher(t *testing.T) { - // TODO: use watcher.Close() to clean up watcher instead of relying on - // context, which leads to occasional race conditions in tests. - ctx, cancel := context.WithTimeout(context.Background(), time.Second*2) - defer cancel() - deploymentsWatcher := watch.NewFake() defer deploymentsWatcher.Stop() @@ -126,6 +121,10 @@ func TestWatcherWithPodWatcher(t *testing.T) { untypedClient.PrependWatchReactor("deployments", k8stest.DefaultWatchReactor(deploymentsWatcher, nil)) client := logs.KubernetesClient{Typed: typedClient, Untyped: untypedClient} + var buf bytes.Buffer + params := logs.WatcherParams{Name: "mydeployment", Type: "deployments", Namespace: "default"} + watcher := logs.NewWatcher(params, client, logs.NewPodWatcher, &buf, discardLogger()) + go func() { deployment := buildDeployment(t, "mydeployment") deploymentsWatcher.Add(deployment) @@ -140,14 +139,12 @@ func TestWatcherWithPodWatcher(t *testing.T) { podsWatcher.Add(pod) time.Sleep(time.Millisecond * 250) } + + watcher.Close() }() - var buf bytes.Buffer - params := logs.WatcherParams{Name: "mydeployment", Type: "deployments", Namespace: "default"} - watcher := logs.NewWatcher(params, client, logs.NewPodWatcher, &buf, discardLogger()) - - err := watcher.Watch(ctx) - require.EqualError(t, err, context.DeadlineExceeded.Error()) + err := watcher.Watch(context.Background()) + require.NoError(t, err) lines := bufToLines(&buf) require.Len(t, lines, 2) assert.ElementsMatch(t, []string{"[foo] fake logs", "[bar] fake logs"}, lines)