From df1b96cc0b311b6517f2a9886c740999ddbac687 Mon Sep 17 00:00:00 2001 From: fraVlaca <86831094+fraVlaca@users.noreply.github.com> Date: Tue, 17 May 2022 17:42:19 +0100 Subject: [PATCH] Peer Gateway txs error messsage: added output of the contents of the err details array (#1345) Signed-off-by: fraVlaca --- .../lib/connector-versions/peer-gateway/PeerGateway.js | 8 +++++++- .../test/connector-versions/peer-gateway/PeerGateway.js | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/caliper-fabric/lib/connector-versions/peer-gateway/PeerGateway.js b/packages/caliper-fabric/lib/connector-versions/peer-gateway/PeerGateway.js index 5d5965a45..108a1e996 100644 --- a/packages/caliper-fabric/lib/connector-versions/peer-gateway/PeerGateway.js +++ b/packages/caliper-fabric/lib/connector-versions/peer-gateway/PeerGateway.js @@ -327,7 +327,13 @@ class PeerGateway extends ConnectorBase { return invokeStatus; } catch (err) { //check if transaction submission failed, set invokation status accordingly and return it - logger.error(`Failed to perform ${isSubmit ? 'submit' : 'query'} transaction [${invokeSettings.contractFunction}] using arguments [${invokeSettings.contractArguments}], with error: ${err.stack ? err.stack : err}`); + if (err.details) { + err.message += '\nDetails:'; + for (const detail of err.details) { + err.message += `\n- ${detail.address}:${detail.message}`; + } + } + logger.error(`Failed to perform ${isSubmit ? 'submit' : 'query'} transaction [${invokeSettings.contractFunction}] using arguments [${invokeSettings.contractArguments}], with error: ${err}`); invokeStatus.SetStatusFail(); invokeStatus.SetVerification(true); invokeStatus.SetResult(''); diff --git a/packages/caliper-fabric/test/connector-versions/peer-gateway/PeerGateway.js b/packages/caliper-fabric/test/connector-versions/peer-gateway/PeerGateway.js index e3bc788ea..7b3c2676d 100644 --- a/packages/caliper-fabric/test/connector-versions/peer-gateway/PeerGateway.js +++ b/packages/caliper-fabric/test/connector-versions/peer-gateway/PeerGateway.js @@ -438,7 +438,9 @@ describe('A Fabric Peer Gateway sdk gateway', () => { contractArguments: args, invokerIdentity: 'admin', }; - Transaction.throwOnCall(new Error('submit-failure')); + const err = new Error('submit-failure'); + err.details= [{address:'anaddress', message:'an error'},{},'something']; + Transaction.throwOnCall(err); const txStatus = await peerGateway._sendSingleRequest(request); txStatus.should.be.instanceOf(TxStatus); txStatus.GetStatus().should.equal('failed'); @@ -503,7 +505,8 @@ describe('A Fabric Peer Gateway sdk gateway', () => { invokerIdentity: 'admin', readOnly: true }; - Transaction.throwOnCall(new Error('submit-failure')); + const err = new Error('submit-failure'); + Transaction.throwOnCall(err); const txStatus = await peerGateway._sendSingleRequest(request); txStatus.should.be.instanceOf(TxStatus); txStatus.GetStatus().should.equal('failed');