mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2024-12-22 16:07:31 +00:00
e41b838d8f
Fixes #1077
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package core
|
|
|
|
import (
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/yggdrasil-network/yggdrasil-go/src/config"
|
|
)
|
|
|
|
// Tests that duplicate peers in the configuration file
|
|
// won't cause an error when the node starts. Otherwise
|
|
// we can panic unnecessarily.
|
|
func TestDuplicatePeerAtStartup(t *testing.T) {
|
|
cfg := config.GenerateConfig()
|
|
for i := 0; i < 5; i++ {
|
|
cfg.Peers = append(cfg.Peers, "tcp://1.2.3.4:4321")
|
|
}
|
|
if _, err := New(cfg.Certificate, nil); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
// Tests that duplicate peers given to us through the
|
|
// API will still error as expected, even if they didn't
|
|
// at startup. We expect to notify the user through the
|
|
// admin socket if they try to add a peer that is already
|
|
// configured.
|
|
func TestDuplicatePeerFromAPI(t *testing.T) {
|
|
cfg := config.GenerateConfig()
|
|
c, err := New(cfg.Certificate, nil)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
u, _ := url.Parse("tcp://1.2.3.4:4321")
|
|
if err := c.AddPeer(u, ""); err != nil {
|
|
t.Fatalf("Adding peer failed on first attempt: %s", err)
|
|
}
|
|
if err := c.AddPeer(u, ""); err == nil {
|
|
t.Fatalf("Adding peer should have failed on second attempt")
|
|
}
|
|
}
|