49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestEnvTokenPrefersTokenEnv(t *testing.T) {
|
|
t.Setenv("OPEN_PROXY_TOKEN", "env-token")
|
|
t.Setenv("OPEN_PROXY_TOKEN_FILE", filepath.Join(t.TempDir(), "missing"))
|
|
|
|
token, err := envToken()
|
|
if err != nil {
|
|
t.Fatalf("envToken() error = %v", err)
|
|
}
|
|
if token != "env-token" {
|
|
t.Fatalf("envToken() = %q, want %q", token, "env-token")
|
|
}
|
|
}
|
|
|
|
func TestEnvTokenReadsTokenFile(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "token")
|
|
if err := os.WriteFile(path, []byte("file-token\n"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Setenv("OPEN_PROXY_TOKEN_FILE", path)
|
|
|
|
token, err := envToken()
|
|
if err != nil {
|
|
t.Fatalf("envToken() error = %v", err)
|
|
}
|
|
if token != "file-token" {
|
|
t.Fatalf("envToken() = %q, want %q", token, "file-token")
|
|
}
|
|
}
|
|
|
|
func TestEnvTokenErrorsOnEmptyTokenFile(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "token")
|
|
if err := os.WriteFile(path, []byte("\n"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Setenv("OPEN_PROXY_TOKEN_FILE", path)
|
|
|
|
if token, err := envToken(); err == nil {
|
|
t.Fatalf("envToken() = %q, nil error; want error", token)
|
|
}
|
|
}
|