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.
23 lines
696 B
C#
23 lines
696 B
C#
using NATS.Server.Raft;
|
|
|
|
namespace NATS.Server.Raft.Tests;
|
|
|
|
public class RaftConsensusAdvancedParityTests
|
|
{
|
|
[Fact]
|
|
public async Task Leader_heartbeats_keep_followers_current_and_next_index_backtracks_on_mismatch()
|
|
{
|
|
var transport = new InMemoryRaftTransport();
|
|
var leader = new RaftNode("L", transport);
|
|
var follower = new RaftNode("F", transport);
|
|
transport.Register(leader);
|
|
transport.Register(follower);
|
|
|
|
await transport.AppendHeartbeatAsync("L", ["F"], term: 2, default);
|
|
follower.Term.ShouldBe(2);
|
|
|
|
RaftReplicator.BacktrackNextIndex(5).ShouldBe(4);
|
|
RaftReplicator.BacktrackNextIndex(1).ShouldBe(1);
|
|
}
|
|
}
|