Files
CLIProxyAPI/internal/api/handlers/management/config_basic_version_test.go
Luis Pater d36b776c79 fix(test): improve cross-platform compatibility across unit tests
- Support CRLF line endings and skip hidden dot directories in nocopy invariant tests.
- Handle environment variable overrides and skip case-sensitive token priority tests on Windows.
- Use static OS and architecture values in Claude header fingerprint assertions for deterministic test results.

Closes: #5295
2026-08-28 05:01:42 +08:00

49 lines
1.2 KiB
Go

package management
import (
"net/http"
"net/http/httptest"
"testing"
)
func TestSetLatestReleaseRequestHeaders(t *testing.T) {
tests := []struct {
name string
githubToken string
wantAuthorization string
}{
{
name: "sets GitHub authorization",
githubToken: "release-token",
wantAuthorization: "Bearer release-token",
},
{
name: "omits authorization without token",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Setenv("GITHUB_TOKEN", tt.githubToken)
if tt.githubToken == "" {
t.Setenv("github_token", "")
}
t.Setenv("GITSTORE_GIT_TOKEN", "")
t.Setenv("GITSTORE_GIT_URL", "")
req := httptest.NewRequest(http.MethodGet, latestReleaseURL, nil)
setLatestReleaseRequestHeaders(req)
if got := req.Header.Get("Authorization"); got != tt.wantAuthorization {
t.Fatalf("Authorization = %q, want %q", got, tt.wantAuthorization)
}
if got := req.Header.Get("Accept"); got != "application/vnd.github+json" {
t.Fatalf("Accept = %q, want GitHub JSON media type", got)
}
if got := req.Header.Get("User-Agent"); got != latestReleaseUserAgent {
t.Fatalf("User-Agent = %q, want %q", got, latestReleaseUserAgent)
}
})
}
}