@node-dlc/wire
Version:
Lightning Network Wire Protocol
90 lines (72 loc) • 2.72 kB
text/typescript
// tslint:disable: no-unused-expression
import { ILogger } from '@node-dlc/logger';
import { expect } from 'chai';
import { GossipQueriesReceiver } from '../../lib/gossip/GossipQueriesReceiver';
import { GossipQueriesReceiverState } from '../../lib/gossip/GossipQueriesReceiver';
import { GossipTimestampFilterMessage } from '../../lib/messages/GossipTimestampFilterMessage';
import { createFakeLogger, createFakePeer } from '../_test-utils';
describe('GossipQueriesReceiver', () => {
let chainHash: Buffer;
let sut: GossipQueriesReceiver;
let peer: any;
let logger: ILogger;
beforeEach(() => {
chainHash = Buffer.alloc(32, 1);
peer = createFakePeer();
logger = createFakeLogger();
sut = new GossipQueriesReceiver(chainHash, peer, logger);
});
describe('initial state', () => {
it("in 'inactive' state", () => {
expect(sut.state).to.equal(GossipQueriesReceiverState.Idle);
});
it('has uint32_max start', () => {
expect(sut.firstTimestamp).to.equal(4294967295);
});
it('has zero range', () => {
expect(sut.timestampRange).to.equal(0);
});
});
describe('.activate()', () => {
it('should send gossip_timestamp_filter', () => {
sut.activate(1590174550, 4294967294);
expect(peer.sendMessage.callCount).to.equal(1);
const msg: GossipTimestampFilterMessage = peer.sendMessage.args[0][0];
expect(msg.firstTimestamp).to.equal(1590174550);
expect(msg.timestampRange).to.equal(4294967294);
});
it("should transition state to 'receiving'", () => {
sut.activate(1590174550, 4294967294);
expect(sut.state).to.equal(GossipQueriesReceiverState.Receiving);
});
it('sets timestamp', () => {
sut.activate(1590174550, 4294967294);
expect(sut.firstTimestamp).to.equal(1590174550);
});
it('sets range', () => {
sut.activate(1590174550, 4294967294);
expect(sut.timestampRange).to.equal(4294967294);
});
});
describe('.deactivate()', () => {
it('should send gossip_timestamp_filter', () => {
sut.deactivate();
expect(peer.sendMessage.callCount).to.equal(1);
const msg: GossipTimestampFilterMessage = peer.sendMessage.args[0][0];
expect(msg.firstTimestamp).to.equal(4294967295);
expect(msg.timestampRange).to.equal(0);
});
it("should transition state to 'idle'", () => {
sut.deactivate();
expect(sut.state).to.equal(GossipQueriesReceiverState.Idle);
});
it('sets timestamp', () => {
sut.deactivate();
expect(sut.firstTimestamp).to.equal(4294967295);
});
it('sets range', () => {
sut.deactivate();
expect(sut.timestampRange).to.equal(0);
});
});
});