Fix LifetimeWatcher test using a buffered channel to ensure that we don't miss a renewal notice. (#14298)

This commit is contained in:
Nick Cabatoff
2022-02-28 09:24:19 -05:00
committed by GitHub
parent d60a1fe423
commit 459e13f813

View File

@@ -174,8 +174,10 @@ func TestLifetimeWatcher(t *testing.T) {
t.Fatal(err)
}
doneCh := make(chan error, 1)
go func() {
v.doneCh <- v.doRenewWithOptions(false, false, tc.leaseDurationSeconds, "myleaseID", tc.renew, time.Second)
doneCh <- v.doRenewWithOptions(false, false,
tc.leaseDurationSeconds, "myleaseID", tc.renew, time.Second)
}()
defer v.Stop()
@@ -189,12 +191,15 @@ func TestLifetimeWatcher(t *testing.T) {
if r.Secret != renewedSecret {
t.Fatalf("expected secret %v, got %v", renewedSecret, r.Secret)
}
case err := <-v.DoneCh():
case err := <-doneCh:
if tc.expectError != nil && !errors.Is(err, tc.expectError) {
t.Fatalf("expected error %q, got: %v", tc.expectError, err)
}
if tc.expectError == nil && err != nil {
t.Fatalf("expected no error, got: %v", err)
}
if tc.expectRenewal {
t.Fatal("expected at least one renewal")
t.Fatalf("expected at least one renewal, got donech result: %v", err)
}
}
})