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.
102 lines
3.2 KiB
102 lines
3.2 KiB
// @flow
|
|
|
|
import { join, normalize } from 'path'
|
|
import LndConfig from 'lib/lnd/config'
|
|
|
|
jest.mock('lib/lnd/util', () => {
|
|
return {
|
|
...jest.requireActual('lib/lnd/util'),
|
|
binaryName: 'binaryName',
|
|
binaryPath: () => 'binaryPath'
|
|
}
|
|
})
|
|
|
|
describe('LndConfig', function() {
|
|
const checkForStaticProperties = () => {
|
|
it('should have "binaryPath" set to the value returned by lib/lnd/util', () => {
|
|
expect(this.lndConfig.binaryPath).toEqual('binaryPath')
|
|
})
|
|
it('should have "configPath" set to "resources/lnd.conf" relative to app root from lib/lnd/util"', () => {
|
|
expect(this.lndConfig.configPath).toEqual(normalize('/tmp/resources/lnd.conf'))
|
|
})
|
|
it('should have "rpcProtoPath" set to "resources/rcp.proto" relative to app root from lib/lnd/util"', () => {
|
|
expect(this.lndConfig.rpcProtoPath).toEqual(normalize('/tmp/resources/rpc.proto'))
|
|
})
|
|
}
|
|
|
|
const checkForConfigProperties = type => {
|
|
it(`should have the "type" property set to the ${type} value`, () => {
|
|
expect(this.lndConfig.type).toEqual(this.type)
|
|
})
|
|
it(`should have the "chain" property set to the ${type} value`, () => {
|
|
expect(this.lndConfig.chain).toEqual(this.chain)
|
|
})
|
|
it(`should have the "network" property set to the ${type}`, () => {
|
|
expect(this.lndConfig.network).toEqual(this.network)
|
|
})
|
|
it(`should have the "wallet" property set to the ${type}`, () => {
|
|
expect(this.lndConfig.wallet).toEqual(this.wallet)
|
|
})
|
|
it(`should have the "lndDir" set to a path derived from the config, under the app userData dir`, () => {
|
|
const baseDir = '/tmp/zap-test/userData/lnd/'
|
|
const expectedDataDir = join(baseDir, this.chain, this.network, this.wallet)
|
|
expect(this.lndConfig.lndDir).toEqual(expectedDataDir)
|
|
})
|
|
}
|
|
|
|
describe('"local" type', () => {
|
|
describe('New config with provided options', () => {
|
|
beforeAll(() => {
|
|
this.wallet = 'wallet-1'
|
|
this.type = 'local'
|
|
this.chain = 'litecoin'
|
|
this.network = 'mainnet'
|
|
|
|
this.lndConfig = new LndConfig({
|
|
id: 1,
|
|
type: this.type,
|
|
chain: this.chain,
|
|
network: this.network
|
|
})
|
|
})
|
|
|
|
describe('static properties', () => {
|
|
checkForStaticProperties()
|
|
})
|
|
describe('config properties', () => {
|
|
checkForConfigProperties('provided')
|
|
})
|
|
})
|
|
|
|
describe('New config with provided options and initial configuration', () => {
|
|
beforeAll(() => {
|
|
this.wallet = 'wallet-1'
|
|
this.type = 'local'
|
|
this.chain = 'bitcoin'
|
|
this.network = 'testnet'
|
|
this.host = 'some-host'
|
|
this.cert = 'some-cert'
|
|
this.macaroon = 'some-macaroon'
|
|
|
|
this.lndConfig = new LndConfig({
|
|
id: 1,
|
|
type: this.type,
|
|
chain: this.chain,
|
|
network: this.network,
|
|
settings: {
|
|
host: this.host,
|
|
cert: this.cert,
|
|
macaroon: this.macaroon
|
|
}
|
|
})
|
|
})
|
|
|
|
describe('static properties', () => {
|
|
checkForStaticProperties()
|
|
})
|
|
describe('config properties', () => {
|
|
checkForConfigProperties('provided')
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|