package httpapi import ( "net/http" "net/http/httptest" "testing" ) func TestRequiredIdentityWriteHeaders(t *testing.T) { request := httptest.NewRequest(http.MethodPost, "/identity", nil) recorder := httptest.NewRecorder() if _, ok := requiredIdentityVersion(recorder, request); ok || recorder.Code != http.StatusPreconditionRequired { t.Fatalf("missing If-Match status=%d", recorder.Code) } request.Header.Set("If-Match", `W/"7"`) recorder = httptest.NewRecorder() version, ok := requiredIdentityVersion(recorder, request) if !ok || version != 7 { t.Fatalf("weak ETag version=%d ok=%v", version, ok) } } func TestIdentityErrorProjectionProtectsInternalDetails(t *testing.T) { status, message, code := identityErrorProjection(assertionError("upstream response contained secret-token")) if status != http.StatusBadGateway || code != "IDENTITY_SERVICE_UNAVAILABLE" || message == "upstream response contained secret-token" { t.Fatalf("unsafe error projection status=%d code=%q message=%q", status, code, message) } } type assertionError string func (err assertionError) Error() string { return string(err) }