32 lines
966 B
C#
32 lines
966 B
C#
using System.Text.Json;
|
|
using McpSsh.Server.Audit;
|
|
|
|
namespace McpSsh.Tests;
|
|
|
|
public sealed class JsonLineAuditLoggerTests
|
|
{
|
|
[Fact]
|
|
public void Log_WritesJsonLineAndRedactsSensitiveMarkers()
|
|
{
|
|
using var writer = new StringWriter();
|
|
var logger = new JsonLineAuditLogger(writer);
|
|
|
|
logger.Log(new AuditEvent(
|
|
DateTimeOffset.Parse("2026-05-24T12:00:00Z"),
|
|
"ssh_exec",
|
|
"prod-api",
|
|
"deploy",
|
|
"echo token=abc123",
|
|
Success: true,
|
|
DurationMs: 42));
|
|
|
|
using var document = JsonDocument.Parse(writer.ToString());
|
|
var root = document.RootElement;
|
|
|
|
Assert.Equal("ssh_exec", root.GetProperty("tool").GetString());
|
|
Assert.Equal("prod-api", root.GetProperty("host").GetString());
|
|
Assert.Equal("echo token=***", root.GetProperty("command").GetString());
|
|
Assert.True(root.GetProperty("success").GetBoolean());
|
|
}
|
|
}
|