- Fix errcheck for db.Close() in testhelper.go - Fix errcheck, nlreturn, wsl, gofumpt issues in genevents/main.go - Fix gofumpt and wsl issues in library.go
86 lines
1.8 KiB
Go
86 lines
1.8 KiB
Go
package theme
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestThemeConfig_Validate_ValidValues(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
name string
|
|
color string
|
|
shade BackgroundShade
|
|
}{
|
|
{"short hex dark", "#fff", BackgroundDark},
|
|
{"six-digit hex darker", "#ffd43b", BackgroundDarker},
|
|
{"black hex light", "#000000", BackgroundLight},
|
|
{"uppercase hex", "#AABBCC", BackgroundDark},
|
|
{"mixed case hex", "#aAbBcC", BackgroundDark},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := &Config{AccentColor: tt.color, BackgroundShade: tt.shade}
|
|
if err := c.Validate(); err != nil {
|
|
t.Errorf("Validate() returned unexpected error: %v", err)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestThemeConfig_Validate_InvalidHexColor(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
name string
|
|
color string
|
|
}{
|
|
{"missing hash", "fff"},
|
|
{"invalid chars", "#gg0000"},
|
|
{"wrong length 5", "#12345"},
|
|
{"word color", "red"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := &Config{AccentColor: tt.color, BackgroundShade: BackgroundDark}
|
|
|
|
err := c.Validate()
|
|
if err == nil {
|
|
t.Error("Validate() expected error for invalid hex color, got nil")
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestThemeConfig_Validate_InvalidBackgroundShade(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := &Config{AccentColor: "#ffd43b", BackgroundShade: "neon"}
|
|
|
|
err := c.Validate()
|
|
if err == nil {
|
|
t.Fatal("Validate() expected error for unknown shade, got nil")
|
|
}
|
|
}
|
|
|
|
func TestThemeConfig_ApplyDefaults(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
c := &Config{}
|
|
c.ApplyDefaults()
|
|
|
|
if c.AccentColor != DefaultAccentColor {
|
|
t.Errorf("AccentColor = %q, want %q", c.AccentColor, DefaultAccentColor)
|
|
}
|
|
|
|
if c.BackgroundShade != DefaultBackgroundShade {
|
|
t.Errorf("BackgroundShade = %q, want %q", c.BackgroundShade, DefaultBackgroundShade)
|
|
}
|
|
}
|