48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
package health
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
	"net/http"
 | 
						|
	"net/http/httptest"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
// TestReturns200IfThereAreNoChecks ensures that the result code of the health
 | 
						|
// endpoint is 200 if there are not currently registered checks.
 | 
						|
func TestReturns200IfThereAreNoChecks(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	StatusHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 200 {
 | 
						|
		t.Errorf("Did not get a 200.")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// TestReturns500IfThereAreErrorChecks ensures that the result code of the
 | 
						|
// health endpoint is 500 if there are health checks with errors
 | 
						|
func TestReturns503IfThereAreErrorChecks(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	// Create a manual error
 | 
						|
	Register("some_check", CheckFunc(func() error {
 | 
						|
		return errors.New("This Check did not succeed")
 | 
						|
	}))
 | 
						|
 | 
						|
	StatusHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 503 {
 | 
						|
		t.Errorf("Did not get a 503.")
 | 
						|
	}
 | 
						|
}
 |