Something went wrong. Try again.
sloproxy
Something went wrong. Try again.
2.0 kB · 76 lines
Go
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677package util
import ( "runtime" "testing")
func TestResolveGitHubToken(t *testing.T) { tests := []struct { name string githubToken string lowerToken string gitStoreToken string gitStoreURL string want string }{ { name: "GITHUB_TOKEN has highest priority", githubToken: " primary-token ", lowerToken: "lower-token", gitStoreToken: "gitstore-token", gitStoreURL: "https://github.com/example/repo.git", want: "primary-token", }, { name: "lowercase token is second priority", githubToken: " ", lowerToken: " lower-token ", gitStoreToken: "gitstore-token", gitStoreURL: "https://github.com/example/repo.git", want: "lower-token", }, { name: "Git store token is used for GitHub", gitStoreToken: " gitstore-token ", gitStoreURL: "HTTPS://GITHUB.COM/example/repo.git", want: "gitstore-token", }, { name: "Git store token is ignored for other hosts", gitStoreToken: "gitstore-token", gitStoreURL: "https://gitlab.com/example/repo.git", }, { name: "Git store token is ignored without URL", gitStoreToken: "gitstore-token", }, { name: "no token configured", }, }
for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if runtime.GOOS == "windows" && tt.name == "GITHUB_TOKEN has highest priority" { t.Skip("environment variables are case-insensitive on Windows") } if tt.githubToken != "" { t.Setenv("GITHUB_TOKEN", tt.githubToken) } if tt.lowerToken != "" { t.Setenv("github_token", tt.lowerToken) } if tt.githubToken == "" && tt.lowerToken == "" { t.Setenv("GITHUB_TOKEN", "") t.Setenv("github_token", "") } t.Setenv("GITSTORE_GIT_TOKEN", tt.gitStoreToken) t.Setenv("GITSTORE_GIT_URL", tt.gitStoreURL)
if got := ResolveGitHubToken(); got != tt.want { t.Fatalf("ResolveGitHubToken() = %q, want %q", got, tt.want) } }) }}