diff --git a/src/DnsmasqWebUI.Tests/Models/EffectiveConfig/PendingManagedHostsChangeTests.cs b/src/DnsmasqWebUI.Tests/Models/EffectiveConfig/PendingManagedHostsChangeTests.cs index fd17978..f47c07f 100644 --- a/src/DnsmasqWebUI.Tests/Models/EffectiveConfig/PendingManagedHostsChangeTests.cs +++ b/src/DnsmasqWebUI.Tests/Models/EffectiveConfig/PendingManagedHostsChangeTests.cs @@ -35,4 +35,19 @@ public class PendingManagedHostsChangeTests var pending = new PendingManagedHostsChange(oldEntries, newEntries, "/etc/hosts"); Assert.True(pending.HasChanges); } + + [Fact] + public void HasChanges_WhenInlineCommentDiffers_ReturnsTrue() + { + var oldEntries = new List + { + new() { Id = "1", Address = "10.0.0.1", Names = new List { "a" }, InlineComment = "old" } + }; + var newEntries = new List + { + new() { Id = "1", Address = "10.0.0.1", Names = new List { "a" }, InlineComment = "new" } + }; + var pending = new PendingManagedHostsChange(oldEntries, newEntries, "/etc/hosts"); + Assert.True(pending.HasChanges); + } } diff --git a/src/DnsmasqWebUI.Tests/Serialization/Parsers/DnsmasqConfig/HostsFileLineParserTests.cs b/src/DnsmasqWebUI.Tests/Serialization/Parsers/DnsmasqConfig/HostsFileLineParserTests.cs index 358fd31..0d7bcfc 100644 --- a/src/DnsmasqWebUI.Tests/Serialization/Parsers/DnsmasqConfig/HostsFileLineParserTests.cs +++ b/src/DnsmasqWebUI.Tests/Serialization/Parsers/DnsmasqConfig/HostsFileLineParserTests.cs @@ -139,6 +139,17 @@ public class HostsFileLineParserTests Assert.Equal(address, e.Address); Assert.Single(e.Names); Assert.Equal(name, e.Names[0]); + Assert.Equal(comment, e.InlineComment); + } + + [Fact] + public void ToLine_WithInlineComment_AppendsHashAndRoundTrips() + { + var line = "192.168.0.5 router # edge gateway"; + var e = HostsFileLineParser.ParseLine(line, 1); + Assert.NotNull(e); + var back = HostsFileLineParser.ToLine(e!); + Assert.Equal(line, back); } [Fact] diff --git a/src/DnsmasqWebUI/Components/Pages/Hosts.razor b/src/DnsmasqWebUI/Components/Pages/Hosts.razor index 12096e7..f18b82c 100644 --- a/src/DnsmasqWebUI/Components/Pages/Hosts.razor +++ b/src/DnsmasqWebUI/Components/Pages/Hosts.razor @@ -7,6 +7,7 @@ @using DnsmasqWebUI.Models.Hosts @using DnsmasqWebUI.Infrastructure.Services.EffectiveConfig.Abstractions @using DnsmasqWebUI.Infrastructure.Services.Dnsmasq.Hosts.Abstractions +@using DnsmasqWebUI.Infrastructure.Serialization.Parsers.DnsmasqConfig @using DnsmasqWebUI.Components.EffectiveConfig @using DnsmasqWebUI.Infrastructure.Services.UI.Notifications.Abstractions @using Microsoft.AspNetCore.Components.Web @@ -92,6 +93,7 @@ else Address Names + Comment Effective names