Files
bch-js/test/unit/encryption.js
T

70 lines
1.9 KiB
JavaScript

import chai from 'chai'
import sinon from 'sinon'
import BCHJS from '../../src/bch-js.js'
import mockData from './fixtures/encryption-mock.js'
const { assert } = chai
// const bchjs = new BCHJS()
let bchjs
describe('#Encryption', () => {
let sandbox
beforeEach(() => {
bchjs = new BCHJS()
sandbox = sinon.createSandbox()
})
afterEach(() => sandbox.restore())
describe('#getPubKey', () => {
it('should throw error if BCH address is not provided.', async () => {
try {
await bchjs.encryption.getPubKey()
assert.equal(true, false, 'Unexpected result!')
} catch (err) {
// console.log(`err: `, err)
assert.include(
err.message,
'Input must be a valid Bitcoin Cash address'
)
}
})
it('should report when public key can not be found', async () => {
// Stub the network call.
sandbox
.stub(bchjs.encryption.axios, 'get')
.resolves({ data: mockData.failureMock })
const addr = 'bitcoincash:qpxqr2pmcverj4vukgjqssvk2zju8tp9xsgz2nqagx'
const result = await bchjs.encryption.getPubKey(addr)
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
assert.property(result, 'success')
assert.equal(result.success, false)
assert.property(result, 'publicKey')
assert.equal(result.publicKey, 'not found')
})
it('should get a public key', async () => {
// Stub the network call.
sandbox
.stub(bchjs.encryption.axios, 'get')
.resolves({ data: mockData.successMock })
const addr = 'bitcoincash:qpf8jv9hmqcda0502gjp7nm3g24y5h5s4unutghsxq'
const result = await bchjs.encryption.getPubKey(addr)
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
assert.property(result, 'success')
assert.equal(result.success, true)
assert.property(result, 'publicKey')
})
})
})