Skip to content

Commit

Permalink
added test for buildingHealthCheckResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
tayoogunbiyi committed Jul 7, 2020
1 parent 469dc7b commit e0f8c68
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 8 deletions.
16 changes: 8 additions & 8 deletions admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
}
Expand Down
35 changes: 35 additions & 0 deletions admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{})
Expand Down

0 comments on commit e0f8c68

Please sign in to comment.