@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
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5iZ3AtbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvdGVzdC5iZ3AtbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBeUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE9BQU87UUFDTixhQUFhO1lBQ1osTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7WUFDckIsT0FBTyxNQUFNLENBQUE7UUFDZCxDQUFDO0tBQ0QsQ0FBQTtBQUNGLENBQUMsQ0FBQyxDQUFBO0FBRUYsMkNBQXVDO0FBQ3ZDLHlEQUEwRDtBQUUxRCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUU3QixJQUFJLFFBQXFCLENBQUE7SUFDekIsVUFBVSxDQUFDLEtBQUssSUFBRyxFQUFFO1FBQ3BCLFFBQVEsR0FBRyxJQUFBLGdDQUFpQixFQUFDLGVBQU0sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sSUFBQSxhQUFLLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFFZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQy9CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVsRSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRWhDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBRXhDLE1BQU0sRUFBRSxDQUFBO1FBRVIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUVoQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsdURBQXVELEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDckUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQy9CLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVuRCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRWhDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUM3QyxDQUFDLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsSUFBSSxNQUFjLENBQUE7QUFFbEIsTUFBTSxNQUFNO0lBQ1g7UUFHQSxTQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQ2hCLFVBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUE7SUFKRixDQUFDO0NBS2hCO0FBRUQsTUFBTSxxQkFBcUIsR0FBRztJQUM3QixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUU7UUFDUCxXQUFXLEVBQUUsWUFBWTtRQUN6QixNQUFNLEVBQUUsY0FBYztRQUN0QixVQUFVLEVBQUUsS0FBSztRQUNqQixJQUFJLEVBQUUsK0JBQStCO1FBQ3JDLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFO1lBQ1AsR0FBRztZQUNILEtBQUs7WUFDTCxLQUFLO1lBQ0wsSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osS0FBSztZQUNMLEtBQUs7U0FDTDtRQUNELFdBQVcsRUFBRTtZQUNaO2dCQUNDLEdBQUc7Z0JBQ0gsS0FBSzthQUNMO1lBQ0Q7Z0JBQ0MsSUFBSTtnQkFDSixDQUFDO2FBQ0Q7WUFDRDtnQkFDQyxJQUFJO2dCQUNKLEdBQUc7YUFDSDtZQUNEO2dCQUNDLElBQUk7Z0JBQ0osR0FBRzthQUNIO1lBQ0Q7Z0JBQ0MsSUFBSTtnQkFDSixJQUFJO2FBQ0o7WUFDRDtnQkFDQyxJQUFJO2dCQUNKLElBQUk7YUFDSjtZQUNEO2dCQUNDLElBQUk7Z0JBQ0osSUFBSTthQUNKO1lBQ0Q7Z0JBQ0MsSUFBSTtnQkFDSixDQUFDO2FBQ0Q7WUFDRDtnQkFDQyxJQUFJO2dCQUNKLEVBQUU7YUFDRjtZQUNEO2dCQUNDLElBQUk7Z0JBQ0osR0FBRzthQUNIO1lBQ0Q7Z0JBQ0MsSUFBSTtnQkFDSixHQUFHO2FBQ0g7WUFDRDtnQkFDQyxJQUFJO2dCQUNKLEdBQUc7YUFDSDtZQUNEO2dCQUNDLElBQUk7Z0JBQ0osR0FBRzthQUNIO1lBQ0Q7Z0JBQ0MsSUFBSTtnQkFDSixJQUFJO2FBQ0o7WUFDRDtnQkFDQyxJQUFJO2dCQUNKLEtBQUs7YUFDTDtZQUNEO2dCQUNDLEtBQUs7Z0JBQ0wsSUFBSTthQUNKO1lBQ0Q7Z0JBQ0MsS0FBSztnQkFDTCxLQUFLO2FBQ0w7WUFDRDtnQkFDQyxLQUFLO2dCQUNMLEtBQUs7YUFDTDtZQUNEO2dCQUNDLEtBQUs7Z0JBQ0wsS0FBSzthQUNMO1lBQ0Q7Z0JBQ0MsS0FBSztnQkFDTCxHQUFHO2FBQ0g7WUFDRDtnQkFDQyxLQUFLO2dCQUNMLElBQUk7YUFDSjtTQUNEO1FBQ0QsUUFBUSxFQUFFLFlBQVk7UUFDdEIsZUFBZSxFQUFFO1lBQ2hCO2dCQUNDLFVBQVUsRUFBRSxjQUFjO2dCQUMxQixVQUFVLEVBQUU7b0JBQ1gsZ0JBQWdCO2lCQUNoQjthQUNEO1NBQ0Q7UUFDRCxhQUFhLEVBQUUsRUFBRTtLQUNqQjtDQUNELENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLFlBQVksQ0FDdEMsU0FBUyxFQUNULEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUMvQyxDQUFBIn0=
;