Skip to content

Commit b29ba9e

Browse files
committed
tests: general fixes for tests failing in CI
1 parent ccc61a8 commit b29ba9e

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

src/PolykeyAgent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -700,10 +700,10 @@ class PolykeyAgent {
700700
await this.notificationsManager?.stop();
701701
await this.vaultManager?.stop();
702702
await this.discovery?.stop();
703-
await this.taskManager?.stop();
704703
await this.nodeGraph?.stop();
705704
await this.nodeConnectionManager?.stop();
706705
await this.nodeManager?.stop();
706+
await this.taskManager?.stop();
707707
await this.proxy?.stop();
708708
await this.grpcServerAgent?.stop();
709709
await this.grpcServerClient?.stop();

src/nodes/NodeConnectionManager.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import GRPCClientAgent from '../agent/GRPCClientAgent';
2929
import * as validationUtils from '../validation/utils';
3030
import * as networkUtils from '../network/utils';
3131
import * as nodesPB from '../proto/js/polykey/v1/nodes/nodes_pb';
32-
import { timerStart } from '../utils';
32+
import { timerStart, never } from '../utils';
3333

3434
type ConnectionAndTimer = {
3535
connection: NodeConnection<GRPCClientAgent>;
@@ -119,7 +119,8 @@ class NodeConnectionManager {
119119
this.nodeManager = nodeManager;
120120
// Adding seed nodes
121121
for (const nodeIdEncoded in this.seedNodes) {
122-
const nodeId = nodesUtils.decodeNodeId(nodeIdEncoded)!;
122+
const nodeId = nodesUtils.decodeNodeId(nodeIdEncoded);
123+
if (nodeId == null) never();
123124
await this.nodeManager.setNode(
124125
nodeId,
125126
this.seedNodes[nodeIdEncoded],
@@ -224,7 +225,8 @@ class NodeConnectionManager {
224225
const [release, conn] = await acquire();
225226
let caughtError;
226227
try {
227-
return yield* g(conn!);
228+
if (conn == null) never();
229+
return yield* g(conn);
228230
} catch (e) {
229231
caughtError = e;
230232
throw e;
@@ -701,9 +703,11 @@ class NodeConnectionManager {
701703
*/
702704
@ready(new nodesErrors.ErrorNodeConnectionManagerNotRunning())
703705
public getSeedNodes(): Array<NodeId> {
704-
return Object.keys(this.seedNodes).map(
705-
(nodeIdEncoded) => nodesUtils.decodeNodeId(nodeIdEncoded)!,
706-
);
706+
return Object.keys(this.seedNodes).map((nodeIdEncoded) => {
707+
const nodeId = nodesUtils.decodeNodeId(nodeIdEncoded);
708+
if (nodeId == null) never();
709+
return nodeId;
710+
});
707711
}
708712

709713
/**

src/nodes/NodeManager.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,13 @@ class NodeManager {
9292
host: Host,
9393
port: Port,
9494
) => {
95-
const nodeId = nodesUtils.decodeNodeId(nodeIdEncoded)!;
95+
const nodeId = nodesUtils.decodeNodeId(nodeIdEncoded);
96+
if (nodeId == null) {
97+
this.logger.error(
98+
`pingAndSetNodeHandler received invalid NodeId: ${nodeIdEncoded}`,
99+
);
100+
never();
101+
}
96102
const host_ = await networkUtils.resolveHost(host);
97103
if (
98104
await this.pingNode(nodeId, { host: host_, port }, { signal: ctx.signal })
@@ -569,7 +575,8 @@ class NodeManager {
569575
// We just add the new node anyway without checking the old one
570576
const oldNodeId = (
571577
await this.nodeGraph.getOldestNode(bucketIndex, 1, tran)
572-
).pop()!;
578+
).pop();
579+
if (oldNodeId == null) never();
573580
this.logger.debug(
574581
`Force was set, removing ${nodesUtils.encodeNodeId(
575582
oldNodeId,
@@ -1013,10 +1020,13 @@ class NodeManager {
10131020
}
10141021
}
10151022
// Refreshing every bucket above the closest node
1016-
let closestNodeInfo = closestNodes.pop()!;
1017-
if (this.keyManager.getNodeId().equals(closestNodeInfo[0])) {
1023+
let closestNodeInfo = closestNodes.pop();
1024+
if (
1025+
closestNodeInfo != null &&
1026+
this.keyManager.getNodeId().equals(closestNodeInfo[0])
1027+
) {
10181028
// Skip our nodeId if it exists
1019-
closestNodeInfo = closestNodes.pop()!;
1029+
closestNodeInfo = closestNodes.pop();
10201030
}
10211031
let index = this.nodeGraph.nodeIdBits;
10221032
if (closestNodeInfo != null) {

tests/discovery/Discovery.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import * as nodesUtils from '@/nodes/utils';
2222
import * as claimsUtils from '@/claims/utils';
2323
import * as discoveryErrors from '@/discovery/errors';
2424
import * as keysUtils from '@/keys/utils';
25+
import * as grpcUtils from '@/grpc/utils/index';
2526
import * as testNodesUtils from '../nodes/utils';
2627
import TestProvider from '../identities/TestProvider';
2728
import { globalRootKeyPems } from '../fixtures/globalRootKeyPems';
@@ -59,6 +60,8 @@ describe('Discovery', () => {
5960
let nodeB: PolykeyAgent;
6061
let identityId: IdentityId;
6162
beforeEach(async () => {
63+
// Sets the global GRPC logger to the logger
64+
grpcUtils.setLogger(logger);
6265
dataDir = await fs.promises.mkdtemp(
6366
path.join(os.tmpdir(), 'polykey-test-'),
6467
);

0 commit comments

Comments
 (0)