You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.9 KiB
165 lines
5.9 KiB
import Neutrino from 'lib/lnd/neutrino'
|
|
|
|
jest.mock('electron-store')
|
|
|
|
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)
|
|
})
|
|
it('should set the "lastError" property to be null', () => {
|
|
expect(this.neutrino.lastError).toEqual(null)
|
|
})
|
|
})
|
|
})
|
|
|
|
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)
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|