package config import ( "testing" ) func TestConfig_Validate(t *testing.T) { tests := []struct { name string cfg Config wantErr bool }{ { name: "valid defaults", cfg: GetDefaultConfig(), }, { name: "negative concurrency", cfg: Config{ MaxConcurrentRequests: -1, }, wantErr: true, }, { name: "invalid memory gc algorithm", cfg: Config{ Cache: CacheConfig{ Memory: MemoryConfig{ Size: "1GB", GCAlgorithm: "invalid", }, }, }, wantErr: true, }, { name: "disk enabled without path", cfg: Config{ Cache: CacheConfig{ Disk: DiskConfig{ Size: "100GB", GCAlgorithm: "lru", }, }, }, wantErr: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := tt.cfg.Validate() if (err != nil) != tt.wantErr { t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr) } }) } } func TestGetDefaultConfig(t *testing.T) { def := GetDefaultConfig() if def.ListenAddress != ":80" { t.Error("expected default listen address :80") } if def.Cache.Memory.Size != "1GB" { t.Error("expected default memory 1GB") } }