package errors_test import ( "testing" "git.tukangketik.id/swanadiva/hostkeeper/internal/models" ) func TestDefaultConfig(t *testing.T) { config := models.DefaultConfig() if config.Version != "1.0.0" { t.Errorf("Version = %q, want %q", config.Version, "1.0.0") } if config.DefaultPort != 22 { t.Errorf("DefaultPort = %d, want 22", config.DefaultPort) } if config.ConnectionTimeout != 30 { t.Errorf("ConnectionTimeout = %d, want 30", config.ConnectionTimeout) } if config.Theme != "dark" { t.Errorf("Theme = %q, want %q", config.Theme, "dark") } if len(config.Profiles) != 1 { t.Errorf("Profiles has %d items, want 1", len(config.Profiles)) } if config.ActiveProfile != "default" { t.Errorf("ActiveProfile = %q, want %q", config.ActiveProfile, "default") } } func TestAppConfigProfiles(t *testing.T) { config := models.DefaultConfig() // Test GetProfile profile := config.GetProfile("default") if profile == nil { t.Fatal("GetProfile(default) returned nil") } if profile.Name != "default" { t.Errorf("Profile.Name = %q, want %q", profile.Name, "default") } // Test GetProfile for non-existent profile profile = config.GetProfile("nonexistent") if profile != nil { t.Error("GetProfile(nonexistent) should return nil") } // Test GetActiveProfile profile = config.GetActiveProfile() if profile == nil { t.Fatal("GetActiveProfile() returned nil") } if profile.Name != "default" { t.Errorf("Active profile Name = %q, want %q", profile.Name, "default") } // Test AddProfile newProfile := models.Profile{ Name: "work", Theme: "light", } config.AddProfile(newProfile) if len(config.Profiles) != 2 { t.Errorf("After AddProfile, Profiles has %d items, want 2", len(config.Profiles)) } // Test RemoveProfile config.RemoveProfile("work") if len(config.Profiles) != 1 { t.Errorf("After RemoveProfile, Profiles has %d items, want 1", len(config.Profiles)) } // Test RemoveProfile for non-existent profile config.RemoveProfile("nonexistent") if len(config.Profiles) != 1 { t.Errorf("After RemoveProfile(nonexistent), Profiles has %d items, want 1", len(config.Profiles)) } }