using HSchool.Server.Game; namespace HSchool.Server.Tests; public class SwarmUiSettingsStoreTests { [Fact] public void Resolve_UsesAgeRulePreset() { var config = SwarmUiConfigFile.CreateDefault(); var profile = config.Resolve(8, PortraitKind.Avatar); Assert.Equal("child", profile.PresetId); } [Fact] public void Resolve_FallsBackToActivePresetForAdults() { var config = SwarmUiConfigFile.CreateDefault(); var profile = config.Resolve(34, PortraitKind.Full); Assert.Equal("default", profile.PresetId); } [Fact] public void NormalizeAfterLoad_MigratesLegacyFlatFile() { var config = new SwarmUiConfigFile { Model = "legacy.safetensors", Steps = 12, Positive = "legacy prompt", Avatar = new SwarmUiKindPreset { Width = 640, Height = 640 }, }; config.NormalizeAfterLoad(); Assert.Single(config.Presets); Assert.Equal("default", config.Presets[0].Id); Assert.Equal("legacy.safetensors", config.Presets[0].Model); Assert.Equal(12, config.Presets[0].Steps); } [Fact] public void Clone_IsIndependentOfTheSource() { var source = SwarmUiConfigFile.CreateDefault(); source.Presets[0].Model = "mutated.safetensors"; var copy = SwarmUiConfigFile.Clone(source); copy.Presets[0].Model = "other.safetensors"; Assert.Equal("mutated.safetensors", source.Presets[0].Model); Assert.Equal("other.safetensors", copy.Presets[0].Model); Assert.Equal(source.ActivePresetId, copy.ActivePresetId); } }