From d6c2b44574b5f265599ec5688807aad1f0513dc7 Mon Sep 17 00:00:00 2001 From: Jake Sanders Date: Fri, 3 Dec 2021 18:34:34 -0800 Subject: [PATCH 1/2] ensure that the test HTTP handlers are called Signed-off-by: Jake Sanders --- pkg/client/rekor_client_test.go | 47 ++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/pkg/client/rekor_client_test.go b/pkg/client/rekor_client_test.go index 298f144ba..675e3c315 100644 --- a/pkg/client/rekor_client_test.go +++ b/pkg/client/rekor_client_test.go @@ -25,16 +25,20 @@ import ( ) func TestAPIKey(t *testing.T) { + pkRequestReceived := false + logRequestReceived := false testServer := httptest.NewServer(http.HandlerFunc( func(w http.ResponseWriter, r *http.Request) { file := []byte{} switch { case strings.HasPrefix(r.URL.Path, "/api/v1/log/publicKey"): + pkRequestReceived = true if r.URL.Query().Get("apiKey") != "" { t.Errorf("API key sent but not expected: %v", r.URL.Query().Get("apiKey")) } case strings.HasPrefix(r.URL.Path, "/api/v1/log"): + logRequestReceived = true if r.URL.Query().Get("apiKey") == "" { t.Errorf("API key expected but not sent") } @@ -44,25 +48,41 @@ func TestAPIKey(t *testing.T) { })) defer testServer.Close() - viper.Set("api-key", "thisIsAnAPIKey") - client, err := GetRekorClient(testServer.URL) - if err != nil { - t.Error(err) - } - _, _ = client.Tlog.GetLogInfo(nil) + t.Run("GetLogInfo", func(t *testing.T) { + logRequestReceived = false + viper.Set("api-key", "thisIsAnAPIKey") + client, err := GetRekorClient(testServer.URL) + if err != nil { + t.Error(err) + } + _, _ = client.Tlog.GetLogInfo(nil) + if !logRequestReceived { + t.Fatal("no GetLogInfo requests were received") + } + }) + + t.Run("GetPublicKey", func(t *testing.T) { + pkRequestReceived = false + viper.Set("api-key", "") + client, err := GetRekorClient(testServer.URL) + if err != nil { + t.Error(err) + } + _, _ = client.Pubkey.GetPublicKey(nil) + if !pkRequestReceived { + t.Fatal("no GetPublicKey requests were received") + } + + }) - viper.Set("api-key", "") - client, err = GetRekorClient(testServer.URL) - if err != nil { - t.Error(err) - } - _, _ = client.Pubkey.GetPublicKey(nil) } func TestGetRekorClientWithOptions(t *testing.T) { expectedUserAgent := "test User-Agent" + requestReceived := false testServer := httptest.NewServer(http.HandlerFunc( func(w http.ResponseWriter, r *http.Request) { + requestReceived = true file := []byte{} got := r.UserAgent() @@ -79,4 +99,7 @@ func TestGetRekorClientWithOptions(t *testing.T) { t.Error(err) } _, _ = client.Tlog.GetLogInfo(nil) + if !requestReceived { + t.Fatal("no requests were received") + } } From 9de3d99bee9b351e1baf45414e455b559f8c4ae3 Mon Sep 17 00:00:00 2001 From: Jake Sanders Date: Fri, 3 Dec 2021 18:35:18 -0800 Subject: [PATCH 2/2] parallelize HTTP server dependent tests Signed-off-by: Jake Sanders --- pkg/client/rekor_client_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/client/rekor_client_test.go b/pkg/client/rekor_client_test.go index 675e3c315..e7f09fee0 100644 --- a/pkg/client/rekor_client_test.go +++ b/pkg/client/rekor_client_test.go @@ -25,6 +25,7 @@ import ( ) func TestAPIKey(t *testing.T) { + t.Parallel() pkRequestReceived := false logRequestReceived := false testServer := httptest.NewServer(http.HandlerFunc( @@ -78,6 +79,7 @@ func TestAPIKey(t *testing.T) { } func TestGetRekorClientWithOptions(t *testing.T) { + t.Parallel() expectedUserAgent := "test User-Agent" requestReceived := false testServer := httptest.NewServer(http.HandlerFunc(