diff --git a/packages/sdk/src/waku/wait_for_remote_peer.ts b/packages/sdk/src/waku/wait_for_remote_peer.ts index 570fde801c..ce956d0c44 100644 --- a/packages/sdk/src/waku/wait_for_remote_peer.ts +++ b/packages/sdk/src/waku/wait_for_remote_peer.ts @@ -32,6 +32,8 @@ export async function waitForRemotePeer( protocols?: Protocols[], timeoutMs?: number ): Promise { + // if no protocols or empty array passed - try to derive from mounted + protocols = protocols?.length ? protocols : getEnabledProtocols(waku); // if no protocols or empty array passed - try to derive from mounted protocols = protocols?.length ? protocols : getEnabledProtocols(waku); const connections = waku.libp2p.getConnections(); @@ -153,14 +155,6 @@ async function waitForMetadata( } for (const peerId of connectedPeers) { - const confirmedAllCodecs = Array.from(enabledCodes.values()).every( - (v) => v - ); - - if (confirmedAllCodecs) { - return true; - } - try { const peer = await waku.libp2p.peerStore.get(peerId); const hasSomeCodes = peer.protocols.some((c) => enabledCodes.has(c)); @@ -175,6 +169,14 @@ async function waitForMetadata( enabledCodes.set(c, true); } }); + + const confirmedAllCodecs = Array.from(enabledCodes.values()).every( + (v) => v + ); + + if (confirmedAllCodecs) { + return true; + } } } } catch (e) { diff --git a/packages/tests/src/utils/nodes.ts b/packages/tests/src/utils/nodes.ts index 87eb2d7a17..6bce4b063e 100644 --- a/packages/tests/src/utils/nodes.ts +++ b/packages/tests/src/utils/nodes.ts @@ -7,7 +7,7 @@ import { Protocols } from "@waku/interfaces"; import { createLightNode } from "@waku/sdk"; -import { derivePubsubTopicsFromNetworkConfig, isDefined } from "@waku/utils"; +import { derivePubsubTopicsFromNetworkConfig } from "@waku/utils"; import { Context } from "mocha"; import pRetry from "p-retry"; @@ -52,12 +52,7 @@ export async function runMultipleNodes( for (const node of serviceNodes.nodes) { await waku.dial(await node.getMultiaddrWithId()); - await waku.waitForPeer( - [ - !customArgs?.filter ? undefined : Protocols.Filter, - !customArgs?.lightpush ? undefined : Protocols.LightPush - ].filter(isDefined) - ); + await waku.waitForPeer([Protocols.Filter, Protocols.LightPush]); await node.ensureSubscriptions( derivePubsubTopicsFromNetworkConfig(networkConfig) ); diff --git a/packages/tests/tests/ephemeral.node.spec.ts b/packages/tests/tests/ephemeral.node.spec.ts index 49519b5690..58582a99e9 100644 --- a/packages/tests/tests/ephemeral.node.spec.ts +++ b/packages/tests/tests/ephemeral.node.spec.ts @@ -110,11 +110,7 @@ describe("Waku Message Ephemeral field", function () { await waku.start(); await waku.dial(await nwaku.getMultiaddrWithId()); - await waku.waitForPeer([ - Protocols.Filter, - Protocols.LightPush, - Protocols.Store - ]); + await waku.waitForPeer([Protocols.Filter, Protocols.LightPush]); }); it("Ephemeral messages are not stored", async function () { diff --git a/packages/tests/tests/filter/peer_management.spec.ts b/packages/tests/tests/filter/peer_management.spec.ts index 0818e46467..8eb7db45d7 100644 --- a/packages/tests/tests/filter/peer_management.spec.ts +++ b/packages/tests/tests/filter/peer_management.spec.ts @@ -38,7 +38,7 @@ describe("Waku Filter: Peer Management: E2E", function () { [serviceNodes, waku] = await runMultipleNodes( this.ctx, DefaultTestShardInfo, - undefined, + { lightpush: true, filter: true }, undefined, 5 ); @@ -222,7 +222,7 @@ describe("Waku Filter: Peer Management: E2E", function () { const [serviceNodes, waku] = await runMultipleNodes( this.ctx, DefaultTestShardInfo, - undefined, + { lightpush: true, filter: true }, undefined, 2 ); diff --git a/packages/tests/tests/filter/ping.node.spec.ts b/packages/tests/tests/filter/ping.node.spec.ts index f5ac0200fd..7008b9bda8 100644 --- a/packages/tests/tests/filter/ping.node.spec.ts +++ b/packages/tests/tests/filter/ping.node.spec.ts @@ -27,7 +27,10 @@ const runTests = (strictCheckNodes: boolean): void => { beforeEachCustom(this, async () => { try { - [serviceNodes, waku] = await runMultipleNodes(this.ctx, TestShardInfo); + [serviceNodes, waku] = await runMultipleNodes(this.ctx, TestShardInfo, { + lightpush: true, + filter: true + }); } catch (error) { console.error(error); } diff --git a/packages/tests/tests/filter/push.node.spec.ts b/packages/tests/tests/filter/push.node.spec.ts index ba0e73569f..2598db30d4 100644 --- a/packages/tests/tests/filter/push.node.spec.ts +++ b/packages/tests/tests/filter/push.node.spec.ts @@ -30,7 +30,10 @@ const runTests = (strictCheckNodes: boolean): void => { let serviceNodes: ServiceNodesFleet; beforeEachCustom(this, async () => { - [serviceNodes, waku] = await runMultipleNodes(this.ctx, TestShardInfo); + [serviceNodes, waku] = await runMultipleNodes(this.ctx, TestShardInfo, { + lightpush: true, + filter: true + }); }); afterEachCustom(this, async () => { diff --git a/packages/tests/tests/filter/unsubscribe.node.spec.ts b/packages/tests/tests/filter/unsubscribe.node.spec.ts index de644d9cc6..732cc3f6b3 100644 --- a/packages/tests/tests/filter/unsubscribe.node.spec.ts +++ b/packages/tests/tests/filter/unsubscribe.node.spec.ts @@ -30,10 +30,14 @@ const runTests = (strictCheckNodes: boolean): void => { let serviceNodes: ServiceNodesFleet; beforeEachCustom(this, async () => { - [serviceNodes, waku] = await runMultipleNodes(this.ctx, { - contentTopics: [TestContentTopic], - clusterId: ClusterId - }); + [serviceNodes, waku] = await runMultipleNodes( + this.ctx, + { + contentTopics: [TestContentTopic], + clusterId: ClusterId + }, + { filter: true, lightpush: true } + ); }); afterEachCustom(this, async () => { diff --git a/packages/tests/tests/health-manager/protocols.spec.ts b/packages/tests/tests/health-manager/protocols.spec.ts index a0db807616..09f0febe49 100644 --- a/packages/tests/tests/health-manager/protocols.spec.ts +++ b/packages/tests/tests/health-manager/protocols.spec.ts @@ -36,7 +36,7 @@ describe("Health Manager", function () { [serviceNodes, waku] = await runMultipleNodes( this.ctx, TestShardInfo, - undefined, + { lightpush: true, filter: true }, undefined, num ); @@ -62,7 +62,7 @@ describe("Health Manager", function () { [serviceNodes, waku] = await runMultipleNodes( this.ctx, TestShardInfo, - undefined, + { filter: true, lightpush: true }, undefined, num ); diff --git a/packages/tests/tests/light-push/index.node.spec.ts b/packages/tests/tests/light-push/index.node.spec.ts index 44c6dbee7c..3b332d245d 100644 --- a/packages/tests/tests/light-push/index.node.spec.ts +++ b/packages/tests/tests/light-push/index.node.spec.ts @@ -34,7 +34,7 @@ const runTests = (strictNodeCheck: boolean): void => { [serviceNodes, waku] = await runMultipleNodes( this.ctx, TestShardInfo, - undefined, + { lightpush: true, filter: true }, strictNodeCheck, numServiceNodes, true diff --git a/packages/tests/tests/light-push/peer_management.spec.ts b/packages/tests/tests/light-push/peer_management.spec.ts index 776d503cb3..389cb936b4 100644 --- a/packages/tests/tests/light-push/peer_management.spec.ts +++ b/packages/tests/tests/light-push/peer_management.spec.ts @@ -23,7 +23,7 @@ describe("Waku Light Push: Connection Management: E2E", function () { [serviceNodes, waku] = await runMultipleNodes( this.ctx, DefaultTestShardInfo, - undefined, + { lightpush: true, filter: true }, undefined, 5 );