From 5cd02e717bae7298cc2d2c33ffdfc62c250c9a2c Mon Sep 17 00:00:00 2001
From: Jake Sanders <jsand@google.com>
Date: Fri, 3 Dec 2021 19:03:54 -0800
Subject: [PATCH] Correct & parallelize tests (#522)

* ensure that the test HTTP handlers are called

Signed-off-by: Jake Sanders <jsand@google.com>

* parallelize HTTP server dependent tests

Signed-off-by: Jake Sanders <jsand@google.com>
---
 pkg/client/rekor_client_test.go | 49 +++++++++++++++++++++++++--------
 1 file changed, 37 insertions(+), 12 deletions(-)

diff --git a/pkg/client/rekor_client_test.go b/pkg/client/rekor_client_test.go
index 298f144..e7f09fe 100644
--- a/pkg/client/rekor_client_test.go
+++ b/pkg/client/rekor_client_test.go
@@ -25,16 +25,21 @@ import (
 )
 
 func TestAPIKey(t *testing.T) {
+	t.Parallel()
+	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 +49,42 @@ 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) {
+	t.Parallel()
 	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 +101,7 @@ func TestGetRekorClientWithOptions(t *testing.T) {
 		t.Error(err)
 	}
 	_, _ = client.Tlog.GetLogInfo(nil)
+	if !requestReceived {
+		t.Fatal("no requests were received")
+	}
 }
-- 
GitLab