//go:build p2p package client import ( "testing" "crypto-miner-agent/config" ) func TestMeshNodeStartStop(t *testing.T) { c := NewAgentClient(config.RuntimeConfig{}) m := NewMeshNode(c) if err := m.Start(); err != nil { t.Fatal(err) } if m.PeerCount() < 0 { t.Fatal("peer count must be non-negative") } m.Stop() if m.PeerCount() != 0 { t.Fatalf("peer count after stop = %d, want 0", m.PeerCount()) } m.Stop() // idempotent } func TestMeshNodeStartIdempotent(t *testing.T) { c := NewAgentClient(config.RuntimeConfig{}) m := NewMeshNode(c) if err := m.Start(); err != nil { t.Fatal(err) } if err := m.Start(); err != nil { t.Fatalf("second Start: %v", err) } m.Stop() } func TestMeshRelayToHubUsesWritePath(t *testing.T) { c := NewAgentClient(config.RuntimeConfig{}) m := NewMeshNode(c) err := m.relayToHub(Message{Type: "stats"}) if err == nil { t.Fatal("expected not-connected error without hub session") } if err.Error() != "not connected" { t.Fatalf("write path error: %v", err) } }