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:
19
tests/NATS.Server.Raft.Tests/RaftSafetyContractTests.cs
Normal file
19
tests/NATS.Server.Raft.Tests/RaftSafetyContractTests.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user