diff --git a/packages/tests/package.json b/packages/tests/package.json index e33aa82dc0..df054060b2 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -70,7 +70,6 @@ "@types/dockerode": "^3.3.17", "@types/mocha": "^10.0.1", "@types/tail": "^2.2.1", - "@waku/sdk": "*", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.62.0", "@waku/dns-discovery": "*", diff --git a/packages/tests/tests/peer_exchange.node.spec.ts b/packages/tests/tests/peer_exchange.node.spec.ts index 29c9a5ec89..19a06709c1 100644 --- a/packages/tests/tests/peer_exchange.node.spec.ts +++ b/packages/tests/tests/peer_exchange.node.spec.ts @@ -4,7 +4,6 @@ import { PeerExchangeCodec, PeerExchangeDiscovery, WakuPeerExchange, - wakuPeerExchangeDiscovery, } from "@waku/peer-exchange"; import { createLightNode, Libp2pComponents } from "@waku/sdk"; import { expect } from "chai"; @@ -114,21 +113,13 @@ describe("Peer Exchange", () => { discv5BootstrapNode: enr, }); - waku = await createLightNode({ - libp2p: { - peerDiscovery: [wakuPeerExchangeDiscovery()], - }, - }); - const peerExchange = waku.libp2p.components["components"][ - "peer-discovery-0" - ] as PeerExchangeDiscovery; - + waku = await createLightNode(); await waku.start(); - const nwaku2Ma = await nwaku2.getMultiaddrWithId(); + const nwaku2Ma = await nwaku2.getMultiaddrWithId(); await waku.libp2p.dialProtocol(nwaku2Ma, PeerExchangeCodec); - return peerExchange; + return new PeerExchangeDiscovery(waku.libp2p.components); }, teardown: async () => { await nwaku1?.stop(); diff --git a/packages/tests/tests/waku.node.optional.spec.ts b/packages/tests/tests/waku.node.optional.spec.ts new file mode 100644 index 0000000000..fdd6bd9993 --- /dev/null +++ b/packages/tests/tests/waku.node.optional.spec.ts @@ -0,0 +1,55 @@ +import { bootstrap } from "@libp2p/bootstrap"; +import { enrTree, wakuDnsDiscovery } from "@waku/dns-discovery"; +import { LightNode } from "@waku/interfaces"; +import { createLightNode } from "@waku/sdk"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode } from "../src/index.js"; + +describe("Use static and several ENR trees for bootstrap", function () { + let waku: LightNode; + let nwaku: NimGoNode; + + afterEach(async function () { + !!nwaku && (await nwaku.stop()); + !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); + }); + + it("", async function () { + this.timeout(10_000); + + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.start(); + const multiAddrWithId = await nwaku.getMultiaddrWithId(); + + const NODE_REQUIREMENTS = { + store: 3, + lightPush: 3, + filter: 3, + }; + + waku = await createLightNode({ + libp2p: { + peerDiscovery: [ + bootstrap({ list: [multiAddrWithId.toString()] }), + wakuDnsDiscovery( + [enrTree["PROD"], enrTree["TEST"]], + NODE_REQUIREMENTS + ), + ], + }, + }); + await waku.start(); + + const peersDiscovered = await waku.libp2p.peerStore.all(); + + // 3 from DNS Disc, 1 from bootstrap + expect(peersDiscovered.length).to.eq(3 + 1); + // should also have the bootstrap peer + expect( + peersDiscovered.find( + (p) => p.id.toString() === multiAddrWithId.getPeerId()?.toString() + ) + ).to.not.be.undefined; + }); +});