Skip to content

Commit 0c84744

Browse files
committed
wip: fixing up tests
[ci skip]
1 parent 835d19f commit 0c84744

2 files changed

Lines changed: 54 additions & 28 deletions

File tree

src/nodes/NodeConnectionManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,7 @@ class NodeConnectionManager {
10111011
public async establishMultiConnection(
10121012
nodeIds: Array<NodeId>,
10131013
addresses: Array<NodeAddress>,
1014-
connectionTimeout: number = 2000,
1014+
connectionTimeout: number = 2000, // TODO: apply or remove
10151015
limit: number | undefined,
10161016
@context ctx: ContextTimed,
10171017
): Promise<Array<NodeId>> {

tests/nodes/NodeConnectionManager.lifecycle.test.ts

Lines changed: 53 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,32 @@
11
import type { Host, Port, TLSConfig } from '@/network/types';
2-
import { webcrypto } from 'crypto';
3-
import RPCServer from "../../src/rpc/RPCServer";
4-
import {NodeId, NodeIdEncoded, NodeIdString} from "@/ids";
5-
import KeyRing from "@/keys/KeyRing";
6-
import NodeGraph from "@/nodes/NodeGraph";
7-
import NodeManager from "@/nodes/NodeManager";
8-
import {DB} from "@matrixai/db";
9-
import ACL from "@/acl/ACL";
10-
import GestaltGraph from "@/gestalts/GestaltGraph";
11-
import path from "path";
12-
import Sigchain from "@/sigchain/Sigchain";
13-
import TaskManager from "@/tasks/TaskManager";
14-
import fs from "fs";
15-
import os from "os";
16-
import {QUICServer, QUICSocket} from "@matrixai/quic";
172
import type {
183
Crypto as QUICCrypto,
194
Host as QUICHost,
205
} from '@matrixai/quic/dist/types';
6+
import type { NodeAddress } from '@/nodes/types';
7+
import type { NodeId, NodeIdEncoded, NodeIdString } from '@/ids';
8+
import path from 'path';
9+
import fs from 'fs';
10+
import os from 'os';
11+
import { webcrypto } from 'crypto';
12+
import { DB } from '@matrixai/db';
13+
import { QUICServer, QUICSocket } from '@matrixai/quic';
2114
import Logger, { formatting, LogLevel, StreamHandler } from '@matrixai/logger';
15+
import KeyRing from '@/keys/KeyRing';
16+
import NodeGraph from '@/nodes/NodeGraph';
17+
import NodeManager from '@/nodes/NodeManager';
18+
import ACL from '@/acl/ACL';
19+
import GestaltGraph from '@/gestalts/GestaltGraph';
20+
import Sigchain from '@/sigchain/Sigchain';
21+
import TaskManager from '@/tasks/TaskManager';
2222
import * as nodesUtils from '@/nodes/utils';
2323
import * as keysUtils from '@/keys/utils';
2424
import NodeConnectionManager from '@/nodes/NodeConnectionManager';
2525
import { promise, sleep } from '@/utils';
26-
import * as tlsUtils from '../utils/tls';
26+
import * as nodesErrors from '@/nodes/errors';
2727
import NodeConnection from '../../src/nodes/NodeConnection';
28+
import RPCServer from '../../src/rpc/RPCServer';
29+
import * as tlsUtils from '../utils/tls';
2830

2931
/**
3032
* Signs using the 256-bit HMAC key
@@ -96,6 +98,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
9698
let serverSocket: QUICSocket;
9799
let quicServer: QUICServer;
98100
let rpcServer: RPCServer;
101+
let serverAddress: NodeAddress;
99102
let clientSocket: QUICSocket;
100103

101104
let keyRing: KeyRing;
@@ -207,11 +210,10 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
207210
db,
208211
logger,
209212
});
210-
const address = {
213+
serverAddress = {
211214
host: quicServer.host as unknown as Host,
212215
port: quicServer.port as unknown as Port,
213216
};
214-
await nodeGraph.setNode(serverNodeId, address);
215217
});
216218

217219
afterEach(async () => {
@@ -273,6 +275,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
273275
});
274276

275277
test('acquireConnection should create connection', async () => {
278+
await nodeGraph.setNode(serverNodeId, serverAddress);
276279
const nodeConnectionManager = new NodeConnectionManager({
277280
keyRing,
278281
logger: logger.getChild(NodeConnectionManager.name),
@@ -313,6 +316,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
313316
await nodeConnectionManager.stop();
314317
});
315318
test('withConnF should create connection', async () => {
319+
await nodeGraph.setNode(serverNodeId, serverAddress);
316320
const nodeConnectionManager = new NodeConnectionManager({
317321
keyRing,
318322
logger: logger.getChild(NodeConnectionManager.name),
@@ -353,6 +357,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
353357
await nodeConnectionManager.stop();
354358
});
355359
test('should list active connections', async () => {
360+
await nodeGraph.setNode(serverNodeId, serverAddress);
356361
const nodeConnectionManager = new NodeConnectionManager({
357362
keyRing,
358363
logger: logger.getChild(NodeConnectionManager.name),
@@ -401,6 +406,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
401406
await nodeConnectionManager.stop();
402407
});
403408
test('withConnG should create connection', async () => {
409+
await nodeGraph.setNode(serverNodeId, serverAddress);
404410
const nodeConnectionManager = new NodeConnectionManager({
405411
keyRing,
406412
logger: logger.getChild(NodeConnectionManager.name),
@@ -436,9 +442,16 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
436442
// @ts-ignore: kidnap protected property
437443
const connectionMap = nodeConnectionManager.connections;
438444

439-
await nodeConnectionManager.withConnG(serverNodeId, async function* () {
440-
expect(connectionMap.size).toBeGreaterThanOrEqual(1);
441-
});
445+
const gen = nodeConnectionManager.withConnG(
446+
serverNodeId,
447+
async function* (): AsyncGenerator {
448+
expect(connectionMap.size).toBeGreaterThanOrEqual(1);
449+
},
450+
);
451+
452+
for await (const _ of gen) {
453+
// Do nothing
454+
}
442455

443456
await nodeConnectionManager.stop();
444457
});
@@ -480,16 +493,26 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
480493
const randomNodeId = keysUtils.publicKeyToNodeId(
481494
keysUtils.generateKeyPair().publicKey,
482495
);
483-
const gen = nodeConnectionManager.withConnG(randomNodeId, async function* (): AsyncGenerator {
484-
expect(connectionMap.size).toBeGreaterThanOrEqual(1);
485-
});
486-
for await (const _ of gen) {
487-
//do nothing
488-
}
496+
const gen = nodeConnectionManager.withConnG(
497+
randomNodeId,
498+
async function* (): AsyncGenerator {
499+
expect(connectionMap.size).toBeGreaterThanOrEqual(1);
500+
},
501+
);
502+
503+
const prom = async () => {
504+
for await (const _ of gen) {
505+
// Do nothing
506+
}
507+
};
508+
await expect(prom).rejects.toThrow(
509+
nodesErrors.ErrorNodeGraphNodeIdNotFound,
510+
);
489511

490512
await nodeConnectionManager.stop();
491513
});
492514
test('connection should persist', async () => {
515+
await nodeGraph.setNode(serverNodeId, serverAddress);
493516
const nodeConnectionManager = new NodeConnectionManager({
494517
keyRing,
495518
logger: logger.getChild(NodeConnectionManager.name),
@@ -536,6 +559,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
536559
await nodeConnectionManager.stop();
537560
});
538561
test('should create 1 connection with concurrent creates', async () => {
562+
await nodeGraph.setNode(serverNodeId, serverAddress);
539563
const nodeConnectionManager = new NodeConnectionManager({
540564
keyRing,
541565
logger: logger.getChild(NodeConnectionManager.name),
@@ -590,6 +614,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
590614
await nodeConnectionManager.stop();
591615
});
592616
test('should destroy a connection', async () => {
617+
await nodeGraph.setNode(serverNodeId, serverAddress);
593618
const nodeConnectionManager = new NodeConnectionManager({
594619
keyRing,
595620
logger: logger.getChild(NodeConnectionManager.name),
@@ -643,6 +668,7 @@ describe(`${NodeConnectionManager.name} lifecycle test`, () => {
643668
await nodeConnectionManager.stop();
644669
});
645670
test('stopping should destroy all connections', async () => {
671+
await nodeGraph.setNode(serverNodeId, serverAddress);
646672
const nodeConnectionManager = new NodeConnectionManager({
647673
keyRing,
648674
logger: logger.getChild(NodeConnectionManager.name),

0 commit comments

Comments
 (0)