Files
cmbone/internal/services/window_state_test.go
T

102 lines
3.2 KiB
Go
Raw Normal View History

2026-07-09 00:34:47 +08:00
package services
import (
"testing"
"github.com/wailsapp/wails/v3/pkg/application"
)
func TestLoadMainWindowStateOptionsDefaults(t *testing.T) {
store := newTestStore(t)
service := &AppService{Config: NewAppConfigService(store)}
options := service.loadMainWindowStateOptions()
if options.Width != mainWindowWidth {
t.Fatalf("width = %d, want %d", options.Width, mainWindowWidth)
}
if options.Height != mainWindowHeight {
t.Fatalf("height = %d, want %d", options.Height, mainWindowHeight)
}
if options.StartState != application.WindowStateNormal {
t.Fatalf("start state = %v, want normal", options.StartState)
}
if !options.Remember {
t.Fatal("remember = false, want true")
}
}
func TestLoadMainWindowStateOptionsUsesSavedValues(t *testing.T) {
store := newTestStore(t)
config := NewAppConfigService(store)
service := &AppService{Config: config}
if err := config.SetAppConfig(settingKeyWindowWidth, "1440"); err != nil {
t.Fatalf("set width: %v", err)
}
if err := config.SetAppConfig(settingKeyWindowHeight, "900"); err != nil {
t.Fatalf("set height: %v", err)
}
if err := config.SetAppConfig(settingKeyWindowStartState, windowStartStateMaximized); err != nil {
t.Fatalf("set start state: %v", err)
}
options := service.loadMainWindowStateOptions()
if options.Width != 1440 {
t.Fatalf("width = %d, want 1440", options.Width)
}
if options.Height != 900 {
t.Fatalf("height = %d, want 900", options.Height)
}
if options.StartState != application.WindowStateMaximised {
t.Fatalf("start state = %v, want maximised", options.StartState)
}
}
func TestLoadMainWindowStateOptionsIgnoresSavedValuesWhenDisabled(t *testing.T) {
store := newTestStore(t)
config := NewAppConfigService(store)
service := &AppService{Config: config}
if err := config.SetAppConfig(settingKeyWindowRememberState, "false"); err != nil {
t.Fatalf("set remember state: %v", err)
}
if err := config.SetAppConfig(settingKeyWindowWidth, "1440"); err != nil {
t.Fatalf("set width: %v", err)
}
if err := config.SetAppConfig(settingKeyWindowStartState, windowStartStateMaximized); err != nil {
t.Fatalf("set start state: %v", err)
}
options := service.loadMainWindowStateOptions()
if options.Width != mainWindowWidth {
t.Fatalf("width = %d, want %d", options.Width, mainWindowWidth)
}
if options.StartState != application.WindowStateNormal {
t.Fatalf("start state = %v, want normal", options.StartState)
}
if options.Remember {
t.Fatal("remember = true, want false")
}
}
func TestLoadMainWindowStateOptionsClampsSmallSavedSize(t *testing.T) {
store := newTestStore(t)
config := NewAppConfigService(store)
service := &AppService{Config: config}
if _, err := store.DB.Exec("UPDATE appconfig SET value = '900' WHERE key = ?", settingKeyWindowWidth); err != nil {
t.Fatalf("set raw width: %v", err)
}
if _, err := store.DB.Exec("UPDATE appconfig SET value = '600' WHERE key = ?", settingKeyWindowHeight); err != nil {
t.Fatalf("set raw height: %v", err)
}
options := service.loadMainWindowStateOptions()
if options.Width != mainWindowMinWidth {
t.Fatalf("width = %d, want %d", options.Width, mainWindowMinWidth)
}
if options.Height != mainWindowMinHeight {
t.Fatalf("height = %d, want %d", options.Height, mainWindowMinHeight)
}
}