opencode-provider-switch/internal/desktop/tray_language_test.go
apale7 8fc72e87e4 fix(desktop): finish Windows shell polish
Stabilize the tray icon and locale handling on Windows while aligning provider and alias management panels with the refreshed desktop branding.
2026-04-20 02:36:54 +08:00

48 lines
1.2 KiB
Go

//go:build desktop_wails
package desktop
import "testing"
func TestTrayLanguageHonorsExplicitPreference(t *testing.T) {
original := systemTrayLanguage
systemTrayLanguage = func() string { return "en-US" }
t.Cleanup(func() { systemTrayLanguage = original })
t.Setenv("LC_ALL", "")
t.Setenv("LANG", "")
t.Setenv("LANGUAGE", "")
if got := trayLanguage("zh-CN"); got != "zh-CN" {
t.Fatalf("trayLanguage(zh-CN) = %q, want zh-CN", got)
}
}
func TestTrayLanguageUsesSystemLanguageBeforeEnv(t *testing.T) {
original := systemTrayLanguage
systemTrayLanguage = func() string { return "zh-CN" }
t.Cleanup(func() { systemTrayLanguage = original })
t.Setenv("LC_ALL", "en_US.UTF-8")
t.Setenv("LANG", "")
t.Setenv("LANGUAGE", "")
if got := trayLanguage("system"); got != "zh-CN" {
t.Fatalf("trayLanguage(system) = %q, want zh-CN", got)
}
}
func TestTrayLanguageFallsBackToEnv(t *testing.T) {
original := systemTrayLanguage
systemTrayLanguage = func() string { return "" }
t.Cleanup(func() { systemTrayLanguage = original })
t.Setenv("LC_ALL", "")
t.Setenv("LANG", "zh_CN.UTF-8")
t.Setenv("LANGUAGE", "")
if got := trayLanguage("system"); got != "zh-CN" {
t.Fatalf("trayLanguage(system) = %q, want zh-CN", got)
}
}