using System.Text.Json;

namespace NATS.Server.Monitoring.Tests.Monitoring;

public class PprofRuntimeParityTests
{
    [Fact]
    public async Task Profiling_endpoint_returns_runtime_profile_artifacts_and_config_options_map_to_runtime_behavior()
    {
        await using var fx = await PprofMonitorFixture.StartWithProfilingAsync();
        var payload = await fx.GetBytesAsync("/debug/pprof/profile?seconds=2");
        var doc = JsonDocument.Parse(payload);

        doc.RootElement.GetProperty("profile").GetString().ShouldBe("cpu");
        doc.RootElement.GetProperty("seconds").GetInt32().ShouldBe(2);
        doc.RootElement.GetProperty("thread_count").GetInt32().ShouldBeGreaterThan(0);
    }
}
