package backend import ( "ant-chrome/backend/internal/config" "testing" ) func TestBrowserStartTimingSettingsUsesDefaultsWhenUnset(t *testing.T) { cfg := config.DefaultConfig() cfg.Browser.StartReadyTimeoutMs = 0 cfg.Browser.StartStableWindowMs = -1 readyMs := browserStartReadyTimeoutMillis(cfg) stableMs := browserStartStableWindowMillis(cfg) if readyMs != 3000 { t.Fatalf("expected default ready timeout 3000ms, got %d", readyMs) } if stableMs != 1200 { t.Fatalf("expected default stable window 1200ms, got %d", stableMs) } } func TestSaveBrowserSettingsPreservesExistingStartTimingWhenOmitted(t *testing.T) { app := NewApp(t.TempDir()) app.config = config.DefaultConfig() app.config.Browser.StartReadyTimeoutMs = 15000 app.config.Browser.StartStableWindowMs = 2400 if err := app.SaveBrowserSettings(BrowserSettings{ UserDataRoot: app.config.Browser.UserDataRoot, DefaultFingerprintArgs: append([]string{}, app.config.Browser.DefaultFingerprintArgs...), DefaultLaunchArgs: append([]string{}, app.config.Browser.DefaultLaunchArgs...), }); err != nil { t.Fatalf("SaveBrowserSettings returned error: %v", err) } if app.config.Browser.StartReadyTimeoutMs != 15000 { t.Fatalf("expected ready timeout to be preserved, got %d", app.config.Browser.StartReadyTimeoutMs) } if app.config.Browser.StartStableWindowMs != 2400 { t.Fatalf("expected stable window to be preserved, got %d", app.config.Browser.StartStableWindowMs) } if len(app.config.Browser.DefaultStartURLs) != len(config.DefaultBrowserStartURLs()) { t.Fatalf("expected default start urls to be preserved, got %v", app.config.Browser.DefaultStartURLs) } } func TestSaveBrowserSettingsAppliesExplicitStartTiming(t *testing.T) { app := NewApp(t.TempDir()) app.config = config.DefaultConfig() if err := app.SaveBrowserSettings(BrowserSettings{ UserDataRoot: app.config.Browser.UserDataRoot, DefaultFingerprintArgs: append([]string{}, app.config.Browser.DefaultFingerprintArgs...), DefaultLaunchArgs: append([]string{}, app.config.Browser.DefaultLaunchArgs...), DefaultStartURLs: []string{}, RestoreLastSession: true, StartReadyTimeoutMs: 18000, StartStableWindowMs: 3000, }); err != nil { t.Fatalf("SaveBrowserSettings returned error: %v", err) } if app.config.Browser.StartReadyTimeoutMs != 18000 { t.Fatalf("expected ready timeout 18000ms, got %d", app.config.Browser.StartReadyTimeoutMs) } if app.config.Browser.StartStableWindowMs != 3000 { t.Fatalf("expected stable window 3000ms, got %d", app.config.Browser.StartStableWindowMs) } if len(app.config.Browser.DefaultStartURLs) != 0 { t.Fatalf("expected default start urls to be cleared, got %v", app.config.Browser.DefaultStartURLs) } if !app.config.Browser.RestoreLastSession { t.Fatal("expected restore last session to be enabled") } }