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) } }