diff --git a/peer/controlmessage.go b/peer/controlmessage.go index 33d4e9c..75a94d0 100644 --- a/peer/controlmessage.go +++ b/peer/controlmessage.go @@ -10,8 +10,7 @@ import ( type controlMsg[T any] struct { SrcIP byte SrcAddr netip.AddrPort - // TODO: RecvdAt int64 // Unixmilli. - Packet T + Packet T } func parseControlMsg(srcIP byte, srcAddr netip.AddrPort, buf []byte) (any, error) { diff --git a/peer/peerstates_test.go b/peer/peerstates_test.go index 80f8210..32dc207 100644 --- a/peer/peerstates_test.go +++ b/peer/peerstates_test.go @@ -33,15 +33,6 @@ func TestPeerState_OnPeerUpdate_publicLocalIsServer(t *testing.T) { } /* -func TestPeerState_OnPeerUpdate_serverDirect(t *testing.T) { - h := NewPeerStateTestHarness() - h.ConfigServer_Public(t) -} - -func TestPeerState_OnPeerUpdate_serverRelayed(t *testing.T) { - h := NewPeerStateTestHarness() - h.ConfigServer_Relayed(t) -} func TestPeerState_OnPeerUpdate_clientDirect(t *testing.T) { h := NewPeerStateTestHarness() diff --git a/peer/state-server_test.go b/peer/state-server_test.go new file mode 100644 index 0000000..ad9f1cd --- /dev/null +++ b/peer/state-server_test.go @@ -0,0 +1,32 @@ +package peer + +import "testing" + +func TestStateServer_peerUpdate(t *testing.T) { + h := NewPeerStateTestHarness() + h.ConfigServer_Public(t) + h.PeerUpdate(nil) + assertType[*stateDisconnected](t, h.State) +} + +func TestStateServer_onInit(t *testing.T) { + h := NewPeerStateTestHarness() + h.ConfigServer_Public(t) + + msg := controlMsg[packetInit]{ + SrcIP: 3, + SrcAddr: addrPort4(1, 2, 3, 4, 1000), + Packet: packetInit{ + TraceID: newTraceID(), + Direct: true, + Version: 4, + }, + } + + h.OnInit(msg) + assertEqual(t, len(h.Sent), 1) + assertEqual(t, h.Sent[0].Peer.DirectAddr, msg.SrcAddr) + resp := assertType[packetInit](t, h.Sent[0].Packet) + assertEqual(t, msg.Packet.TraceID, resp.TraceID) + assertEqual(t, resp.Version, version) +}