namespace NATS.Server.Tests;

public class JetStreamRetentionPolicyTests
{
    [Fact]
    public async Task MaxMsgs_limit_evicts_oldest_message()
    {
        await using var fixture = await JetStreamApiFixture.StartWithStreamAsync("L", "l.*", maxMsgs: 2);

        await fixture.PublishAndGetAckAsync("l.1", "a");
        await fixture.PublishAndGetAckAsync("l.2", "b");
        await fixture.PublishAndGetAckAsync("l.3", "c");

        var state = await fixture.GetStreamStateAsync("L");
        state.Messages.ShouldBe((ulong)2);
        state.FirstSeq.ShouldBe((ulong)2);
    }
}
