diff --git a/tests/v2/test_wakunode.nim b/tests/v2/test_wakunode.nim index b3acd563e..222451437 100644 --- a/tests/v2/test_wakunode.nim +++ b/tests/v2/test_wakunode.nim @@ -616,67 +616,67 @@ procSuite "WakuNode": await allFutures([node1.stop(), node2.stop()]) - # asyncTest "Lightpush message return success": - # let - # nodeKey1 = crypto.PrivateKey.random(Secp256k1, rng[])[] - # node1 = WakuNode.init(nodeKey1, ValidIpAddress.init("0.0.0.0"), - # Port(60000)) - # nodeKey2 = crypto.PrivateKey.random(Secp256k1, rng[])[] - # node2 = WakuNode.init(nodeKey2, ValidIpAddress.init("0.0.0.0"), - # Port(60002)) - # nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[] - # node3 = WakuNode.init(nodeKey3, ValidIpAddress.init("0.0.0.0"), - # Port(60003)) - # pubSubTopic = "test" - # contentTopic = ContentTopic("/waku/2/default-content/proto") - # payload = "hello world".toBytes() - # message = WakuMessage(payload: payload, contentTopic: contentTopic) + asyncTest "Lightpush message return success": + let + nodeKey1 = crypto.PrivateKey.random(Secp256k1, rng[])[] + node1 = WakuNode.init(nodeKey1, ValidIpAddress.init("0.0.0.0"), + Port(60010)) + nodeKey2 = crypto.PrivateKey.random(Secp256k1, rng[])[] + node2 = WakuNode.init(nodeKey2, ValidIpAddress.init("0.0.0.0"), + Port(60012)) + nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[] + node3 = WakuNode.init(nodeKey3, ValidIpAddress.init("0.0.0.0"), + Port(60013)) + pubSubTopic = "test" + contentTopic = ContentTopic("/waku/2/default-content/proto") + payload = "hello world".toBytes() + message = WakuMessage(payload: payload, contentTopic: contentTopic) - # # Light node, only lightpush - # await node1.start() - # node1.mountLightPush() + # Light node, only lightpush + await node1.start() + node1.mountRelay(relayMessages=false) # Mount WakuRelay, but do not start or subscribe to any topics + node1.mountLightPush() - # # Intermediate node - # await node2.start() - # node2.mountRelay(@[pubSubTopic]) - # node2.mountLightPush() + # Intermediate node + await node2.start() + node2.mountRelay(@[pubSubTopic]) + node2.mountLightPush() - # # Receiving node - # await node3.start() - # node3.mountRelay(@[pubSubTopic]) + # Receiving node + await node3.start() + node3.mountRelay(@[pubSubTopic]) - # discard await node1.peerManager.dialPeer(node2.peerInfo, WakuLightPushCodec) - # await sleepAsync(5.seconds) - # await node3.connectToNodes(@[node2.peerInfo]) + discard await node1.peerManager.dialPeer(node2.peerInfo, WakuLightPushCodec) + await sleepAsync(5.seconds) + await node3.connectToNodes(@[node2.peerInfo]) - # var completionFutLightPush = newFuture[bool]() - # var completionFutRelay = newFuture[bool]() - # proc relayHandler(topic: string, data: seq[byte]) {.async, gcsafe.} = - # let msg = WakuMessage.init(data) - # if msg.isOk(): - # let val = msg.value() - # check: - # topic == pubSubTopic - # val.contentTopic == contentTopic - # val.payload == payload - # completionFutRelay.complete(true) + var completionFutLightPush = newFuture[bool]() + var completionFutRelay = newFuture[bool]() + proc relayHandler(topic: string, data: seq[byte]) {.async, gcsafe.} = + let msg = WakuMessage.init(data) + if msg.isOk(): + let val = msg.value() + check: + topic == pubSubTopic + val.contentTopic == contentTopic + val.payload == payload + completionFutRelay.complete(true) - # node3.subscribe(pubSubTopic, relayHandler) - # await sleepAsync(2000.millis) + node3.subscribe(pubSubTopic, relayHandler) + await sleepAsync(2000.millis) - # proc handler(response: PushResponse) {.gcsafe, closure.} = - # debug "push response handler, expecting true" - # check: - # response.isSuccess == true - # completionFutLightPush.complete(true) + proc handler(response: PushResponse) {.gcsafe, closure.} = + debug "push response handler, expecting true" + check: + response.isSuccess == true + completionFutLightPush.complete(true) - # # Publishing with lightpush - # await node1.lightpush(pubSubTopic, message, handler) - # await sleepAsync(2000.millis) + # Publishing with lightpush + await node1.lightpush(pubSubTopic, message, handler) + await sleepAsync(2000.millis) - # check: - # (await completionFutRelay.withTimeout(5.seconds)) == true - # (await completionFutLightPush.withTimeout(5.seconds)) == true - # await node1.stop() - # await node2.stop() - # await node3.stop() \ No newline at end of file + check: + (await completionFutRelay.withTimeout(5.seconds)) == true + (await completionFutLightPush.withTimeout(5.seconds)) == true + + await allFutures([node1.stop(), node2.stop(), node3.stop()])