// CheckHealth does not succeed if the health check to the KM server times out func TestHealthCheckKMTimeout(t *testing.T) { signer := makeSigner( stubHealthFunction(t, nil, grpc.Errorf(codes.DeadlineExceeded, "")), StubGRPCConnection{}) err := signer.CheckHealth(1 * time.Second) assert.Error(t, err) assert.True(t, strings.Contains(err.Error(), "Timed out")) }
// CheckHealth succeeds if KM is healthy and reachable. func TestHealthCheckKMHealthy(t *testing.T) { signer := makeSigner( stubHealthFunction(t, make(map[string]string), nil), StubGRPCConnection{}) assert.NoError(t, signer.CheckHealth(1*time.Second)) }
// CheckHealth does not succeed if the KM server is unhealthy func TestHealthCheckKMUnhealthy(t *testing.T) { signer := makeSigner( stubHealthFunction(t, map[string]string{"health": "not good"}, nil), StubGRPCConnection{}) assert.Error(t, signer.CheckHealth(1*time.Second)) }
// CheckHealth does not succeed if the health check to the KM server errors func TestHealthCheckKMError(t *testing.T) { signer := makeSigner( stubHealthFunction(t, nil, errors.New("Something's wrong")), StubGRPCConnection{}) assert.Error(t, signer.CheckHealth(1*time.Second)) }
// CheckHealth fails immediately if not connected to the server. func TestHealthCheckConnectionDied(t *testing.T) { signer := makeSigner( stubHealthFunction(t, make(map[string]string), nil), StubGRPCConnection{grpc.Connecting}) require.Error(t, signer.CheckHealth(1*time.Second)) }