29 lines
1.0 KiB
C#
29 lines
1.0 KiB
C#
using NATS.Server.JetStream.Storage;
|
|
|
|
namespace NATS.Server.JetStream.Tests.JetStream.Storage;
|
|
|
|
public sealed class FileStoreOptimizationGuardTests
|
|
{
|
|
[Fact]
|
|
public async Task PurgeEx_updates_last_by_subject_after_recovery()
|
|
{
|
|
var dir = Directory.CreateTempSubdirectory();
|
|
|
|
await using (var store = new FileStore(new FileStoreOptions { Directory = dir.FullName }))
|
|
{
|
|
store.StoreMsg("events.a", null, "one"u8.ToArray(), 0L);
|
|
store.StoreMsg("events.a", null, "two"u8.ToArray(), 0L);
|
|
store.StoreMsg("events.b", null, "other"u8.ToArray(), 0L);
|
|
store.PurgeEx("events.a", 0, 1);
|
|
await store.FlushAllPending();
|
|
}
|
|
|
|
await using var recovered = new FileStore(new FileStoreOptions { Directory = dir.FullName });
|
|
var last = await recovered.LoadLastBySubjectAsync("events.a", default);
|
|
|
|
last.ShouldNotBeNull();
|
|
last.Sequence.ShouldBe(2UL);
|
|
last.Payload.ToArray().ShouldBe("two"u8.ToArray());
|
|
}
|
|
}
|