refactor: extract NATS.Server.Raft.Tests project

Move 43 Raft consensus test files (8 root-level + 35 in Raft/ subfolder)
from NATS.Server.Tests into a dedicated NATS.Server.Raft.Tests project.
Update namespaces, add InternalsVisibleTo, and fix timing/exception
handling issues in moved test files.
This commit is contained in:
Joseph Doherty
2026-03-12 15:36:02 -04:00
parent 615752cdc2
commit edf9ed770e
47 changed files with 94 additions and 58 deletions

View File

@@ -0,0 +1,19 @@
using NATS.Server.Raft;
namespace NATS.Server.Raft.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));
}
}