diff --git a/pkg/routing/bootstrap_test.go b/pkg/routing/bootstrap_test.go index 207f21fb..d51975a4 100644 --- a/pkg/routing/bootstrap_test.go +++ b/pkg/routing/bootstrap_test.go @@ -7,8 +7,37 @@ import ( "testing" "github.com/stretchr/testify/require" + "golang.org/x/sync/errgroup" + "k8s.io/client-go/kubernetes/fake" ) +func TestKubernetesBootstra(t *testing.T) { + t.Parallel() + + addr := "/ip4/10.244.1.2/tcp/5001" + peerID := "12D3KooWEkFzmb2PhhgxZv4ubV3aPfnTAhAmhmfTGuwvH4MHyPTV" + id := addr + "/p2p/" + peerID + + cs := fake.NewSimpleClientset() + bs := NewKubernetesBootstrapper(cs, "spegel", "leader") + + ctx, cancel := context.WithCancel(context.Background()) + g, gCtx := errgroup.WithContext(ctx) + g.Go(func() error { + return bs.Run(gCtx, id) + }) + + peerInfo, err := bs.Get() + require.NoError(t, err) + require.Len(t, peerInfo.Addrs, 1) + require.Equal(t, addr, peerInfo.Addrs[0].String()) + require.Equal(t, peerID, peerInfo.ID.String()) + + cancel() + err = g.Wait() + require.NoError(t, err) +} + func TestHTTPBootstrap(t *testing.T) { t.Parallel() diff --git a/pkg/routing/memory.go b/pkg/routing/memory.go index e3a5b63b..b761e034 100644 --- a/pkg/routing/memory.go +++ b/pkg/routing/memory.go @@ -30,7 +30,7 @@ func (m *MemoryRouter) Resolve(ctx context.Context, key string, allowSelf bool, m.mx.RLock() peers, ok := m.resolver[key] m.mx.RUnlock() - // If not peers exist close the channel to stop any consumer. + // If no peers exist close the channel to stop any consumer. if !ok { close(peerCh) return peerCh, nil diff --git a/pkg/routing/memory_test.go b/pkg/routing/memory_test.go index e62306b3..0b459fb2 100644 --- a/pkg/routing/memory_test.go +++ b/pkg/routing/memory_test.go @@ -4,6 +4,7 @@ import ( "context" "net/netip" "testing" + "time" "github.com/stretchr/testify/require" ) @@ -31,4 +32,18 @@ func TestMemoryRouter(t *testing.T) { peers = append(peers, peer) } require.Len(t, peers, 2) + peers, ok := r.Lookup("foo") + require.True(t, ok) + require.Len(t, peers, 2) + + peerCh, err = r.Resolve(ctx, "bar", false, 1) + require.NoError(t, err) + time.Sleep(1 * time.Second) + select { + case <-peerCh: + default: + t.Error("expected peer channel to be closed") + } + _, ok = r.Lookup("bar") + require.False(t, ok) } diff --git a/pkg/routing/p2p_test.go b/pkg/routing/p2p_test.go index 7e99c9a9..63cccc50 100644 --- a/pkg/routing/p2p_test.go +++ b/pkg/routing/p2p_test.go @@ -88,3 +88,11 @@ func TestIsIp6(t *testing.T) { require.NoError(t, err) require.False(t, isIp6(m)) } + +func TestCreateCid(t *testing.T) { + t.Parallel() + + c, err := createCid("foobar") + require.NoError(t, err) + require.Equal(t, "bafkreigdvoh7cnza5cwzar65hfdgwpejotszfqx2ha6uuolaofgk54ge6i", c.String()) +}