Files
wehub-resource-sync ead81af521
Deploy to GitHub Pages / deploy (push) Failing after 0s
CI / go (push) Has been cancelled
CI / build (darwin, macos-14) (push) Has been cancelled
CI / build (windows, windows-2025) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:13 +08:00

84 lines
1.9 KiB
Go

package config
import (
"os"
"path/filepath"
"testing"
)
func TestLoadNetEase(t *testing.T) {
tests := []struct {
name string
env map[string]string
tomlContent string
wantEnabled bool
wantIsSet bool
wantCookies string
wantUserID string
}{
{
name: "disabled by default",
},
{
name: "enabled with explicit values",
tomlContent: `[netease]
enabled = true
cookies_from = "chrome"
user_id = "42"
`,
wantEnabled: true,
wantIsSet: true,
wantCookies: "chrome",
wantUserID: "42",
},
{
name: "cookies_from interpolated from env",
env: map[string]string{"NETEASE_BROWSER": "chrome"},
tomlContent: `[netease]
enabled = true
cookies_from = "$NETEASE_BROWSER"
`,
wantEnabled: true,
wantIsSet: true,
wantCookies: "chrome",
},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
dir := t.TempDir()
t.Setenv("HOME", dir)
for k, v := range tc.env {
t.Setenv(k, v)
}
if tc.tomlContent != "" {
configDir := filepath.Join(dir, ".config", "cliamp")
if err := os.MkdirAll(configDir, 0o755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(configDir, "config.toml"), []byte(tc.tomlContent), 0o644); err != nil {
t.Fatal(err)
}
}
cfg, err := Load()
if err != nil {
t.Fatalf("Load() error = %v", err)
}
if cfg.NetEase.Enabled != tc.wantEnabled {
t.Errorf("NetEase.Enabled = %v, want %v", cfg.NetEase.Enabled, tc.wantEnabled)
}
if cfg.NetEase.IsSet() != tc.wantIsSet {
t.Errorf("NetEase.IsSet() = %v, want %v", cfg.NetEase.IsSet(), tc.wantIsSet)
}
if cfg.NetEase.CookiesFrom != tc.wantCookies {
t.Errorf("CookiesFrom = %q, want %q", cfg.NetEase.CookiesFrom, tc.wantCookies)
}
if cfg.NetEase.UserID != tc.wantUserID {
t.Errorf("UserID = %q, want %q", cfg.NetEase.UserID, tc.wantUserID)
}
})
}
}