35 lines
947 B
Go
35 lines
947 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadSecretPrefersFileAndRemovesOnlyLineEndings(t *testing.T) {
|
|
directory := t.TempDir()
|
|
path := filepath.Join(directory, "token")
|
|
if err := os.WriteFile(path, []byte("file-token\r\n"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Setenv("TEST_TOKEN", "environment-token")
|
|
t.Setenv("TEST_TOKEN_FILE", path)
|
|
if got := readSecret("TEST_TOKEN", "TEST_TOKEN_FILE"); got != "file-token" {
|
|
t.Fatalf("readSecret() = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestReadMapSecretFromFile(t *testing.T) {
|
|
directory := t.TempDir()
|
|
path := filepath.Join(directory, "users.json")
|
|
if err := os.WriteFile(path, []byte("{\"admin\":\"password\"}\n"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
t.Setenv("TEST_USERS", "")
|
|
t.Setenv("TEST_USERS_FILE", path)
|
|
users := readMapSecret("TEST_USERS", "TEST_USERS_FILE")
|
|
if users["admin"] != "password" || len(users) != 1 {
|
|
t.Fatalf("readMapSecret() = %#v", users)
|
|
}
|
|
}
|