feat: persist main window state
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user