From ebae7177fbf45c8e8504f5a57b570308a74b4b34 Mon Sep 17 00:00:00 2001 From: Sergei Tikhomirov Date: Tue, 11 Mar 2025 13:43:15 +0100 Subject: [PATCH] fix incorrect merge in test file --- tests/waku_lightpush/test_client.nim | 63 +++++----------------------- waku/waku_lightpush/client.nim | 2 + 2 files changed, 13 insertions(+), 52 deletions(-) diff --git a/tests/waku_lightpush/test_client.nim b/tests/waku_lightpush/test_client.nim index 1934e7288..c922f5d32 100644 --- a/tests/waku_lightpush/test_client.nim +++ b/tests/waku_lightpush/test_client.nim @@ -14,9 +14,6 @@ import waku_lightpush, waku_lightpush/client, waku_lightpush/protocol_metrics, - waku_lightpush/rpc, - waku_lightpush/rpc_codec, - /incentivization/reputation_manager, ], ../testlib/[assertions, wakucore, testasync, futures, testutils], ./lightpush_utils, @@ -25,29 +22,19 @@ import suite "Waku Lightpush Client": var handlerFuture {.threadvar.}: Future[(PubsubTopic, WakuMessage)] - handlerFutureFailsLightpush {.threadvar.}: Future[void] - handler {.threadvar.}: PushMessageHandler - handlerFailsLightpush {.threadvar.}: PushMessageHandler serverSwitch {.threadvar.}: Switch - serverSwitchFailsLightpush {.threadvar.}: Switch clientSwitch {.threadvar.}: Switch - server {.threadvar.}: WakuLightPush - serverFailsLightpush {.threadvar.}: WakuLightPush client {.threadvar.}: WakuLightPushClient serverRemotePeerInfo {.threadvar.}: RemotePeerInfo - serverRemotePeerInfoFailsLightpush {.threadvar.}: RemotePeerInfo - clientPeerId {.threadvar.}: PeerId pubsubTopic {.threadvar.}: PubsubTopic contentTopic {.threadvar.}: ContentTopic message {.threadvar.}: WakuMessage - const handlerError = "handler-error" - asyncSetup: handlerFuture = newPushHandlerFuture() handler = proc( @@ -58,41 +45,24 @@ suite "Waku Lightpush Client": return lighpushErrorResult(PAYLOAD_TOO_LARGE, "length greater than maxMessageSize") handlerFuture.complete((pubsubTopic, message)) - return ok() - - # A Lightpush server that fails - handlerFutureFailsLightpush = newFuture[void]() - handlerFailsLightpush = proc( - peer: PeerId, pubsubTopic: PubsubTopic, message: WakuMessage - ): Future[WakuLightPushResult[void]] {.async.} = - handlerFutureFailsLightpush.complete() - return err(handlerError) + # return that we published the message to 1 peer. + return ok(1) serverSwitch = newTestSwitch() - serverSwitchFailsLightpush = newTestSwitch() clientSwitch = newTestSwitch() - server = await newTestWakuLightpushNode(serverSwitch, handler) - serverFailsLightpush = - await newTestWakuLightpushNode(serverSwitchFailsLightpush, handlerFailsLightpush) - client = newTestWakuLightpushClient(clientSwitch, reputationEnabled = true) + client = newTestWakuLightpushClient(clientSwitch) - await allFutures( - serverSwitch.start(), serverSwitchFailsLightpush.start(), clientSwitch.start() - ) + await allFutures(serverSwitch.start(), clientSwitch.start()) serverRemotePeerInfo = serverSwitch.peerInfo.toRemotePeerInfo() - serverRemotePeerInfoFailsLightpush = - serverSwitchFailsLightpush.peerInfo.toRemotePeerInfo() clientPeerId = clientSwitch.peerInfo.peerId pubsubTopic = DefaultPubsubTopic contentTopic = DefaultContentTopic message = fakeWakuMessage() asyncTeardown: - await allFutures( - clientSwitch.stop(), serverSwitch.stop(), serverSwitchFailsLightpush.stop() - ) + await allFutures(clientSwitch.stop(), serverSwitch.stop()) suite "Verification of PushRequest Payload": asyncTest "Valid Payload Types": @@ -332,7 +302,6 @@ suite "Waku Lightpush Client": # When publishing a payload let publishResponse = await client.publish(some(pubsubTopic), message, serverRemotePeerInfo2) - await client.publish(pubsubTopic, message, serverRemotePeerInfoFailsLightpush) # Then the response is negative check: @@ -342,8 +311,6 @@ suite "Waku Lightpush Client": # Cleanup await serverSwitch2.stop() - publishResponse.error() == handlerError - (await handlerFutureFailsLightpush.waitForResult()).isOk() suite "Verification of PushResponse Payload": asyncTest "Positive Responses": @@ -354,33 +321,24 @@ suite "Waku Lightpush Client": # Then the response is positive assertResultOk publishResponse - if client.reputationManager.isSome: - check client.reputationManager.get().getReputation(serverRemotePeerInfo.peerId) == - some(true) - # TODO: Improve: Add more negative responses variations asyncTest "Negative Responses": # Given a server that does not support Waku Lightpush let - serverSwitchFailsLightpush = newTestSwitch() - serverRemotePeerInfoFailsLightpush = - serverSwitchFailsLightpush.peerInfo.toRemotePeerInfo() + serverSwitch2 = newTestSwitch() + serverRemotePeerInfo2 = serverSwitch2.peerInfo.toRemotePeerInfo() - await serverSwitchFailsLightpush.start() + await serverSwitch2.start() # When sending an invalid PushRequest let publishResponse = await client.publish(some(pubsubTopic), message, serverRemotePeerInfo2) - await client.publish(pubsubTopic, message, serverRemotePeerInfoFailsLightpush) # Then the response is negative check not publishResponse.isOk() + check publishResponse.error.code == LightpushStatusCode.NO_PEERS_TO_RELAY - if client.reputationManager.isSome: - check client.reputationManager.get().getReputation( - serverRemotePeerInfoFailsLightpush.peerId - ) == some(false) - + #[ asyncTest "Positive Publish To Any": # add a peer that supports the Lightpush protocol to the client's PeerManager client.peerManager.addPeer(serverRemotePeerInfo) # supports Lightpush @@ -434,3 +392,4 @@ suite "Waku Lightpush Client": # the reputation of a successful peer is positive check client.reputationManager.get().getReputation(serverRemotePeerInfo.peerId) == some(true) + ]# diff --git a/waku/waku_lightpush/client.nim b/waku/waku_lightpush/client.nim index 23a8f0db9..d1871d730 100644 --- a/waku/waku_lightpush/client.nim +++ b/waku/waku_lightpush/client.nim @@ -98,10 +98,12 @@ proc publish*( let publishedCount = ?await wl.sendPushRequest(pushRequest, peer) # FIXME: adapt for Lightpush v3 error reporting + #[ if pushResult.isErr: if wl.reputationManager.isSome: wl.reputationManager.get().setReputation(peer.peerId, some(false)) return err(pushResult.error) + ]# for obs in wl.publishObservers: obs.onMessagePublished(pubSubTopic.get(""), message)