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') }) }) })