UNPKG

@zkp2p/reclaim-witness-sdk

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

169 lines 7.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logger_1 = require("../utils/logger"); jest.mock('../utils/ws', () => { return { makeWebSocket() { mockWs = new MockWS(); return mockWs; } }; }); const utils_1 = require("../tests/utils"); const bgp_listener_1 = require("../utils/bgp-listener"); describe('BGP Listener', () => { let listener; beforeEach(async () => { listener = (0, bgp_listener_1.createBgpListener)(logger_1.logger); await (0, utils_1.delay)(10); mockWs.onopen(); }); afterEach(() => { listener.close(); expect(mockWs.close).toHaveBeenCalled(); }); it('should listen for BGP announcements', async () => { expect(mockWs.send).toHaveBeenCalled(); }); it('should callback on BGP announcement overlap', async () => { const MOCK_CALLBACK = jest.fn(); const cancel = listener.onOverlap(['43.240.13.21'], MOCK_CALLBACK); mockWs.onmessage(MOCK_MSG_EVENT); expect(MOCK_CALLBACK).toHaveBeenCalled(); cancel(); mockWs.onmessage(MOCK_MSG_EVENT); expect(MOCK_CALLBACK).toHaveBeenCalledTimes(1); }); it('should not callback on BGP announcement if no overlap', async () => { const MOCK_CALLBACK = jest.fn(); listener.onOverlap(['44.240.13.21'], MOCK_CALLBACK); mockWs.onmessage(MOCK_MSG_EVENT); expect(MOCK_CALLBACK).not.toHaveBeenCalled(); }); }); let mockWs; class MockWS { constructor() { this.send = jest.fn(); this.close = jest.fn(); } } const MOCK_ANNOUNCEMENT_MSG = { 'type': 'ris_message', 'data': { 'timestamp': 1736308898.1, 'peer': '192.65.185.3', 'peer_asn': '513', 'id': '192.65.185.3-0194441339340000', 'host': 'rrc04.ripe.net', 'type': 'UPDATE', 'path': [ 513, 29222, 29222, 3303, 3356, 3223, 55933, 55933 ], 'community': [ [ 513, 29222 ], [ 3223, 2 ], [ 3223, 202 ], [ 3223, 666 ], [ 3303, 1004 ], [ 3303, 1006 ], [ 3303, 3052 ], [ 3356, 2 ], [ 3356, 22 ], [ 3356, 100 ], [ 3356, 123 ], [ 3356, 501 ], [ 3356, 901 ], [ 3356, 2065 ], [ 3356, 10725 ], [ 22222, 1299 ], [ 22233, 10022 ], [ 22233, 10030 ], [ 22233, 10060 ], [ 29222, 100 ], [ 29222, 3303 ] ], 'origin': 'INCOMPLETE', 'announcements': [ { 'next_hop': '192.65.185.3', 'prefixes': [ '43.240.13.0/24' ] } ], 'withdrawals': [] } }; const MOCK_MSG_EVENT = new MessageEvent('message', { data: JSON.stringify(MOCK_ANNOUNCEMENT_MSG) }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5iZ3AtbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvdGVzdC5iZ3AtbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBeUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE9BQU87UUFDTixhQUFhO1lBQ1osTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7WUFDckIsT0FBTyxNQUFNLENBQUE7UUFDZCxDQUFDO0tBQ0QsQ0FBQTtBQUNGLENBQUMsQ0FBQyxDQUFBO0FBRUYsMkNBQXVDO0FBQ3ZDLHlEQUEwRDtBQUUxRCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUU3QixJQUFJLFFBQXFCLENBQUE7SUFDekIsVUFBVSxDQUFDLEtBQUssSUFBRyxFQUFFO1FBQ3BCLFFBQVEsR0FBRyxJQUFBLGdDQUFpQixFQUFDLGVBQU0sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sSUFBQSxhQUFLLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFFZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFB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