Ian Fijolek
0a36da79d6
All checks were successful
continuous-integration/drone/push Build is passing
This avoids panicing and instead provides an HTTP endpoint to report health
80 lines
1.8 KiB
Go
80 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewHealthCheck(t *testing.T) {
|
|
monitors := []*Monitor{
|
|
{Name: "Test Monitor"},
|
|
}
|
|
hc := NewHealthCheckHandler(monitors)
|
|
|
|
monitors[0].alertCount++
|
|
|
|
if healthy, _ := hc.MinitorHealthCheck(); healthy {
|
|
t.Errorf("Initial hc state should be unhealthy until some successful alert is sent")
|
|
}
|
|
|
|
if healthy, _ := hc.MonitorsHealthCheck(); healthy {
|
|
t.Errorf("Faking an alert on the monitor pointer should make this unhealthy")
|
|
}
|
|
}
|
|
|
|
func TestMinitorHealthCheck(t *testing.T) {
|
|
monitors := []*Monitor{
|
|
{Name: "Test Monitor"},
|
|
}
|
|
hc := NewHealthCheckHandler(monitors)
|
|
|
|
t.Run("MinitorHealthCheck(healthy)", func(t *testing.T) {
|
|
hc.MinitorHealthy(true)
|
|
healthy, body := hc.MinitorHealthCheck()
|
|
if !healthy {
|
|
t.Errorf("Expected healthy check")
|
|
}
|
|
if body != "OK" {
|
|
t.Errorf("Expected OK response")
|
|
}
|
|
})
|
|
|
|
t.Run("MinitorHealthCheck(unhealthy)", func(t *testing.T) {
|
|
hc.MinitorHealthy(false)
|
|
healthy, body := hc.MinitorHealthCheck()
|
|
if healthy {
|
|
t.Errorf("Expected healthy check")
|
|
}
|
|
if body != "UNHEALTHY" {
|
|
t.Errorf("Expected UNHEALTHY response")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestMonitorsHealthCheck(t *testing.T) {
|
|
monitors := []*Monitor{
|
|
{Name: "Test Monitor"},
|
|
}
|
|
hc := NewHealthCheckHandler(monitors)
|
|
|
|
t.Run("MonitorsHealthCheck(healthy)", func(t *testing.T) {
|
|
healthy, body := hc.MonitorsHealthCheck()
|
|
if !healthy {
|
|
t.Errorf("Expected healthy check")
|
|
}
|
|
if body != "OK" {
|
|
t.Errorf("Expected OK response")
|
|
}
|
|
})
|
|
|
|
t.Run("MonitorsHealthCheck(unhealthy)", func(t *testing.T) {
|
|
monitors[0].alertCount++
|
|
healthy, body := hc.MonitorsHealthCheck()
|
|
if healthy {
|
|
t.Errorf("Expected healthy check")
|
|
}
|
|
if body != "UNHEALTHY: The following monitors are unhealthy: Test Monitor" {
|
|
t.Errorf("Expected UNHEALTHY response")
|
|
}
|
|
})
|
|
}
|