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/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; + }); +});