Skip to content

Commit 4cff1d8

Browse files
committed
chore(binding-opcua): fix floating promise issues
1 parent 9b848c3 commit 4cff1d8

File tree

7 files changed

+32
-16
lines changed

7 files changed

+32
-16
lines changed

packages/binding-opcua/src/certificate-manager-singleton.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ export class CertificateManagerSingleton {
4747
if (CertificateManagerSingleton._certificateManager) {
4848
CertificateManagerSingleton._certificateManager.referenceCounter--;
4949
// dispose is degined to free resources if referenceCounter==0;
50-
CertificateManagerSingleton._certificateManager.dispose();
50+
CertificateManagerSingleton._certificateManager.dispose().catch((err) => {
51+
console.error("Error disposing CertificateManager", err);
52+
});
5153
CertificateManagerSingleton._certificateManager = null;
5254
}
5355
}

packages/binding-opcua/src/factory.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ export class OPCUAClientFactory implements ProtocolClientFactory {
5454
for (const client of clients) {
5555
await client.stop();
5656
}
57-
})();
57+
})().catch((err) => {
58+
console.error("Error destroying clients", err);
59+
});
5860
return true;
5961
}
6062
}

packages/binding-opcua/src/opcua-protocol-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ export class OPCUAProtocolClient implements ProtocolClient {
495495

496496
async unlinkResource(form: OPCUAForm): Promise<void> {
497497
debug(`unlinkResource: form ${OPCUAProtocolClient.getNodeId(form)}`);
498-
this._withSubscription<void>(form, async (session, subscription) => {
498+
await this._withSubscription<void>(form, async (session, subscription) => {
499499
const nodeId = await this._resolveNodeId(form);
500500
await this._unmonitor(nodeId);
501501
});

packages/binding-opcua/test/client-test.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,18 @@ describe("OPCUA Client", function () {
170170
resolve();
171171
}
172172
};
173-
client.subscribeResource(form, onSubscribedValueChanged);
174-
client.subscribeResource(form, onSubscribedValueChanged);
175-
client.subscribeResource(form, onSubscribedValueChanged);
176-
client.subscribeResource(form, onSubscribedValueChanged);
173+
client.subscribeResource(form, onSubscribedValueChanged).catch((err) => {
174+
console.error("Error in subscribeResource 1:", err);
175+
});
176+
client.subscribeResource(form, onSubscribedValueChanged).catch((err) => {
177+
console.error("Error in subscribeResource 2:", err);
178+
});
179+
client.subscribeResource(form, onSubscribedValueChanged).catch((err) => {
180+
console.error("Error in subscribeResource 3:", err);
181+
});
182+
client.subscribeResource(form, onSubscribedValueChanged).catch((err) => {
183+
console.error("Error in subscribeResource 4:", err);
184+
});
177185
});
178186
});
179187

packages/binding-opcua/test/fixture/basic-opcua-server.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,12 @@ export async function startServer(): Promise<OPCUAServer> {
295295
}
296296

297297
if (require.main === module) {
298-
(async () => {
298+
const main = async () => {
299299
const server = await startServer();
300-
process.once("SIGINT", () => {
301-
server.shutdown();
302-
});
303-
})();
300+
await new Promise<void>((resolve) => process.once("SIGINT", resolve));
301+
await server.shutdown();
302+
};
303+
main().catch((err) => {
304+
console.error("Error = ", err);
305+
});
304306
}

packages/binding-opcua/test/full-opcua-thing-test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,9 @@ describe("Full OPCUA Thing Test", () => {
345345
const wot = await servient.start();
346346
const thing = await wot.produce(thingDescription);
347347

348-
thing.expose();
348+
thing.expose().catch((err) => {
349+
console.error(`Cannot expose thing: ${err}`);
350+
});
349351

350352
let temperature = 10;
351353
const readHandler = async () => temperature;

packages/binding-opcua/test/opcua-security-test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,13 +337,13 @@ describe("Testing OPCUA Security Combination", () => {
337337

338338
// Client should trust client certificate
339339
const serverCertificate = opcuaServer.getCertificate();
340-
clientCertificateManager.trustCertificate(serverCertificate);
340+
await clientCertificateManager.trustCertificate(serverCertificate);
341341

342342
// Server should trust application client certificate
343343
const client = OPCUAClient.create({ clientCertificateManager });
344344
await client.createDefaultCertificate();
345345
const clientCertificate = client.getCertificateChain();
346-
serverCertificateManager.trustCertificate(clientCertificate);
346+
await serverCertificateManager.trustCertificate(clientCertificate);
347347

348348
// let's create the x509 Certificate for User JoeDoe
349349
const joedoeX509CertificateFilename = path.join(
@@ -363,7 +363,7 @@ describe("Testing OPCUA Security Combination", () => {
363363

364364
// server should trust x509 User certificate
365365
const userCertificateManager = opcuaServer.userCertificateManager;
366-
userCertificateManager.trustCertificate(joedoeX509Cerficate);
366+
await userCertificateManager.trustCertificate(joedoeX509Cerficate);
367367

368368
// adjust thingDescription x509 parameters with generated certficate info
369369
const joedoeX509CertificatePem = readCertificatePEM(joedoeX509CertificateFilename);

0 commit comments

Comments
 (0)