Files
natsdotnet/tests/NATS.Server.Tests/RaftSafetyContractTests.cs

20 lines
549 B
C#

using NATS.Server.Raft;
namespace NATS.Server.Tests;
public class RaftSafetyContractTests
{
[Fact]
public async Task Follower_rejects_stale_term_vote_and_append()
{
var node = new RaftNode("n1");
node.StartElection(clusterSize: 1);
var staleVote = node.GrantVote(term: node.Term - 1);
staleVote.Granted.ShouldBeFalse();
await Should.ThrowAsync<InvalidOperationException>(async () =>
await node.TryAppendFromLeaderAsync(new RaftLogEntry(1, node.Term - 1, "cmd"), default));
}
}