package kvm import ( "testing" "gitea.home.hrajfrisbee.cz/kacerr/egress-proxies-operator/internal/provider" ) func TestWithDefaults(t *testing.T) { t.Parallel() cfg := withDefaults(provider.KVMConfig{ Images: map[string]provider.KVMImage{ "debian": {URL: "https://x/d.qcow2"}, "raw": {URL: "https://x/r.img", Format: "raw"}, }, Hosts: []provider.KVMHost{ {Name: "a", Address: "a:22", User: "virt", Bridge: "br0"}, {Name: "b", Address: "b:22", User: "virt", Bridge: "br1", Socket: "/run/s", Pool: "fast"}, }, }) if cfg.DiskSizeGB != defaultDiskSizeGB { t.Errorf("diskSizeGb = %d, want %d", cfg.DiskSizeGB, defaultDiskSizeGB) } if cfg.VendorData != defaultVendorData { t.Errorf("vendorData = %q, want the default", cfg.VendorData) } if cfg.Images["debian"].Format != "qcow2" || cfg.Images["raw"].Format != "raw" { t.Errorf("image formats = %q/%q, want qcow2 default and raw kept", cfg.Images["debian"].Format, cfg.Images["raw"].Format) } if a := cfg.Hosts[0]; a.Socket != defaultSocket || a.Pool != defaultPool { t.Errorf("host a = %+v, want default socket and pool", a) } if b := cfg.Hosts[1]; b.Socket != "/run/s" || b.Pool != "fast" { t.Errorf("host b = %+v, want explicit socket and pool kept", b) } } func TestWithDefaults_keepsExplicitValues(t *testing.T) { t.Parallel() cfg := withDefaults(provider.KVMConfig{DiskSizeGB: 42, VendorData: "#cloud-config\n"}) if cfg.DiskSizeGB != 42 || cfg.VendorData != "#cloud-config\n" { t.Errorf("cfg = %+v, want explicit values kept", cfg) } }