diff --git a/peer/state-client_test.go b/peer/state-client_test.go new file mode 100644 index 0000000..8feb4d2 --- /dev/null +++ b/peer/state-client_test.go @@ -0,0 +1,34 @@ +package peer + +import "testing" + +func TestStateClient_peerUpdate(t *testing.T) { + h := NewPeerStateTestHarness() + h.ConfigClientDirect(t) + h.PeerUpdate(nil) + assertType[*stateDisconnected](t, h.State) +} + +func TestStateClient_initialPackets(t *testing.T) { + h := NewPeerStateTestHarness() + h.ConfigClientDirect(t) + + assertEqual(t, len(h.Sent), 2) + assertType[packetInit](t, h.Sent[0].Packet) + assertType[packetSyn](t, h.Sent[1].Packet) +} + +func TestStateClient_onAck_incorrectTraceID(t *testing.T) { + h := NewPeerStateTestHarness() + h.ConfigClientDirect(t) + h.Sent = h.Sent[:0] + + ack := controlMsg[packetAck]{ + Packet: packetAck{TraceID: newTraceID()}, + } + h.OnAck(ack) + + // Nothing should have happened. + assertType[*stateClient](t, h.State) + assertEqual(t, len(h.Sent), 0) +}