[ci skip] more suggested improvements
This commit is contained in:
63
server/handler/legacy_gate_test.go
Normal file
63
server/handler/legacy_gate_test.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDenyLegacyAPIDisabledByDefault(t *testing.T) {
|
||||
t.Setenv(legacyAPIEnvVar, "")
|
||||
h := &Handler{Logger: newTestLogger()}
|
||||
rr := httptest.NewRecorder()
|
||||
|
||||
denied := h.denyLegacyAPI(rr, "/api/event/vm/create")
|
||||
if !denied {
|
||||
t.Fatal("expected legacy API to be denied by default")
|
||||
}
|
||||
if rr.Code != http.StatusGone {
|
||||
t.Fatalf("expected %d, got %d", http.StatusGone, rr.Code)
|
||||
}
|
||||
if !strings.Contains(rr.Body.String(), "deprecated") {
|
||||
t.Fatalf("unexpected response body: %s", rr.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestDenyLegacyAPIEnabledViaEnv(t *testing.T) {
|
||||
t.Setenv(legacyAPIEnvVar, "1")
|
||||
h := &Handler{Logger: newTestLogger()}
|
||||
rr := httptest.NewRecorder()
|
||||
|
||||
denied := h.denyLegacyAPI(rr, "/api/event/vm/create")
|
||||
if denied {
|
||||
t.Fatal("expected legacy API to be allowed when env var is set")
|
||||
}
|
||||
if rr.Body.Len() != 0 {
|
||||
t.Fatalf("expected no response body write, got: %s", rr.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestVmCreateEventHonorsLegacyGate(t *testing.T) {
|
||||
h := &Handler{Logger: newTestLogger()}
|
||||
|
||||
t.Run("disabled", func(t *testing.T) {
|
||||
t.Setenv(legacyAPIEnvVar, "")
|
||||
req := httptest.NewRequest(http.MethodPost, "/api/event/vm/create", strings.NewReader("{invalid"))
|
||||
rr := httptest.NewRecorder()
|
||||
h.VmCreateEvent(rr, req)
|
||||
if rr.Code != http.StatusGone {
|
||||
t.Fatalf("expected %d, got %d", http.StatusGone, rr.Code)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("enabled", func(t *testing.T) {
|
||||
t.Setenv(legacyAPIEnvVar, "1")
|
||||
req := httptest.NewRequest(http.MethodPost, "/api/event/vm/create", strings.NewReader("{invalid"))
|
||||
rr := httptest.NewRecorder()
|
||||
h.VmCreateEvent(rr, req)
|
||||
if rr.Code != http.StatusBadRequest {
|
||||
t.Fatalf("expected %d when gate is open, got %d", http.StatusBadRequest, rr.Code)
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user