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

66 lines
1.7 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"
rendezvous "github.com/status-im/go-waku-rendezvous"
"github.com/status-im/go-waku/tests"
"github.com/status-im/go-waku/waku/v2/protocol/store"
2021-11-12 09:19:42 +00:00
"github.com/stretchr/testify/require"
)
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)
2021-11-17 16:19:42 +00:00
advertiseAddr, _ := net.ResolveTCPAddr("tcp", "0.0.0.0:0")
2021-11-12 09:19:42 +00:00
storeFactory := func(w *WakuNode) store.Store {
return store.NewWakuStore(w.host, w.swap, w.opts.messageProvider, w.opts.maxMessages, w.opts.maxDuration, w.log)
}
2021-11-12 09:19:42 +00:00
options := []WakuNodeOption{
2021-11-17 16:19:42 +00:00
WithHostAddress(hostAddr),
2022-03-22 13:12:58 +00:00
WithAdvertiseAddress(advertiseAddr, false, false, 4000),
2021-11-12 09:19:42 +00:00
WithMultiaddress([]multiaddr.Multiaddr{addr}),
WithPrivateKey(prvKey),
WithLibP2POptions(),
WithWakuRelay(),
WithRendezvous(),
WithRendezvousServer(rendezvous.NewStorage(nil)),
WithWakuFilter(true),
2021-11-17 16:19:42 +00:00
WithDiscoveryV5(123, nil, false),
2021-11-12 09:19:42 +00:00
WithWakuStore(true, true),
WithWakuStoreAndRetentionPolicy(true, time.Hour, 100),
WithMessageProvider(nil),
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)
}