diff --git a/http/service_test.go b/http/service_test.go index 1f32d6af..2ac7fb5d 100644 --- a/http/service_test.go +++ b/http/service_test.go @@ -10,6 +10,7 @@ import ( "net/url" "os" "strings" + "sync/atomic" "testing" "time" @@ -1046,16 +1047,22 @@ func Test_Readyz(t *testing.T) { } m.notReady = true + m.committedFn = func(timeout time.Duration) (uint64, error) { + t.Fatal("committedFn should not have been called") + return 0, nil + } resp, err = client.Get(host + "/readyz") if err != nil { - t.Fatalf("failed to make nodes request") + t.Fatalf("failed to make readyz request") } if resp.StatusCode != http.StatusServiceUnavailable { t.Fatalf("failed to get expected StatusServiceUnavailable, got %d", resp.StatusCode) } + cnt := &atomic.Uint32{} m.notReady = false m.committedFn = func(timeout time.Duration) (uint64, error) { + cnt.Store(1) return 0, fmt.Errorf("timeout") } resp, err = client.Get(host + "/readyz?commit") @@ -1065,8 +1072,12 @@ func Test_Readyz(t *testing.T) { if resp.StatusCode != http.StatusServiceUnavailable { t.Fatalf("failed to get expected StatusServiceUnavailable, got %d", resp.StatusCode) } + if cnt.Load() != 1 { + t.Fatalf("failed to call committedFn") + } m.notReady = false m.committedFn = func(timeout time.Duration) (uint64, error) { + cnt.Store(2) return 0, nil } resp, err = client.Get(host + "/readyz?commit") @@ -1076,6 +1087,9 @@ func Test_Readyz(t *testing.T) { if resp.StatusCode != http.StatusOK { t.Fatalf("failed to get expected StatusOK, got %d", resp.StatusCode) } + if cnt.Load() != 2 { + t.Fatalf("failed to call committedFn") + } } func Test_ForwardingRedirectQuery(t *testing.T) {