elsa-core/test/integration/Elsa.Diagnostics.StructuredLogs.Persistence.Sqlite.IntegrationTests/SqliteStructuredLogRetentionTests.cs

38 lines
1.4 KiB
C#
Raw Normal View History

namespace Elsa.Diagnostics.StructuredLogs.Persistence.Sqlite.IntegrationTests;
public class SqliteStructuredLogRetentionTests
{
[Fact]
public async Task CleanupAsync_DoesNotDeleteRows_WhenRetentionIsNotConfigured()
{
await using var host = new SqliteStructuredLogTestHost();
await host.WriteAsync(
StructuredLogTestEvents.Create("old", DateTimeOffset.UtcNow.AddDays(-30)),
StructuredLogTestEvents.Create("new", DateTimeOffset.UtcNow));
await host.Retention.CleanupAsync();
Assert.Equal(2, await host.CountRowsAsync("StructuredLogEvents"));
}
[Fact]
public async Task CleanupAsync_AppliesMaxAgeAndMaxRows_WhenConfigured()
{
await using var host = new SqliteStructuredLogTestHost(options =>
{
options.Relational.Retention.MaxAge = TimeSpan.FromDays(7);
options.Relational.Retention.MaxRows = 1;
});
await host.WriteAsync(
StructuredLogTestEvents.Create("old", DateTimeOffset.UtcNow.AddDays(-30)),
StructuredLogTestEvents.Create("middle", DateTimeOffset.UtcNow.AddMinutes(-10)),
StructuredLogTestEvents.Create("new", DateTimeOffset.UtcNow));
await host.Retention.CleanupAsync();
var result = await host.Store.QueryAsync(new() { Take = 10 });
var item = Assert.Single(result.Items);
Assert.Equal("new", item.Id);
}
}