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) } }