package config import "testing" func TestNormalizeFleetRole(t *testing.T) { if NormalizeFleetRole("SEEDER") != FleetRoleSeeder { t.Fatal("seeder") } if NormalizeFleetRole("miner") != FleetRoleMiner { t.Fatal("miner") } if NormalizeFleetRole("") != FleetRoleAuto { t.Fatal("auto default") } } func TestEffectiveFleetRoleSeederMode(t *testing.T) { cfg := RuntimeConfig{BuiltinConfig: BuiltinConfig{SeederMode: true}} if cfg.EffectiveFleetRole("") != FleetRoleSeeder { t.Fatalf("got %q", cfg.EffectiveFleetRole("")) } } func TestEffectiveFleetRoleAutoHint(t *testing.T) { cfg := RuntimeConfig{BuiltinConfig: BuiltinConfig{FleetRole: FleetRoleAuto}} if cfg.EffectiveFleetRole(FleetRoleSeeder) != FleetRoleSeeder { t.Fatal("hint seeder") } if cfg.EffectiveFleetRole(FleetRoleMiner) != FleetRoleMiner { t.Fatal("hint miner") } if cfg.EffectiveFleetRole("") != FleetRoleMiner { t.Fatal("auto defaults miner") } } func TestFilterSeederLotlTiers(t *testing.T) { got := FilterSeederLotlTiers([]string{"smb", "dns_txt", "winrm", "do_peer"}) if len(got) != 2 || got[0] != "dns_txt" || got[1] != "do_peer" { t.Fatalf("got %v", got) } } func TestApplySeederForgeDefaults(t *testing.T) { b := BuiltinConfig{} ApplySeederForgeDefaults(&b) if !b.SeederMode || b.FleetRole != FleetRoleSeeder || !b.MiningDisabled { t.Fatalf("seeder defaults: %+v", b) } if !b.DnsTxtSpread || !b.WebRTCMeshSpread || b.WinRMSpread { t.Fatalf("spread flags: %+v", b) } }