32 lines
690 B
Go
32 lines
690 B
Go
package health
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestHealthHandler(t *testing.T) {
|
|
server := httptest.NewServer(Handler())
|
|
defer server.Close()
|
|
|
|
response, err := http.Get(server.URL + "/health")
|
|
if err != nil {
|
|
t.Fatalf("get health: %v", err)
|
|
}
|
|
defer response.Body.Close()
|
|
|
|
if response.StatusCode != http.StatusOK {
|
|
t.Fatalf("unexpected status: %d", response.StatusCode)
|
|
}
|
|
|
|
var payload Status
|
|
if err := json.NewDecoder(response.Body).Decode(&payload); err != nil {
|
|
t.Fatalf("decode health payload: %v", err)
|
|
}
|
|
if payload.Status != "ok" || payload.Service != "cmpp-gateway" {
|
|
t.Fatalf("unexpected payload: %+v", payload)
|
|
}
|
|
}
|