From 85caa9556b97ba84b80900ed8b28c920683c5153 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 16 Jul 2021 15:18:35 -0700 Subject: [PATCH] fix(transactions): Adding better error messages --- src/raw-transactions.js | 4 +++- src/transaction.js | 6 ++++-- test/unit/raw-tranactions.js | 19 ++++++++++++++----- test/unit/transaction-unit.js | 2 +- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/raw-transactions.js b/src/raw-transactions.js index 6968ed9..ee871d4 100644 --- a/src/raw-transactions.js +++ b/src/raw-transactions.js @@ -365,7 +365,9 @@ class RawTransactions { async getTxData (txid) { try { if (typeof txid !== 'string') { - throw new Error('Input must be a string or array of strings.') + throw new Error( + 'Input to raw-transaction.js/getTxData() must be a string containg a TXID.' + ) } // Get the TX details for the transaction under consideration. diff --git a/src/transaction.js b/src/transaction.js index 81550c2..68a41ce 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -37,7 +37,9 @@ class Transaction { async get (txid) { try { if (typeof txid !== 'string') { - throw new Error('Input must be a string or array of strings.') + throw new Error( + 'Input to Transaction.get() must be a string containing a TXID.' + ) } const txDetails = await this.rawTransaction.getTxData(txid) @@ -136,7 +138,7 @@ class Transaction { return txDetails } catch (err) { - console.error('Error in transactions.js/get()') + // console.error('Error in transactions.js/get(): ', err) if (err.error) throw new Error(err.error) throw err diff --git a/test/unit/raw-tranactions.js b/test/unit/raw-tranactions.js index f84dc68..8101565 100644 --- a/test/unit/raw-tranactions.js +++ b/test/unit/raw-tranactions.js @@ -171,10 +171,15 @@ describe('#RawTransactions', () => { describe('#getTxData', () => { it('should return tx data with input addresses', async () => { // Mock dependencies - sandbox.stub(bchjs.RawTransactions, 'getRawTransaction').resolves(mockData.mockTx) - sandbox.stub(bchjs.RawTransactions, '_getInputAddrs').resolves(mockData.mockGetInputAddrsOutput) + sandbox + .stub(bchjs.RawTransactions, 'getRawTransaction') + .resolves(mockData.mockTx) + sandbox + .stub(bchjs.RawTransactions, '_getInputAddrs') + .resolves(mockData.mockGetInputAddrsOutput) - const txid = '05f7d4a4e25f53d63a360434eb54f221abf159112b7fffc91da1072a079cded3' + const txid = + '05f7d4a4e25f53d63a360434eb54f221abf159112b7fffc91da1072a079cded3' const result = await bchjs.RawTransactions.getTxData(txid) // console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -190,7 +195,10 @@ describe('#RawTransactions', () => { } catch (err) { // console.log(err) - assert2.include(err.message, 'Input must be a string or array of strings') + assert2.include( + err.message, + 'Input to raw-transaction.js/getTxData() must be a string containg a TXID.' + ) } }) @@ -201,7 +209,8 @@ describe('#RawTransactions', () => { .stub(bchjs.RawTransactions, 'getRawTransaction') .rejects(new Error('test error')) - const txid = '05f7d4a4e25f53d63a360434eb54f221abf159112b7fffc91da1072a079cded3' + const txid = + '05f7d4a4e25f53d63a360434eb54f221abf159112b7fffc91da1072a079cded3' await bchjs.RawTransactions.getTxData(txid) diff --git a/test/unit/transaction-unit.js b/test/unit/transaction-unit.js index 803d90d..8d9ea64 100644 --- a/test/unit/transaction-unit.js +++ b/test/unit/transaction-unit.js @@ -25,7 +25,7 @@ describe('#TransactionLib', () => { } catch (err) { assert.include( err.message, - 'Input must be a string or array of strings.' + 'Input to Transaction.get() must be a string containing a TXID.' ) } })