2023-04-25 15:34:57 +02:00
|
|
|
{.used.}
|
|
|
|
|
|
|
|
|
|
import
|
|
|
|
|
testutils/unittests,
|
|
|
|
|
chronicles,
|
|
|
|
|
chronos,
|
|
|
|
|
libp2p/crypto/crypto,
|
|
|
|
|
libp2p/crypto/secp,
|
|
|
|
|
libp2p/multiaddress,
|
|
|
|
|
libp2p/switch
|
2025-05-08 07:05:35 +10:00
|
|
|
import ../testlib/wakucore, ../testlib/wakunode
|
2023-10-27 10:11:47 +03:00
|
|
|
|
2025-05-08 07:05:35 +10:00
|
|
|
include waku/factory/waku, waku/common/enr/typed_record
|
2023-04-25 15:34:57 +02:00
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
suite "Wakunode2 - Waku":
|
2023-04-25 15:34:57 +02:00
|
|
|
test "compilation version should be reported":
|
|
|
|
|
## Given
|
2025-05-08 07:05:35 +10:00
|
|
|
let conf = defaultTestWakuConf()
|
2023-04-25 15:34:57 +02:00
|
|
|
|
2024-10-28 09:17:46 +01:00
|
|
|
let waku = Waku.new(conf).valueOr:
|
2024-03-16 00:08:47 +01:00
|
|
|
raiseAssert error
|
2023-04-25 15:34:57 +02:00
|
|
|
|
|
|
|
|
## When
|
2024-05-03 14:07:15 +02:00
|
|
|
let version = waku.version
|
2023-04-25 15:34:57 +02:00
|
|
|
|
|
|
|
|
## Then
|
|
|
|
|
check:
|
2023-10-27 10:11:47 +03:00
|
|
|
version == git_version
|
2023-04-25 15:34:57 +02:00
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
suite "Wakunode2 - Waku initialization":
|
2023-04-25 15:34:57 +02:00
|
|
|
test "peer persistence setup should be successfully mounted":
|
|
|
|
|
## Given
|
2025-05-08 07:05:35 +10:00
|
|
|
var conf = defaultTestWakuConf()
|
2023-04-25 15:34:57 +02:00
|
|
|
conf.peerPersistence = true
|
|
|
|
|
|
2024-10-28 09:17:46 +01:00
|
|
|
let waku = Waku.new(conf).valueOr:
|
2024-03-16 00:08:47 +01:00
|
|
|
raiseAssert error
|
2023-04-25 15:34:57 +02:00
|
|
|
|
2024-03-08 16:46:42 -06:00
|
|
|
check:
|
2024-05-03 14:07:15 +02:00
|
|
|
not waku.node.peerManager.storage.isNil()
|
2023-04-25 15:34:57 +02:00
|
|
|
|
|
|
|
|
test "node setup is successful with default configuration":
|
|
|
|
|
## Given
|
2025-05-08 07:05:35 +10:00
|
|
|
var conf = defaultTestWakuConf()
|
2023-04-25 15:34:57 +02:00
|
|
|
|
|
|
|
|
## When
|
2024-10-28 09:17:46 +01:00
|
|
|
var waku = Waku.new(conf).valueOr:
|
2024-03-08 16:46:42 -06:00
|
|
|
raiseAssert error
|
2023-11-21 15:15:39 -05:00
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
(waitFor startWaku(addr waku)).isOkOr:
|
2024-03-08 16:46:42 -06:00
|
|
|
raiseAssert error
|
2023-11-21 15:15:39 -05:00
|
|
|
|
2023-04-25 15:34:57 +02:00
|
|
|
## Then
|
2024-05-03 14:07:15 +02:00
|
|
|
let node = waku.node
|
2023-04-25 15:34:57 +02:00
|
|
|
check:
|
|
|
|
|
not node.isNil()
|
|
|
|
|
node.wakuArchive.isNil()
|
|
|
|
|
node.wakuStore.isNil()
|
|
|
|
|
not node.wakuStoreClient.isNil()
|
2024-12-09 15:22:36 -05:00
|
|
|
not node.wakuRendezvous.isNil()
|
2023-04-25 15:34:57 +02:00
|
|
|
|
|
|
|
|
## Cleanup
|
2024-05-03 14:07:15 +02:00
|
|
|
waitFor waku.stop()
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
test "app properly handles dynamic port configuration":
|
|
|
|
|
## Given
|
2025-05-08 07:05:35 +10:00
|
|
|
var conf = defaultTestWakuConf()
|
|
|
|
|
conf.networkConf.p2pTcpPort = Port(0)
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
## When
|
2024-10-28 09:17:46 +01:00
|
|
|
var waku = Waku.new(conf).valueOr:
|
2024-03-08 16:46:42 -06:00
|
|
|
raiseAssert error
|
|
|
|
|
|
2024-05-03 14:07:15 +02:00
|
|
|
(waitFor startWaku(addr waku)).isOkOr:
|
2024-03-08 16:46:42 -06:00
|
|
|
raiseAssert error
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
## Then
|
2024-03-16 00:08:47 +01:00
|
|
|
let
|
2024-05-03 14:07:15 +02:00
|
|
|
node = waku.node
|
2025-05-08 07:05:35 +10:00
|
|
|
typedNodeEnr = node.enr.toTyped()
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
assert typedNodeEnr.isOk(), $typedNodeEnr.error
|
2025-05-08 07:05:35 +10:00
|
|
|
let tcpPort = typedNodeEnr.value.tcp()
|
|
|
|
|
assert tcpPort.isSome()
|
|
|
|
|
check tcpPort.get() != 0
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
check:
|
2024-05-03 14:07:15 +02:00
|
|
|
# Waku started properly
|
2023-10-27 10:11:47 +03:00
|
|
|
not node.isNil()
|
|
|
|
|
node.wakuArchive.isNil()
|
|
|
|
|
node.wakuStore.isNil()
|
|
|
|
|
not node.wakuStoreClient.isNil()
|
2024-12-09 15:22:36 -05:00
|
|
|
not node.wakuRendezvous.isNil()
|
2023-10-27 10:11:47 +03:00
|
|
|
|
|
|
|
|
# DS structures are updated with dynamic ports
|
|
|
|
|
typedNodeEnr.get().tcp.get() != 0
|
|
|
|
|
|
|
|
|
|
## Cleanup
|
2024-05-03 14:07:15 +02:00
|
|
|
waitFor waku.stop()
|