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(async () => await node.TryAppendFromLeaderAsync(new RaftLogEntry(1, node.Term - 1, "cmd"), default)); } }