UNPKG

@node-lightning/wire

Version:
54 lines (41 loc) 1.56 kB
import { BitField } from "@node-lightning/core"; import * as crypto from "@node-lightning/crypto"; import { InitFeatureFlags } from "../lib/flags/InitFeatureFlags"; import { Peer } from "../lib/Peer"; import { PeerServer } from "../lib/PeerServer"; import { createFakeLogger } from "./_test-utils"; const chainHash = Buffer.alloc(32, 0xff); const serverSecret = Buffer.alloc(32, 1); const serverPubKey = crypto.getPublicKey(serverSecret, true); const clientSecret = Buffer.alloc(32, 2); const clientPubKey = crypto.getPublicKey(clientSecret, true); const localFeatures = new BitField<InitFeatureFlags>(); function createRemotePeer() { localFeatures.set(InitFeatureFlags.optionDataLossProtectRequired); localFeatures.set(InitFeatureFlags.initialRoutingSyncOptional); return new Peer(clientSecret, localFeatures, [chainHash], createFakeLogger()); } function createServer() { const ls = Buffer.alloc(32, 1); const logger = createFakeLogger(); return new PeerServer("127.0.0.1", 10000, ls, localFeatures, [chainHash], logger); } describe("PeerServer", () => { let server: PeerServer; let client: Peer; after(() => { client.disconnect(); server.shutdown(); }); it("emits a peer when connected", done => { server = createServer(); client = createRemotePeer(); server.on("peer", () => { done(); }); server.on("listening", () => { client.connect(serverPubKey, "127.0.0.1", 10000); }); server.listen(); }); });