go-waku/waku/v2/node/wakuoptions_test.go

61 lines
1.4 KiB
Go
Raw Normal View History

2021-11-12 09:19:42 +00:00
package node
import (
"net"
"testing"
"time"
"github.com/ethereum/go-ethereum/crypto"
"github.com/multiformats/go-multiaddr"
"github.com/stretchr/testify/require"
"github.com/waku-org/go-waku/tests"
"github.com/waku-org/go-waku/waku/persistence"
"github.com/waku-org/go-waku/waku/v2/protocol/store"
2021-11-12 09:19:42 +00:00
)
func TestWakuOptions(t *testing.T) {
connStatusChan := make(chan ConnStatus, 100)
key, err := tests.RandomHex(32)
require.NoError(t, err)
prvKey, err := crypto.HexToECDSA(key)
require.NoError(t, err)
hostAddr, _ := net.ResolveTCPAddr("tcp", "0.0.0.0:0")
addr, err := multiaddr.NewMultiaddr("/ip4/0.0.0.0/tcp/4000/ws")
require.NoError(t, err)
storeFactory := func(w *WakuNode) store.Store {
return store.NewWakuStore(w.opts.messageProvider, w.peermanager, w.timesource, w.log)
}
2021-11-12 09:19:42 +00:00
options := []WakuNodeOption{
2021-11-17 16:19:42 +00:00
WithHostAddress(hostAddr),
WithAdvertiseAddresses(addr),
WithMultiaddress(addr),
2021-11-12 09:19:42 +00:00
WithPrivateKey(prvKey),
WithLibP2POptions(),
WithWakuRelay(),
WithLegacyWakuFilter(true),
2021-11-17 16:19:42 +00:00
WithDiscoveryV5(123, nil, false),
WithWakuStore(),
WithMessageProvider(&persistence.DBStore{}),
2021-11-12 09:19:42 +00:00
WithLightPush(),
WithKeepAlive(time.Hour),
WithConnectionStatusChannel(connStatusChan),
WithWakuStoreFactory(storeFactory),
2021-11-12 09:19:42 +00:00
}
params := new(WakuNodeParameters)
for _, opt := range options {
require.NoError(t, opt(params))
}
require.NotNil(t, params.multiAddr)
require.NotNil(t, params.privKey)
require.NotNil(t, params.connStatusC)
}