summaryrefslogtreecommitdiff
path: root/tests/Agent.Core.Tests/ObservabilityTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Agent.Core.Tests/ObservabilityTests.cs')
-rw-r--r--tests/Agent.Core.Tests/ObservabilityTests.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/Agent.Core.Tests/ObservabilityTests.cs b/tests/Agent.Core.Tests/ObservabilityTests.cs
new file mode 100644
index 0000000..cd86bc2
--- /dev/null
+++ b/tests/Agent.Core.Tests/ObservabilityTests.cs
@@ -0,0 +1,46 @@
+using Agent.App.Logging;
+using Agent.Core.Localization;
+using Agent.Mcp;
+
+namespace Agent.Core.Tests;
+
+public sealed class ObservabilityTests
+{
+ [Fact]
+ public void Ready_is_always_visible_even_when_log_threshold_is_fatal()
+ {
+ using var directory = new TestDirectory();
+ LocaleCatalog locale = LocaleCatalog.Load(Path.GetFullPath("config/locales"), "en");
+ using (var application = new RollingFileLog(directory.Path, 1024 * 1024, 2, "fatal"))
+ using (var observer = new McpHostLogObserver(application, locale, directory.Path, false, 1024 * 1024, 2))
+ observer.Ready(new McpReadyInfo("http", "http://127.0.0.1:8080/mcp", 42, "2026-07-28", true, true));
+
+ Assert.Contains("Agent is ready", File.ReadAllText(Path.Combine(directory.Path, "application.log")), StringComparison.Ordinal);
+ }
+
+ [Fact]
+ public void Ready_and_http_request_are_logged_without_sensitive_payloads()
+ {
+ using var directory = new TestDirectory();
+ LocaleCatalog locale = LocaleCatalog.Load(Path.GetFullPath("config/locales"), "en");
+ using (var application = new RollingFileLog(directory.Path, 1024 * 1024, 2))
+ {
+ using var observer = new McpHostLogObserver(application, locale, directory.Path, true, 1024 * 1024, 2);
+ observer.Ready(new McpReadyInfo("http", "http://127.0.0.1:8080/mcp", 42, "2026-07-28", true, true));
+ observer.HttpRequestStarted(new McpHttpRequestStartInfo("connection", "trace", "127.0.0.1", 50123, "POST", "/mcp"));
+ observer.HttpRequest(new McpHttpRequestInfo(DateTimeOffset.UtcNow, "connection", "trace", "127.0.0.1", 50123,
+ "127.0.0.1", 8080, "POST", "/mcp", 200, 12.5, "application/json", 100, "test-client",
+ "2026-07-28", "tools/list", "agent_run"));
+ }
+
+ string applicationText = File.ReadAllText(Path.Combine(directory.Path, "application.log"));
+ Assert.Contains("Agent is ready", applicationText, StringComparison.Ordinal);
+ Assert.Contains("remote=127.0.0.1:50123", applicationText, StringComparison.Ordinal);
+ string httpText = File.ReadAllText(Path.Combine(directory.Path, "http.jsonl"));
+ Assert.Contains("\"method\":\"POST\"", httpText, StringComparison.Ordinal);
+ Assert.Contains("\"remote_ip\":\"127.0.0.1\"", httpText, StringComparison.Ordinal);
+ Assert.DoesNotContain("Authorization", httpText, StringComparison.OrdinalIgnoreCase);
+ Assert.DoesNotContain("Cookie", httpText, StringComparison.OrdinalIgnoreCase);
+ Assert.DoesNotContain("prompt", httpText, StringComparison.OrdinalIgnoreCase);
+ }
+}