using AcDream.UI.Abstractions.Panels.Settings; namespace AcDream.UI.Abstractions.Tests.Panels.Settings; /// /// L.0: default-pin tests. /// public sealed class ChatSettingsTests { [Fact] public void Default_values_match_AceCharacterOptions2Default_stance() { // N4 (CH3 Opus review): ACE's real CharacterOptions2.Default // (0x00948700) turns General/Trade/LFG on but leaves Roleplay // (0x800) and Society (0x80000) off — this is no longer an // invented "all channels on" stance. var d = ChatSettings.Default; Assert.True(d.HearGeneralChat); Assert.True(d.HearTradeChat); Assert.True(d.HearLFGChat); Assert.False(d.HearRoleplayChat); Assert.False(d.HearSocietyChat); Assert.False(d.AppearOffline); Assert.True(d.ShowTimestamps); Assert.True(d.FilterProfanity); Assert.Equal(12f, d.FontSize); } [Fact] public void Equality_is_value_based() { var a = ChatSettings.Default; var b = ChatSettings.Default with { HearTradeChat = false }; var c = ChatSettings.Default with { HearTradeChat = false }; Assert.NotEqual(a, b); Assert.Equal(b, c); } [Fact] public void With_expression_clones_one_field() { var d = ChatSettings.Default with { FontSize = 16f }; Assert.Equal(16f, d.FontSize); Assert.True(d.HearGeneralChat); Assert.True(d.ShowTimestamps); } }