using PnvPanel.Domain.Audit; using Xunit; namespace PnvPanel.Domain.Tests.Audit; public class AuditLogTests { [Fact] public void Create_SetsAllFieldsAndCreatedAt() { var actorId = Guid.NewGuid(); var log = AuditLog.Create( actorId, "user.blocked", "AppUser", actorId.ToString(), "{\"reason\":\"abuse\"}", AuditSource.Web ); Assert.Equal(actorId, log.ActorId); Assert.Equal("user.blocked", log.Action); Assert.Equal("AppUser", log.TargetType); Assert.Equal(actorId.ToString(), log.TargetId); Assert.Equal("{\"reason\":\"abuse\"}", log.Metadata); Assert.Equal(AuditSource.Web, log.Source); Assert.True(log.CreatedAt <= DateTimeOffset.UtcNow); } [Fact] public void Create_AllowsNullActorForSystemActions() { var log = AuditLog.Create( null, "node.healthcheck", "Node", Guid.NewGuid().ToString(), null, AuditSource.System ); Assert.Null(log.ActorId); Assert.Equal(AuditSource.System, log.Source); } }