Skip to content

Commit c72dc9f

Browse files
ensure endorsetimeout is set on v2 fabric connector (#1246)
closes #1245 Signed-off-by: D <d_kelsey@uk.ibm.com> Co-authored-by: D <d_kelsey@uk.ibm.com>
1 parent 71a5a87 commit c72dc9f

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

packages/caliper-fabric/lib/connector-versions/v2/FabricGateway.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ class V2FabricGateway extends ConnectorBase {
268268
enabled: connectionProfileDefinition.isDynamicConnectionProfile()
269269
},
270270
eventHandlerOptions: {
271+
endorseTimeout: this.configDefaultTimeout,
271272
commitTimeout: this.configDefaultTimeout,
272273
strategy: EventStrategies[this.configEventStrategy]
273274
},

packages/caliper-fabric/test/connector-versions/v2/FabricGateway.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const configWith2Orgs1AdminInWalletNotMutual = '../../sample-configs/BasicConfig
3030
const { Gateway, Transaction, Network, Wallets } = require('./V2GatewayStubs');
3131
const GenerateConfiguration = require('../../utils/GenerateConfiguration');
3232
const ConnectorConfigurationFactory = require('../../../lib/connector-configuration/ConnectorConfigurationFactory');
33+
const { ConfigUtil } = require('@hyperledger/caliper-core');
3334

3435
describe('A Node-SDK V2 Fabric Gateway', () => {
3536

@@ -131,6 +132,33 @@ describe('A Node-SDK V2 Fabric Gateway', () => {
131132
}
132133
});
133134

135+
const checkTimeouts = (connectionArgs, expectedTimeoutValue) => {
136+
connectionArgs.eventHandlerOptions.endorseTimeout.should.equal(expectedTimeoutValue);
137+
connectionArgs.eventHandlerOptions.commitTimeout.should.equal(expectedTimeoutValue);
138+
connectionArgs.queryHandlerOptions.timeout.should.equal(expectedTimeoutValue);
139+
};
140+
141+
it('should create a Gateway with defaults for submit and query timeouts when invokeorquery is not specified', async () => {
142+
const connectorConfiguration = await new ConnectorConfigurationFactory().create(path.resolve(__dirname, configWith2Orgs1AdminInWallet), walletFacadeFactory);
143+
const fabricGateway = new FabricGateway(connectorConfiguration, 1, 'fabric');
144+
await fabricGateway.getContext();
145+
Gateway.constructed.should.equal(4);
146+
for (let i = 0; i < 4; i++) {
147+
checkTimeouts(Gateway.connectArgs[i][1], 60);
148+
}
149+
});
150+
151+
it('should create a Gateway with invokeorquery specified value for submit and query timeouts', async () => {
152+
ConfigUtil.set(ConfigUtil.keys.Fabric.Timeout.InvokeOrQuery, 99);
153+
const connectorConfiguration = await new ConnectorConfigurationFactory().create(path.resolve(__dirname, configWith2Orgs1AdminInWallet), walletFacadeFactory);
154+
const fabricGateway = new FabricGateway(connectorConfiguration, 1, 'fabric');
155+
await fabricGateway.getContext();
156+
Gateway.constructed.should.equal(4);
157+
for (let i = 0; i < 4; i++) {
158+
checkTimeouts(Gateway.connectArgs[i][1], 99);
159+
}
160+
});
161+
134162
it('should disconnect Gateways when a context is released', async () => {
135163
const connectorConfiguration = await new ConnectorConfigurationFactory().create(path.resolve(__dirname, configWith2Orgs1AdminInWallet), walletFacadeFactory);
136164
const fabricGateway = new FabricGateway(connectorConfiguration, 1, 'fabric');

0 commit comments

Comments
 (0)