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

96 lines
2.4 KiB
Go

package config
import (
"os"
"path/filepath"
"strconv"
"testing"
"time"
)
func TestLoadSeekLargeStepSec(t *testing.T) {
t.Setenv("HOME", t.TempDir())
path := filepath.Join(os.Getenv("HOME"), ".config", "cliamp", "config.toml")
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
t.Fatalf("MkdirAll: %v", err)
}
if err := os.WriteFile(path, []byte("seek_large_step_sec = 42\n"), 0o644); err != nil {
t.Fatalf("WriteFile: %v", err)
}
cfg, err := Load()
if err != nil {
t.Fatalf("Load: %v", err)
}
if cfg.SeekStepLarge != 42 {
t.Fatalf("SeekStepLarge = %d, want 42", cfg.SeekStepLarge)
}
}
func TestLoadSeekLargeStepSecClamp(t *testing.T) {
tests := []struct {
name string
in int
want int
}{
{name: "clamps low to minimum large step", in: 0, want: 6},
{name: "clamps five seconds to minimum large step", in: 5, want: 6},
{name: "clamps high", in: 999, want: 600},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Setenv("HOME", t.TempDir())
path := filepath.Join(os.Getenv("HOME"), ".config", "cliamp", "config.toml")
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
t.Fatalf("MkdirAll: %v", err)
}
data := []byte("seek_large_step_sec = " + strconv.Itoa(tt.in) + "\n")
if err := os.WriteFile(path, data, 0o644); err != nil {
t.Fatalf("WriteFile: %v", err)
}
cfg, err := Load()
if err != nil {
t.Fatalf("Load: %v", err)
}
if cfg.SeekStepLarge != tt.want {
t.Fatalf("SeekStepLarge = %d, want %d", cfg.SeekStepLarge, tt.want)
}
})
}
}
func TestSeekStepLargeDuration(t *testing.T) {
cfg := Config{SeekStepLarge: 45}
if got, want := cfg.SeekStepLargeDuration(), 45*time.Second; got != want {
t.Fatalf("SeekStepLargeDuration = %v, want %v", got, want)
}
}
func TestLoadLowPower(t *testing.T) {
t.Setenv("HOME", t.TempDir())
path := filepath.Join(os.Getenv("HOME"), ".config", "cliamp", "config.toml")
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
t.Fatalf("MkdirAll: %v", err)
}
data := []byte("visualizer = \"Bars\"\nlow_power = true\n")
if err := os.WriteFile(path, data, 0o644); err != nil {
t.Fatalf("WriteFile: %v", err)
}
cfg, err := Load()
if err != nil {
t.Fatalf("Load: %v", err)
}
if !cfg.LowPower {
t.Fatal("LowPower = false, want true")
}
if cfg.Visualizer != "none" {
t.Fatalf("Visualizer = %q, want none", cfg.Visualizer)
}
}