JimmyMow
6 years ago
committed by
GitHub
11 changed files with 571 additions and 77 deletions
@ -0,0 +1,171 @@ |
|||
import Neutrino from 'lib/lnd/neutrino' |
|||
|
|||
jest.mock('electron', () => { |
|||
const { normalize } = require('path') |
|||
|
|||
return { |
|||
app: { |
|||
getPath: name => normalize(`/tmp/zap-test/${name}`), |
|||
getAppPath: () => normalize('/tmp/zap-test') |
|||
} |
|||
} |
|||
}) |
|||
|
|||
describe('Neutrino', function() { |
|||
describe('Constructor', () => { |
|||
beforeAll(() => (this.neutrino = new Neutrino())) |
|||
|
|||
describe('initial values', () => { |
|||
it('should set the "process" property to null', () => { |
|||
expect(this.neutrino.process).toEqual(null) |
|||
}) |
|||
it('should set the "walletUnlockerGrpcActive" property to false', () => { |
|||
expect(this.neutrino.walletUnlockerGrpcActive).toEqual(false) |
|||
}) |
|||
it('should set the "lightningGrpcActive" property to false', () => { |
|||
expect(this.neutrino.lightningGrpcActive).toEqual(false) |
|||
}) |
|||
it('should set the "chainSyncStatus" property to "chain-sync-pending"', () => { |
|||
expect(this.neutrino.chainSyncStatus).toEqual('chain-sync-pending') |
|||
}) |
|||
it('should set the "currentBlockHeight" property to 0', () => { |
|||
expect(this.neutrino.currentBlockHeight).toEqual(0) |
|||
}) |
|||
it('should set the "lndBlockHeight" property to 0', () => { |
|||
expect(this.neutrino.lndBlockHeight).toEqual(0) |
|||
}) |
|||
it('should set the "lndCfilterHeight" property to 0', () => { |
|||
expect(this.neutrino.lndCfilterHeight).toEqual(0) |
|||
}) |
|||
}) |
|||
}) |
|||
|
|||
describe('.setState', () => { |
|||
describe('called with new state', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = 'chain-sync-finished' |
|||
this.neutrino.on('chain-sync-finished', this.callback) |
|||
this.neutrino.setState(this.newVal) |
|||
}) |
|||
|
|||
it('should set the state', () => { |
|||
expect(this.neutrino.chainSyncStatus).toEqual(this.newVal) |
|||
}) |
|||
it('should emit an event with the new state name', () => { |
|||
expect(this.callback).toHaveBeenCalledTimes(1) |
|||
}) |
|||
}) |
|||
describe('called with current state', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = 'chain-sync-pending' |
|||
this.neutrino.on('chain-sync-pending', this.callback) |
|||
this.neutrino.setState(this.newVal) |
|||
}) |
|||
|
|||
it('should not change the state', () => { |
|||
expect(this.neutrino.chainSyncStatus).toEqual(this.newVal) |
|||
}) |
|||
it('should not emit an event with the new state name', () => { |
|||
expect(this.callback).not.toHaveBeenCalled() |
|||
}) |
|||
}) |
|||
}) |
|||
|
|||
describe('.setCurrentBlockHeight', () => { |
|||
describe('called with higher height', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = 100 |
|||
this.neutrino.on('got-current-block-height', this.callback) |
|||
this.neutrino.setCurrentBlockHeight(this.newVal) |
|||
}) |
|||
|
|||
it('should change the current block height', () => { |
|||
expect(this.neutrino.currentBlockHeight).toEqual(this.newVal) |
|||
}) |
|||
it('should emit an event with the new current block height', () => { |
|||
expect(this.callback).toHaveBeenCalledTimes(1) |
|||
expect(this.callback).toHaveBeenCalledWith(this.newVal) |
|||
}) |
|||
}) |
|||
describe('called with lower height', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = -1 |
|||
this.neutrino.on('got-current-block-height', this.callback) |
|||
this.neutrino.setCurrentBlockHeight(this.newVal) |
|||
}) |
|||
|
|||
it('should not change the current block height', () => { |
|||
expect(this.neutrino.currentBlockHeight).toEqual(0) |
|||
}) |
|||
it('should not emit an event with the new current block height', () => { |
|||
expect(this.callback).not.toHaveBeenCalled() |
|||
}) |
|||
}) |
|||
}) |
|||
|
|||
describe('.setLndBlockHeight', () => { |
|||
describe('called with higher height', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = 100 |
|||
this.neutrino.on('got-lnd-block-height', this.callback) |
|||
this.neutrino.setCurrentBlockHeight = jest.fn() |
|||
this.neutrino.setLndBlockHeight(this.newVal) |
|||
}) |
|||
|
|||
it('should change the lnd block height', () => { |
|||
expect(this.neutrino.lndBlockHeight).toEqual(this.newVal) |
|||
}) |
|||
it('should emit an event with the new lnd block height', () => { |
|||
expect(this.callback).toHaveBeenCalledTimes(1) |
|||
expect(this.callback).toHaveBeenCalledWith(this.newVal) |
|||
}) |
|||
it('should call this.setCurrentBlockHeight', () => { |
|||
expect(this.neutrino.setCurrentBlockHeight).toHaveBeenCalledTimes(1) |
|||
expect(this.neutrino.setCurrentBlockHeight).toHaveBeenCalledWith(this.newVal) |
|||
}) |
|||
}) |
|||
describe('called with lower height', () => { |
|||
beforeEach(() => { |
|||
this.neutrino = new Neutrino() |
|||
this.callback = jest.fn() |
|||
this.newVal = -1 |
|||
this.neutrino.on('got-lnd-block-height', this.callback) |
|||
this.neutrino.setLndBlockHeight(this.newVal) |
|||
this.neutrino.setCurrentBlockHeight = jest.fn() |
|||
}) |
|||
|
|||
it('should not change the lnd block height', () => { |
|||
expect(this.neutrino.lndBlockHeight).toEqual(0) |
|||
}) |
|||
it('should not emit an event with the new lnd block height', () => { |
|||
expect(this.callback).not.toHaveBeenCalled() |
|||
}) |
|||
it('should not call this.setCurrentBlockHeight', () => { |
|||
expect(this.neutrino.setCurrentBlockHeight).not.toHaveBeenCalled() |
|||
}) |
|||
}) |
|||
}) |
|||
|
|||
describe('.is', () => { |
|||
describe('called with current state', () => { |
|||
beforeEach(() => (this.neutrino = new Neutrino())) |
|||
|
|||
it('should returnn true if the current state matches', () => { |
|||
expect(this.neutrino.is('chain-sync-pending')).toEqual(true) |
|||
}) |
|||
it('should return false if the current state does not matche', () => { |
|||
expect(this.neutrino.is('some-other-state')).toEqual(false) |
|||
}) |
|||
}) |
|||
}) |
|||
}) |
Loading…
Reference in new issue