From e0f8c6832d5477e7b239b60ce25db4b42f01ed49 Mon Sep 17 00:00:00 2001 From: Eyitayo Ogunbiyi Date: Tue, 7 Jul 2020 16:28:16 +0100 Subject: [PATCH] added test for buildingHealthCheckResponse --- admin.go | 16 ++++++++-------- admin_test.go | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/admin.go b/admin.go index 2ee415d4..db52647e 100644 --- a/admin.go +++ b/admin.go @@ -326,8 +326,8 @@ func healthcheck(rw http.ResponseWriter, r *http.Request) { shouldReturnJSON, _ := strconv.ParseBool(jsonFlag) if shouldReturnJSON { - responseMap := buildHealthCheckResponseMap(resultList) - jsonResponse, err := json.Marshal(responseMap) + response := buildHealthCheckResponseList(resultList) + jsonResponse, err := json.Marshal(response) if err != nil { http.Error(rw, err.Error(), http.StatusInternalServerError) @@ -344,15 +344,15 @@ func healthcheck(rw http.ResponseWriter, r *http.Request) { writeTemplate(rw, data, healthCheckTpl, defaultScriptsTpl) } -func buildHealthCheckResponseMap(resultList *[][]string) []map[string]interface{} { - response := make([]map[string]interface{}, len(*resultList)) +func buildHealthCheckResponseList(healthCheckResults *[][]string) []map[string]interface{} { + response := make([]map[string]interface{}, len(*healthCheckResults)) - for i, currentResult := range *resultList { + for i, healthCheckResult := range *healthCheckResults { currentResultMap := make(map[string]interface{}) - currentResultMap["name"] = currentResult[0] - currentResultMap["message"] = currentResult[1] - currentResultMap["status"] = currentResult[2] + currentResultMap["name"] = healthCheckResult[0] + currentResultMap["message"] = healthCheckResult[1] + currentResultMap["status"] = healthCheckResult[2] response[i] = currentResultMap } diff --git a/admin_test.go b/admin_test.go index 4a614721..24da3a2b 100644 --- a/admin_test.go +++ b/admin_test.go @@ -149,6 +149,41 @@ func TestHealthCheckHandlerDefault(t *testing.T) { } +func TestBuildHealthCheckResponseList(t *testing.T) { + healthCheckResults := [][]string{ + []string{ + "error", + "Database", + "Error occured whie starting the db", + }, + []string{ + "success", + "Cache", + "Cache started successfully", + }, + } + + responseList := buildHealthCheckResponseList(&healthCheckResults) + + if len(responseList) != len(healthCheckResults) { + t.Errorf("invalid response map length: got %d want %d", + len(responseList), len(healthCheckResults)) + } + + responseFields := []string{"name", "message", "status"} + + for _, response := range responseList { + for _, field := range responseFields { + _, ok := response[field] + if !ok { + t.Errorf("expected %s to be in the response %v", field, response) + } + } + + } + +} + func TestHealthCheckHandlerReturnsJSON(t *testing.T) { toolbox.AddHealthCheck("database", &SampleDatabaseCheck{})