arblant
firefox-vpn-client / core / internal / proxy / redact_test.go
redact_test.go30 lines · 771 B
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
package proxy

import (
	"net/http"
	"strings"
	"testing"

	"github.com/armanlife/firefox-vpn-client/core/internal/logx"
)

func TestLogErrRedactsConnectHTTPBodyUnlessVerbose(t *testing.T) {
	previous := logx.Verbose.Load()
	t.Cleanup(func() { logx.Verbose.Store(previous) })

	err := &proxyConnectHTTPError{
		statusCode: http.StatusBadGateway,
		status:     "502 Bad Gateway",
		body:       "target example.com failed",
	}

	logx.Verbose.Store(false)
	if got := logx.Err(err); strings.Contains(got, "example.com") {
		t.Fatalf("expected default log error to redact CONNECT body, got %q", got)
	}

	logx.Verbose.Store(true)
	if got := logx.Err(err); !strings.Contains(got, "example.com") {
		t.Fatalf("expected verbose log error to keep CONNECT body, got %q", got)
	}
}