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

69 lines
1.9 KiB
JavaScript

const assert = require("chai").assert
const sinon = require("sinon")
const BCHJS = require("../../src/bch-js")
// const bchjs = new BCHJS()
let bchjs
const mockData = require("./fixtures/encryption-mock")
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")
})
})
})