87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
package api
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
	"net/http/httptest"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/distribution/distribution/v3/health"
 | 
						|
)
 | 
						|
 | 
						|
// TestGETDownHandlerDoesNotChangeStatus ensures that calling the endpoint
 | 
						|
// /debug/health/down with METHOD GET returns a 404
 | 
						|
func TestGETDownHandlerDoesNotChangeStatus(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health/down", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	DownHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 404 {
 | 
						|
		t.Errorf("Did not get a 404.")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// TestGETUpHandlerDoesNotChangeStatus ensures that calling the endpoint
 | 
						|
// /debug/health/down with METHOD GET returns a 404
 | 
						|
func TestGETUpHandlerDoesNotChangeStatus(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health/up", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	DownHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 404 {
 | 
						|
		t.Errorf("Did not get a 404.")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// TestPOSTDownHandlerChangeStatus ensures the endpoint /debug/health/down changes
 | 
						|
// the status code of the response to 503
 | 
						|
// This test is order dependent, and should come before TestPOSTUpHandlerChangeStatus
 | 
						|
func TestPOSTDownHandlerChangeStatus(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("POST", "https://fakeurl.com/debug/health/down", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	DownHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 200 {
 | 
						|
		t.Errorf("Did not get a 200.")
 | 
						|
	}
 | 
						|
 | 
						|
	if len(health.CheckStatus()) != 1 {
 | 
						|
		t.Errorf("DownHandler didn't add an error check.")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// TestPOSTUpHandlerChangeStatus ensures the endpoint /debug/health/up changes
 | 
						|
// the status code of the response to 200
 | 
						|
func TestPOSTUpHandlerChangeStatus(t *testing.T) {
 | 
						|
	recorder := httptest.NewRecorder()
 | 
						|
 | 
						|
	req, err := http.NewRequest("POST", "https://fakeurl.com/debug/health/up", nil)
 | 
						|
	if err != nil {
 | 
						|
		t.Errorf("Failed to create request.")
 | 
						|
	}
 | 
						|
 | 
						|
	UpHandler(recorder, req)
 | 
						|
 | 
						|
	if recorder.Code != 200 {
 | 
						|
		t.Errorf("Did not get a 200.")
 | 
						|
	}
 | 
						|
 | 
						|
	if len(health.CheckStatus()) != 0 {
 | 
						|
		t.Errorf("UpHandler didn't remove the error check.")
 | 
						|
	}
 | 
						|
}
 |