agent-comms 2.21.6 → 2.21.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/bridges/claude-code/channel.d.ts.map +1 -1
- package/dist/bridges/claude-code/channel.js +8 -4
- package/dist/bridges/claude-code/channel.js.map +1 -1
- package/dist/bridges/codex/tool.d.ts.map +1 -1
- package/dist/bridges/codex/tool.js +5 -3
- package/dist/bridges/codex/tool.js.map +1 -1
- package/dist/bridges/mcp/{index.d.ts → server.d.ts} +1 -1
- package/dist/bridges/mcp/server.d.ts.map +1 -0
- package/dist/bridges/mcp/{index.js → server.js} +6 -4
- package/dist/bridges/mcp/server.js.map +1 -0
- package/dist/bridges/opencode/plugin.d.ts.map +1 -1
- package/dist/bridges/opencode/plugin.js +3 -1
- package/dist/bridges/opencode/plugin.js.map +1 -1
- package/dist/bridges/pi/{index.d.ts → extension.d.ts} +1 -1
- package/dist/bridges/pi/extension.d.ts.map +1 -0
- package/dist/bridges/pi/{index.js → extension.js} +12 -11
- package/dist/bridges/pi/extension.js.map +1 -0
- package/dist/bridges/{index.d.ts → registry.d.ts} +1 -1
- package/dist/bridges/registry.d.ts.map +1 -0
- package/dist/bridges/{index.js → registry.js} +2 -2
- package/dist/bridges/registry.js.map +1 -0
- package/dist/bridges/user/cli.d.ts +1 -1
- package/dist/bridges/user/cli.d.ts.map +1 -1
- package/dist/bridges/user/cli.js +3 -3
- package/dist/bridges/user/cli.js.map +1 -1
- package/dist/bridges/user/controller.d.ts +4 -4
- package/dist/bridges/user/controller.d.ts.map +1 -1
- package/dist/bridges/user/controller.js +4 -4
- package/dist/bridges/user/controller.js.map +1 -1
- package/dist/bridges/user/tui.js +13 -9
- package/dist/bridges/user/tui.js.map +1 -1
- package/dist/bridges/user/web/dist/bundle.js +2 -2
- package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
- package/dist/bridges/user/web/dist/sw.js +1 -1
- package/dist/bridges/user/web/frontend/api.d.ts +1 -1
- package/dist/bridges/user/web/frontend/api.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/api.js +7 -2
- package/dist/bridges/user/web/frontend/api.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/App.d.ts +3 -3
- package/dist/bridges/user/web/frontend/components/App.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.js +3 -2
- package/dist/bridges/user/web/frontend/components/ChatArea.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts +2 -2
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.js +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/ProjectTree.js +1 -1
- package/dist/bridges/user/web/frontend/components/ProjectTree.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts +2 -2
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/dom.d.ts +0 -3
- package/dist/bridges/user/web/frontend/dom.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/dom.js +4 -2
- package/dist/bridges/user/web/frontend/dom.js.map +1 -1
- package/dist/bridges/user/web/frontend/input.js +13 -7
- package/dist/bridges/user/web/frontend/input.js.map +1 -1
- package/dist/bridges/user/web/frontend/main.js +4 -2
- package/dist/bridges/user/web/frontend/main.js.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-client.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-client.js +23 -10
- package/dist/bridges/user/web/frontend/mesh-client.js.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-worker.js +6 -4
- package/dist/bridges/user/web/frontend/mesh-worker.js.map +1 -1
- package/dist/bridges/user/web/frontend/messages.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/messages.js +2 -0
- package/dist/bridges/user/web/frontend/messages.js.map +1 -1
- package/dist/bridges/user/web/frontend/project-tree.d.ts +1 -1
- package/dist/bridges/user/web/frontend/project-tree.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/project-tree.js.map +1 -1
- package/dist/bridges/user/web/frontend/state.d.ts +7 -7
- package/dist/bridges/user/web/frontend/state.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/state.js.map +1 -1
- package/dist/bridges/user/web/frontend/sw.js +23 -17
- package/dist/bridges/user/web/frontend/sw.js.map +1 -1
- package/dist/bridges/user/web/frontend/url-sync.d.ts +3 -3
- package/dist/bridges/user/web/frontend/url-sync.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/url-sync.js +7 -5
- package/dist/bridges/user/web/frontend/url-sync.js.map +1 -1
- package/dist/bridges/user/web/generated-html.js +1 -1
- package/dist/bridges/user/web/port-discovery.d.ts.map +1 -1
- package/dist/bridges/user/web/port-discovery.js +1 -1
- package/dist/bridges/user/web/port-discovery.js.map +1 -1
- package/dist/bridges/user/web/server.d.ts.map +1 -1
- package/dist/bridges/user/web/server.js +47 -23
- package/dist/bridges/user/web/server.js.map +1 -1
- package/dist/bridges/user/web/test/port-discovery.unit.test.js +46 -20
- package/dist/bridges/user/web/test/port-discovery.unit.test.js.map +1 -1
- package/dist/bridges/user/web/test/web-server.integration.test.js +27 -9
- package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +9 -7
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-registry.js +5 -5
- package/dist/core/agent-registry.js.map +1 -1
- package/dist/core/bridge.d.ts +2 -2
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +7 -1
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/comms-store.d.ts +24 -24
- package/dist/core/comms-store.d.ts.map +1 -1
- package/dist/core/connection-approval.d.ts +4 -7
- package/dist/core/connection-approval.d.ts.map +1 -1
- package/dist/core/connection-approval.js +3 -6
- package/dist/core/connection-approval.js.map +1 -1
- package/dist/core/delivery-engine.d.ts +1 -1
- package/dist/core/delivery-engine.d.ts.map +1 -1
- package/dist/core/delivery-engine.js +8 -6
- package/dist/core/delivery-engine.js.map +1 -1
- package/dist/core/discovery-mdns.d.ts +3 -1
- package/dist/core/discovery-mdns.d.ts.map +1 -1
- package/dist/core/discovery-mdns.js +17 -10
- package/dist/core/discovery-mdns.js.map +1 -1
- package/dist/core/discovery-tailscale.d.ts +1 -1
- package/dist/core/discovery-tailscale.d.ts.map +1 -1
- package/dist/core/discovery-tailscale.js +25 -13
- package/dist/core/discovery-tailscale.js.map +1 -1
- package/dist/core/discovery.d.ts +10 -10
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +6 -8
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/federation-bridge.d.ts +1 -1
- package/dist/core/federation-bridge.d.ts.map +1 -1
- package/dist/core/federation-bridge.js +4 -4
- package/dist/core/federation-bridge.js.map +1 -1
- package/dist/core/federation.d.ts +16 -16
- package/dist/core/federation.d.ts.map +1 -1
- package/dist/core/federation.js +33 -14
- package/dist/core/federation.js.map +1 -1
- package/dist/core/handshake.d.ts +10 -10
- package/dist/core/handshake.d.ts.map +1 -1
- package/dist/core/handshake.js +9 -4
- package/dist/core/handshake.js.map +1 -1
- package/dist/core/identity-store.d.ts +8 -8
- package/dist/core/identity-store.d.ts.map +1 -1
- package/dist/core/identity-store.js +7 -3
- package/dist/core/identity-store.js.map +1 -1
- package/dist/core/identity.d.ts.map +1 -1
- package/dist/core/identity.js +111 -42
- package/dist/core/identity.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/mcp-registry-retry.d.ts.map +1 -1
- package/dist/core/mcp-registry-retry.js +4 -1
- package/dist/core/mcp-registry-retry.js.map +1 -1
- package/dist/core/mesh-store-shared.d.ts +2 -5
- package/dist/core/mesh-store-shared.d.ts.map +1 -1
- package/dist/core/mesh-store-shared.js +21 -5
- package/dist/core/mesh-store-shared.js.map +1 -1
- package/dist/core/mesh-store.d.ts +3 -4
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +12 -10
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/peer-lifecycle.d.ts +9 -9
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/push-manager.d.ts +1 -2
- package/dist/core/push-manager.d.ts.map +1 -1
- package/dist/core/push-manager.js.map +1 -1
- package/dist/core/random-id.d.ts +1 -1
- package/dist/core/random-id.d.ts.map +1 -1
- package/dist/core/random-id.js +4 -2
- package/dist/core/random-id.js.map +1 -1
- package/dist/core/room-lifecycle.d.ts +2 -2
- package/dist/core/room-lifecycle.d.ts.map +1 -1
- package/dist/core/room-lifecycle.js +4 -3
- package/dist/core/room-lifecycle.js.map +1 -1
- package/dist/core/room-messaging.d.ts +1 -1
- package/dist/core/room-messaging.d.ts.map +1 -1
- package/dist/core/room-messaging.js +2 -2
- package/dist/core/room-messaging.js.map +1 -1
- package/dist/core/room-protocol.d.ts +1 -1
- package/dist/core/room-protocol.d.ts.map +1 -1
- package/dist/core/room-protocol.js +6 -6
- package/dist/core/room-protocol.js.map +1 -1
- package/dist/core/room-router.d.ts +3 -3
- package/dist/core/room-router.d.ts.map +1 -1
- package/dist/core/room-router.js +19 -1
- package/dist/core/room-router.js.map +1 -1
- package/dist/core/stale-agent-checker.d.ts.map +1 -1
- package/dist/core/stale-agent-checker.js +4 -1
- package/dist/core/stale-agent-checker.js.map +1 -1
- package/dist/core/store.d.ts +2 -2
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +16 -9
- package/dist/core/store.js.map +1 -1
- package/dist/core/test/identity.unit.test.js +42 -9
- package/dist/core/test/identity.unit.test.js.map +1 -1
- package/dist/core/tool.d.ts +23 -23
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +115 -174
- package/dist/core/tool.js.map +1 -1
- package/dist/core/transport.d.ts +42 -65
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/types.d.ts +52 -46
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +42 -25
- package/dist/core/types.js.map +1 -1
- package/dist/core/vapid.d.ts.map +1 -1
- package/dist/core/vapid.js +6 -2
- package/dist/core/vapid.js.map +1 -1
- package/dist/core/web-push.d.ts +2 -2
- package/dist/core/web-push.d.ts.map +1 -1
- package/dist/core/web-push.js +29 -11
- package/dist/core/web-push.js.map +1 -1
- package/dist/core/wire-mesh-transport.d.ts +10 -10
- package/dist/core/wire-mesh-transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.js +7 -5
- package/dist/core/wire-mesh-transport.js.map +1 -1
- package/dist/test/approval.integration.test.js +25 -14
- package/dist/test/approval.integration.test.js.map +1 -1
- package/dist/test/bridge-mesh.test.js +6 -1
- package/dist/test/bridge-mesh.test.js.map +1 -1
- package/dist/test/broadcast-window.integration.test.js +7 -3
- package/dist/test/broadcast-window.integration.test.js.map +1 -1
- package/dist/test/coordinator-socket-error.integration.test.js +5 -1
- package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
- package/dist/test/delivery-receipt.helper.js +56 -33
- package/dist/test/delivery-receipt.helper.js.map +1 -1
- package/dist/test/federation.integration.test.js +33 -14
- package/dist/test/federation.integration.test.js.map +1 -1
- package/dist/test/handshake.test.js +23 -7
- package/dist/test/handshake.test.js.map +1 -1
- package/dist/test/identity-restart.integration.test.js +15 -7
- package/dist/test/identity-restart.integration.test.js.map +1 -1
- package/dist/test/identity-store.test.js +14 -6
- package/dist/test/identity-store.test.js.map +1 -1
- package/dist/test/listener-policy.integration.test.js +3 -2
- package/dist/test/listener-policy.integration.test.js.map +1 -1
- package/dist/test/mcp-registry-retry.test.js +14 -3
- package/dist/test/mcp-registry-retry.test.js.map +1 -1
- package/dist/test/mesh-e2e.integration.test.js +27 -10
- package/dist/test/mesh-e2e.integration.test.js.map +1 -1
- package/dist/test/mesh-smoke.runner.js +1 -1
- package/dist/test/mesh-smoke.runner.js.map +1 -1
- package/dist/test/presence-readvertise.integration.test.d.ts +1 -1
- package/dist/test/presence-readvertise.integration.test.js +5 -2
- package/dist/test/presence-readvertise.integration.test.js.map +1 -1
- package/dist/test/random-id.test.js +3 -1
- package/dist/test/random-id.test.js.map +1 -1
- package/dist/test/room-admission-tool-actions.test.js +2 -1
- package/dist/test/room-admission-tool-actions.test.js.map +1 -1
- package/dist/test/room-destroy-revocation.integration.test.js +4 -1
- package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
- package/dist/test/room-invite-directed.integration.test.js +2 -1
- package/dist/test/room-invite-directed.integration.test.js.map +1 -1
- package/dist/test/room-join-admission.test.js +7 -5
- package/dist/test/room-join-admission.test.js.map +1 -1
- package/dist/test/room-kick-revocation.integration.test.js +5 -1
- package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
- package/dist/test/room-path.test.js +3 -2
- package/dist/test/room-path.test.js.map +1 -1
- package/dist/test/room-read-directed.integration.test.js +6 -2
- package/dist/test/room-read-directed.integration.test.js.map +1 -1
- package/dist/test/room-router.test.js +3 -1
- package/dist/test/room-router.test.js.map +1 -1
- package/dist/test/room-send-directed.integration.test.js +2 -1
- package/dist/test/room-send-directed.integration.test.js.map +1 -1
- package/dist/test/room-send-retry-queue.test.js +6 -2
- package/dist/test/room-send-retry-queue.test.js.map +1 -1
- package/dist/test/room-send-retry.integration.test.js +21 -7
- package/dist/test/room-send-retry.integration.test.js.map +1 -1
- package/dist/test/room-token-store.test.js +30 -7
- package/dist/test/room-token-store.test.js.map +1 -1
- package/dist/test/stale-agent-checker.test.d.ts +2 -0
- package/dist/test/stale-agent-checker.test.d.ts.map +1 -0
- package/dist/test/stale-agent-checker.test.js +262 -0
- package/dist/test/stale-agent-checker.test.js.map +1 -0
- package/dist/test/state-sync-convergence.test.js +2 -1
- package/dist/test/state-sync-convergence.test.js.map +1 -1
- package/dist/test/test-transport.d.ts +1 -1
- package/dist/test/test-transport.d.ts.map +1 -1
- package/dist/test/test-transport.js +7 -3
- package/dist/test/test-transport.js.map +1 -1
- package/dist/test/wire-mesh-transport.test.js +41 -27
- package/dist/test/wire-mesh-transport.test.js.map +1 -1
- package/package.json +4 -3
- package/dist/bridges/index.d.ts.map +0 -1
- package/dist/bridges/index.js.map +0 -1
- package/dist/bridges/mcp/index.d.ts.map +0 -1
- package/dist/bridges/mcp/index.js.map +0 -1
- package/dist/bridges/pi/index.d.ts.map +0 -1
- package/dist/bridges/pi/index.js.map +0 -1
|
@@ -21,8 +21,29 @@ if (testName === undefined) {
|
|
|
21
21
|
console.error("Usage: node delivery-receipt.helper.ts <test-name>");
|
|
22
22
|
process.exit(1);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Timing constants — settle windows for asynchronous mesh propagation. The mesh has no "operation complete" signal for these steps, so tests wait a fixed budget rather than polling; values were picked empirically to be comfortably longer than the real round trip on a local TCP loopback.
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
/** Milliseconds to wait for a newly registered peer's own local state to settle before a second peer registers. */
|
|
28
|
+
const REGISTER_SETTLE_MS = 100;
|
|
29
|
+
/** Milliseconds to wait for two mesh peers to complete bidirectional registration sync after the second peer registers. */
|
|
30
|
+
const PEER_SYNC_SETTLE_MS = 300;
|
|
31
|
+
/** Milliseconds to wait for a created room to propagate across the mesh before members join it. */
|
|
32
|
+
const ROOM_CREATE_SETTLE_MS = 200;
|
|
33
|
+
/** Milliseconds to wait for a sent message (or a drained delivery's resulting read receipt) to propagate across the mesh. */
|
|
34
|
+
const MESH_PROPAGATION_SETTLE_MS = 300;
|
|
35
|
+
/** Milliseconds to wait for a push-delivered message's read receipt to round-trip back to the sender. */
|
|
36
|
+
const READ_RECEIPT_SETTLE_MS = 500;
|
|
37
|
+
/** Milliseconds to wait for a sent message's readBy array to be updated. */
|
|
38
|
+
const READBY_SETTLE_MS = 800;
|
|
39
|
+
/** Total budget pollUntil waits before giving up and throwing. */
|
|
40
|
+
const POLL_TIMEOUT_MS = 5000;
|
|
41
|
+
/** Interval between pollUntil predicate re-checks. */
|
|
42
|
+
const POLL_INTERVAL_MS = 50;
|
|
43
|
+
async function sleep(ms) {
|
|
44
|
+
await new Promise((resolve) => {
|
|
45
|
+
setTimeout(resolve, ms);
|
|
46
|
+
});
|
|
26
47
|
}
|
|
27
48
|
/**
|
|
28
49
|
* Allocate a genuinely free coordinator port. Creates a probe server on
|
|
@@ -36,7 +57,7 @@ async function allocFreePort() {
|
|
|
36
57
|
// SO_REUSEADDR avoids TIME_WAIT on close
|
|
37
58
|
server.listen(0, "127.0.0.1", () => {
|
|
38
59
|
const addr = server.address();
|
|
39
|
-
const port = addr && typeof addr === "object" ? addr.port : 0;
|
|
60
|
+
const port = addr !== null && typeof addr === "object" ? addr.port : 0;
|
|
40
61
|
server.close(() => {
|
|
41
62
|
resolve(port);
|
|
42
63
|
});
|
|
@@ -51,12 +72,12 @@ async function cleanup(...stores) {
|
|
|
51
72
|
}
|
|
52
73
|
/** Polls until predicate holds or a fixed budget elapses -- these helpers wait on a real, cross-process wire round trip (admission, DM consent), not a fixed sleep. */
|
|
53
74
|
async function pollUntil(predicate, what) {
|
|
54
|
-
const deadline = Date.now() +
|
|
75
|
+
const deadline = Date.now() + POLL_TIMEOUT_MS;
|
|
55
76
|
while (!(await predicate())) {
|
|
56
77
|
if (Date.now() >= deadline) {
|
|
57
78
|
throw new Error(`timed out waiting for ${what}`);
|
|
58
79
|
}
|
|
59
|
-
await sleep(
|
|
80
|
+
await sleep(POLL_INTERVAL_MS);
|
|
60
81
|
}
|
|
61
82
|
}
|
|
62
83
|
/**
|
|
@@ -106,7 +127,7 @@ async function testPushRoom() {
|
|
|
106
127
|
visibility: "visible",
|
|
107
128
|
tags: [],
|
|
108
129
|
});
|
|
109
|
-
await sleep(
|
|
130
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
110
131
|
const b = new MeshStore(port);
|
|
111
132
|
await wireTestTransport(b);
|
|
112
133
|
const deliveriesB = [];
|
|
@@ -122,18 +143,18 @@ async function testPushRoom() {
|
|
|
122
143
|
visibility: "visible",
|
|
123
144
|
tags: [],
|
|
124
145
|
});
|
|
125
|
-
await sleep(
|
|
146
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
126
147
|
const room = await a.createRoom({
|
|
127
148
|
name: `push-room-${String(port)}`,
|
|
128
149
|
type: "public",
|
|
129
150
|
owner: a.peerId,
|
|
130
151
|
description: "Push delivery test",
|
|
131
152
|
});
|
|
132
|
-
await sleep(
|
|
153
|
+
await sleep(ROOM_CREATE_SETTLE_MS);
|
|
133
154
|
await joinAndAccept(a, b, room.id);
|
|
134
155
|
deliveriesB.length = 0;
|
|
135
156
|
await a.sendRoomMessage(room.id, a.peerId, "Hello push!");
|
|
136
|
-
await sleep(
|
|
157
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
137
158
|
assert.ok(deliveriesB.length >= 1, `B should receive at least 1 delivery, got ${String(deliveriesB.length)}`);
|
|
138
159
|
const roomMsg = deliveriesB.find((ev) => ev.type === "room_message");
|
|
139
160
|
assert.ok(roomMsg !== undefined, "Should find room_message event");
|
|
@@ -158,7 +179,7 @@ async function testPushDm() {
|
|
|
158
179
|
visibility: "visible",
|
|
159
180
|
tags: [],
|
|
160
181
|
});
|
|
161
|
-
await sleep(
|
|
182
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
162
183
|
const b = new MeshStore(port);
|
|
163
184
|
await wireTestTransport(b);
|
|
164
185
|
const deliveriesB = [];
|
|
@@ -174,11 +195,11 @@ async function testPushDm() {
|
|
|
174
195
|
visibility: "visible",
|
|
175
196
|
tags: [],
|
|
176
197
|
});
|
|
177
|
-
await sleep(
|
|
198
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
178
199
|
await dmConsent(a, b);
|
|
179
200
|
deliveriesB.length = 0;
|
|
180
201
|
await a.sendDm(a.peerId, b.peerId, "Direct push!");
|
|
181
|
-
await sleep(
|
|
202
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
182
203
|
assert.ok(deliveriesB.length >= 1, `B should receive DM, got ${String(deliveriesB.length)}`);
|
|
183
204
|
const dm = deliveriesB.find((ev) => ev.type === "dm");
|
|
184
205
|
assert.ok(dm !== undefined, "Should find dm event");
|
|
@@ -199,7 +220,7 @@ async function testDrainRoom() {
|
|
|
199
220
|
visibility: "visible",
|
|
200
221
|
tags: [],
|
|
201
222
|
});
|
|
202
|
-
await sleep(
|
|
223
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
203
224
|
// B has NO onDelivery — events queue for drain
|
|
204
225
|
const b = new MeshStore(port);
|
|
205
226
|
await wireTestTransport(b);
|
|
@@ -212,17 +233,17 @@ async function testDrainRoom() {
|
|
|
212
233
|
visibility: "visible",
|
|
213
234
|
tags: [],
|
|
214
235
|
});
|
|
215
|
-
await sleep(
|
|
236
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
216
237
|
const room = await a.createRoom({
|
|
217
238
|
name: `drain-room-${String(port)}`,
|
|
218
239
|
type: "public",
|
|
219
240
|
owner: a.peerId,
|
|
220
241
|
description: "Drain delivery test",
|
|
221
242
|
});
|
|
222
|
-
await sleep(
|
|
243
|
+
await sleep(ROOM_CREATE_SETTLE_MS);
|
|
223
244
|
await joinAndAccept(a, b, room.id);
|
|
224
245
|
await a.sendRoomMessage(room.id, a.peerId, "Hello drain!");
|
|
225
|
-
await sleep(
|
|
246
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
226
247
|
const drained = await b.drainDelivery(b.peerId);
|
|
227
248
|
assert.ok(drained.length >= 1, `drainDelivery should return events, got ${String(drained.length)}`);
|
|
228
249
|
const roomMsg = drained.find((e) => e.type === "room_message");
|
|
@@ -245,7 +266,7 @@ async function testDrainDm() {
|
|
|
245
266
|
visibility: "visible",
|
|
246
267
|
tags: [],
|
|
247
268
|
});
|
|
248
|
-
await sleep(
|
|
269
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
249
270
|
const b = new MeshStore(port);
|
|
250
271
|
await wireTestTransport(b);
|
|
251
272
|
await b.init();
|
|
@@ -257,10 +278,10 @@ async function testDrainDm() {
|
|
|
257
278
|
visibility: "visible",
|
|
258
279
|
tags: [],
|
|
259
280
|
});
|
|
260
|
-
await sleep(
|
|
281
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
261
282
|
await dmConsent(a, b);
|
|
262
283
|
await a.sendDm(a.peerId, b.peerId, "Direct drain!");
|
|
263
|
-
await sleep(
|
|
284
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
264
285
|
const drained = await b.drainDelivery(b.peerId);
|
|
265
286
|
assert.ok(drained.length >= 1, `drainDelivery should return DM, got ${String(drained.length)}`);
|
|
266
287
|
const event = drained[0];
|
|
@@ -286,7 +307,7 @@ async function testReadReceiptPush() {
|
|
|
286
307
|
visibility: "visible",
|
|
287
308
|
tags: [],
|
|
288
309
|
});
|
|
289
|
-
await sleep(
|
|
310
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
290
311
|
const b = new MeshStore(port);
|
|
291
312
|
await wireTestTransport(b);
|
|
292
313
|
b.onDelivery = () => {
|
|
@@ -301,18 +322,18 @@ async function testReadReceiptPush() {
|
|
|
301
322
|
visibility: "visible",
|
|
302
323
|
tags: [],
|
|
303
324
|
});
|
|
304
|
-
await sleep(
|
|
325
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
305
326
|
const room = await a.createRoom({
|
|
306
327
|
name: `read-push-${String(port)}`,
|
|
307
328
|
type: "public",
|
|
308
329
|
owner: a.peerId,
|
|
309
330
|
description: "Read receipt push test",
|
|
310
331
|
});
|
|
311
|
-
await sleep(
|
|
332
|
+
await sleep(ROOM_CREATE_SETTLE_MS);
|
|
312
333
|
await joinAndAccept(a, b, room.id);
|
|
313
334
|
deliveriesA.length = 0;
|
|
314
335
|
await a.sendRoomMessage(room.id, a.peerId, "Read me");
|
|
315
|
-
await sleep(
|
|
336
|
+
await sleep(READ_RECEIPT_SETTLE_MS);
|
|
316
337
|
const readReceipt = deliveriesA.find((ev) => ev.type === "delivery_status" && ev.status === "read");
|
|
317
338
|
assert.ok(readReceipt !== undefined, "A should receive a read receipt");
|
|
318
339
|
assert.strictEqual(readReceipt.agent, b.peerId);
|
|
@@ -335,7 +356,7 @@ async function testReadReceiptDrain() {
|
|
|
335
356
|
visibility: "visible",
|
|
336
357
|
tags: [],
|
|
337
358
|
});
|
|
338
|
-
await sleep(
|
|
359
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
339
360
|
// B has NO onDelivery — drain triggers markRead
|
|
340
361
|
const b = new MeshStore(port);
|
|
341
362
|
await wireTestTransport(b);
|
|
@@ -348,21 +369,21 @@ async function testReadReceiptDrain() {
|
|
|
348
369
|
visibility: "visible",
|
|
349
370
|
tags: [],
|
|
350
371
|
});
|
|
351
|
-
await sleep(
|
|
372
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
352
373
|
const room = await a.createRoom({
|
|
353
374
|
name: `read-drain-${String(port)}`,
|
|
354
375
|
type: "public",
|
|
355
376
|
owner: a.peerId,
|
|
356
377
|
description: "Read receipt drain test",
|
|
357
378
|
});
|
|
358
|
-
await sleep(
|
|
379
|
+
await sleep(ROOM_CREATE_SETTLE_MS);
|
|
359
380
|
await joinAndAccept(a, b, room.id);
|
|
360
381
|
deliveriesA.length = 0;
|
|
361
382
|
await a.sendRoomMessage(room.id, a.peerId, "Drain then read");
|
|
362
|
-
await sleep(
|
|
383
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
363
384
|
const drained = await b.drainDelivery(b.peerId);
|
|
364
385
|
assert.ok(drained.length >= 1, "Drain should return the message");
|
|
365
|
-
await sleep(
|
|
386
|
+
await sleep(MESH_PROPAGATION_SETTLE_MS);
|
|
366
387
|
const readReceipt = deliveriesA.find((ev) => ev.type === "delivery_status" && ev.status === "read");
|
|
367
388
|
assert.ok(readReceipt !== undefined, "A should receive a read receipt after drain");
|
|
368
389
|
await cleanup(a, b);
|
|
@@ -383,7 +404,7 @@ async function testReadbyArray() {
|
|
|
383
404
|
visibility: "visible",
|
|
384
405
|
tags: [],
|
|
385
406
|
});
|
|
386
|
-
await sleep(
|
|
407
|
+
await sleep(REGISTER_SETTLE_MS);
|
|
387
408
|
const b = new MeshStore(port);
|
|
388
409
|
await wireTestTransport(b);
|
|
389
410
|
b.onDelivery = () => {
|
|
@@ -398,17 +419,17 @@ async function testReadbyArray() {
|
|
|
398
419
|
visibility: "visible",
|
|
399
420
|
tags: [],
|
|
400
421
|
});
|
|
401
|
-
await sleep(
|
|
422
|
+
await sleep(PEER_SYNC_SETTLE_MS);
|
|
402
423
|
const room = await a.createRoom({
|
|
403
424
|
name: `readby-${String(port)}`,
|
|
404
425
|
type: "public",
|
|
405
426
|
owner: a.peerId,
|
|
406
427
|
description: "readBy test",
|
|
407
428
|
});
|
|
408
|
-
await sleep(
|
|
429
|
+
await sleep(ROOM_CREATE_SETTLE_MS);
|
|
409
430
|
await joinAndAccept(a, b, room.id);
|
|
410
431
|
const msg = await a.sendRoomMessage(room.id, a.peerId, "Check readBy");
|
|
411
|
-
await sleep(
|
|
432
|
+
await sleep(READBY_SETTLE_MS);
|
|
412
433
|
const messages = await a.readRoomMessages(room.id);
|
|
413
434
|
const sent = messages.find((m) => m.id === msg.id);
|
|
414
435
|
assert.ok(sent !== undefined, "Should find the sent message");
|
|
@@ -445,7 +466,9 @@ fn()
|
|
|
445
466
|
._getActiveHandles ?? (() => []);
|
|
446
467
|
const handles = getHandles();
|
|
447
468
|
while (handles.length > 0 && Date.now() - start < maxWait) {
|
|
448
|
-
await new Promise((resolve) =>
|
|
469
|
+
await new Promise((resolve) => {
|
|
470
|
+
setTimeout(resolve, POLL_INTERVAL_MS);
|
|
471
|
+
});
|
|
449
472
|
}
|
|
450
473
|
process.exit(0);
|
|
451
474
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-receipt.helper.js","sourceRoot":"","sources":["../../src/test/delivery-receipt.helper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delivery-receipt.helper.js","sourceRoot":"","sources":["../../src/test/delivery-receipt.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,27 @@ import { wireTestTransport } from "./test-transport.js";
|
|
|
19
19
|
// Use high ports to avoid collisions with real meshes
|
|
20
20
|
const MESH_A_PORT = 28876;
|
|
21
21
|
const MESH_B_PORT = 28877;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Timing constants — settle windows for asynchronous mesh/federation propagation. There is no "operation complete" signal for these steps, so the test waits a fixed budget rather than polling.
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
/** Milliseconds to wait after a mesh-setup step (creating a mesh, starting the federation listener) for local state to settle. */
|
|
26
|
+
const MESH_SETUP_SETTLE_MS = 100;
|
|
27
|
+
/** Milliseconds to wait for a freshly established federation link to settle before exercising it. */
|
|
28
|
+
const FED_LINK_SETTLE_MS = 200;
|
|
29
|
+
/** Milliseconds to wait for a federated room (or a join against its mirror) to propagate across the federation link. */
|
|
30
|
+
const FED_ROOM_SETTLE_MS = 200;
|
|
31
|
+
/** Milliseconds to wait for a room message to propagate across an established federation link. */
|
|
32
|
+
const FED_MESSAGE_PROPAGATION_MS = 500;
|
|
33
|
+
/** Milliseconds to wait for a non-federated (local-only) room to settle after creation. */
|
|
34
|
+
const LOCAL_ROOM_SETTLE_MS = 100;
|
|
35
|
+
/** Milliseconds to wait for a local-only message to settle, confirming it does not leak across federation. */
|
|
36
|
+
const LOCAL_MESSAGE_SETTLE_MS = 100;
|
|
37
|
+
/** Milliseconds to wait for a federation link disconnect to propagate. */
|
|
38
|
+
const FED_DISCONNECT_SETTLE_MS = 200;
|
|
39
|
+
async function sleep(ms) {
|
|
40
|
+
await new Promise((resolve) => {
|
|
41
|
+
setTimeout(resolve, ms);
|
|
42
|
+
});
|
|
24
43
|
}
|
|
25
44
|
// ---------------------------------------------------------------------------
|
|
26
45
|
// Helpers
|
|
@@ -44,8 +63,8 @@ async function createMesh(name, coordinatorPort) {
|
|
|
44
63
|
return { store, deliveries };
|
|
45
64
|
}
|
|
46
65
|
/** Find a free port on localhost. */
|
|
47
|
-
function findFreePort() {
|
|
48
|
-
return new Promise((resolve, reject) => {
|
|
66
|
+
async function findFreePort() {
|
|
67
|
+
return await new Promise((resolve, reject) => {
|
|
49
68
|
const server = net.createServer();
|
|
50
69
|
server.listen(0, "127.0.0.1", () => {
|
|
51
70
|
const addr = server.address();
|
|
@@ -67,15 +86,15 @@ async function main() {
|
|
|
67
86
|
console.log("=== Federation Integration Tests ===\n");
|
|
68
87
|
console.log("Creating mesh A (coordinator)...");
|
|
69
88
|
const a = await createMesh("mesh-a-agent", MESH_A_PORT);
|
|
70
|
-
await sleep(
|
|
89
|
+
await sleep(MESH_SETUP_SETTLE_MS);
|
|
71
90
|
console.log("Creating mesh B (coordinator)...");
|
|
72
91
|
const b = await createMesh("mesh-b-agent", MESH_B_PORT);
|
|
73
|
-
await sleep(
|
|
92
|
+
await sleep(MESH_SETUP_SETTLE_MS);
|
|
74
93
|
const fedPort = await findFreePort();
|
|
75
94
|
console.log(`Using federation port ${String(fedPort)}`);
|
|
76
95
|
// Start A's real production federation listener (fedListen -> FederationManager.listen -> handleInbound, the same path a deployed coordinator uses — not a hand-rolled test-only TLS server).
|
|
77
96
|
await a.store.fedListen("127.0.0.1", fedPort);
|
|
78
|
-
await sleep(
|
|
97
|
+
await sleep(MESH_SETUP_SETTLE_MS);
|
|
79
98
|
// --- Test 0: untrusted inbound connection is rejected ---
|
|
80
99
|
console.log("\nTest 0: untrusted connection is rejected...");
|
|
81
100
|
await expect(b.store.fedConnect("127.0.0.1", fedPort), "Connecting before either side has pinned the other's fingerprint should be rejected").rejects.toThrow(/rejected|not in the trusted-fingerprint allowlist/i);
|
|
@@ -103,7 +122,7 @@ async function main() {
|
|
|
103
122
|
if (link === undefined)
|
|
104
123
|
throw new Error("Link should exist");
|
|
105
124
|
expect(link.remoteMeshId.length > 0, "Remote mesh ID should be present").toBeTruthy();
|
|
106
|
-
await sleep(
|
|
125
|
+
await sleep(FED_LINK_SETTLE_MS);
|
|
107
126
|
// --- Test 2: Agent presence propagates ---
|
|
108
127
|
console.log("Test 2: Agent presence propagates...");
|
|
109
128
|
const agentsB = await b.store.listAgents(b.store.peerId);
|
|
@@ -125,7 +144,7 @@ async function main() {
|
|
|
125
144
|
federated: true,
|
|
126
145
|
});
|
|
127
146
|
console.log(` Created federated room: ${fedRoom.id}`);
|
|
128
|
-
await sleep(
|
|
147
|
+
await sleep(FED_ROOM_SETTLE_MS);
|
|
129
148
|
// Federation matches a room across the two separate meshes by literal id equality (handleFedRoomMessage/Join/Leave all key off the incoming roomId string directly) -- an owner-rooted path only coincides on both sides when both sides construct it from the same owner, so B's mirror of A's room is created with A's own peerId as owner, not B's.
|
|
130
149
|
const fedRoomB = await b.store.createRoom({
|
|
131
150
|
name: fedRoomId,
|
|
@@ -137,12 +156,12 @@ async function main() {
|
|
|
137
156
|
console.log(` Created matching federated room on B: ${fedRoomB.id}`);
|
|
138
157
|
// createRoom's default members is [owner] -- since owner is A's peerId (to make the id match), B's own local agent must explicitly join its mirror for handleFedRoomMessage's local-delivery loop to reach it.
|
|
139
158
|
await b.store.joinRoom(fedRoomB.id, b.store.peerId);
|
|
140
|
-
await sleep(
|
|
159
|
+
await sleep(FED_ROOM_SETTLE_MS);
|
|
141
160
|
a.deliveries.length = 0;
|
|
142
161
|
b.deliveries.length = 0;
|
|
143
162
|
const msg = await a.store.sendRoomMessage(fedRoom.id, a.store.peerId, "Hello from mesh A!");
|
|
144
163
|
console.log(` A sent: "${msg.content}"`);
|
|
145
|
-
await sleep(
|
|
164
|
+
await sleep(FED_MESSAGE_PROPAGATION_MS);
|
|
146
165
|
const fedMsgs = b.deliveries.filter((e) => e.type === "room_message" && e.message.content === "Hello from mesh A!");
|
|
147
166
|
console.log(` B received ${String(fedMsgs.length)} federated message(s)`);
|
|
148
167
|
expect(fedMsgs.length >= 1, "B should receive the federated room message").toBeTruthy();
|
|
@@ -158,12 +177,12 @@ async function main() {
|
|
|
158
177
|
// federated defaults to false
|
|
159
178
|
});
|
|
160
179
|
console.log(` Created non-federated room: ${localRoom.id}, federated=${String(localRoom.federated)}`);
|
|
161
|
-
await sleep(
|
|
180
|
+
await sleep(LOCAL_ROOM_SETTLE_MS);
|
|
162
181
|
b.deliveries.length = 0;
|
|
163
182
|
console.log(" Sending message in non-federated room...");
|
|
164
183
|
await a.store.sendRoomMessage(localRoom.id, a.store.peerId, "Secret local message");
|
|
165
184
|
console.log(" Message sent.");
|
|
166
|
-
await sleep(
|
|
185
|
+
await sleep(LOCAL_MESSAGE_SETTLE_MS);
|
|
167
186
|
const leakedMsgs = b.deliveries.filter((e) => e.type === "room_message" && e.message.content === "Secret local message");
|
|
168
187
|
console.log(` B received ${String(leakedMsgs.length)} leaked message(s)`);
|
|
169
188
|
expect(leakedMsgs.length, "B should NOT receive non-federated room messages").toBe(0);
|
|
@@ -175,7 +194,7 @@ async function main() {
|
|
|
175
194
|
// --- Test 6: Disconnect federation link ---
|
|
176
195
|
console.log("Test 6: Disconnect federation link...");
|
|
177
196
|
await b.store.fedDisconnect(linkId);
|
|
178
|
-
await sleep(
|
|
197
|
+
await sleep(FED_DISCONNECT_SETTLE_MS);
|
|
179
198
|
const linksAfter = b.store.fedLinks();
|
|
180
199
|
expect(linksAfter.length, "B should have 0 federation links after disconnect").toBe(0);
|
|
181
200
|
// --- Cleanup ---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation.integration.test.js","sourceRoot":"","sources":["../../src/test/federation.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,sDAAsD;AACtD,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,
|
|
1
|
+
{"version":3,"file":"federation.integration.test.js","sourceRoot":"","sources":["../../src/test/federation.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,12 +77,18 @@ describe("ConnectionHandshake", () => {
|
|
|
77
77
|
});
|
|
78
78
|
it("refuses undecodable leading bytes that are neither CBOR maps nor JSON", () => {
|
|
79
79
|
const gate = new ConnectionHandshake("server");
|
|
80
|
-
|
|
80
|
+
/** Lead byte that is neither a valid CBOR map head nor a JSON opening brace. */
|
|
81
|
+
const UNDECODABLE_LEAD_BYTE = 0xff;
|
|
82
|
+
const outcome = gate.feed(Buffer.from([UNDECODABLE_LEAD_BYTE, 0x00, 0x01]));
|
|
81
83
|
expect(outcome.kind).toBe("refused");
|
|
82
84
|
});
|
|
83
85
|
it("refuses a binary blob far beyond any handshake frame size", () => {
|
|
84
86
|
const gate = new ConnectionHandshake("server");
|
|
85
|
-
|
|
87
|
+
/** Length of the oversized test blob, comfortably beyond any real handshake frame. */
|
|
88
|
+
const OVERSIZED_BLOB_LENGTH = 2048;
|
|
89
|
+
/** ASCII 'a' — neither a CBOR map head nor a JSON opening brace. */
|
|
90
|
+
const ASCII_LOWERCASE_A = 0x61;
|
|
91
|
+
const big = Buffer.alloc(OVERSIZED_BLOB_LENGTH, ASCII_LOWERCASE_A);
|
|
86
92
|
expect(gate.feed(big).kind).toBe("refused");
|
|
87
93
|
});
|
|
88
94
|
});
|
|
@@ -116,7 +122,9 @@ describe("normaliseWireState (#31 direction 2)", () => {
|
|
|
116
122
|
describe("ConnectionHandshake over a real socket pair", () => {
|
|
117
123
|
it("client sends frame first; both sides reach negotiated", async () => {
|
|
118
124
|
const server = net.createServer();
|
|
119
|
-
await new Promise((resolve) =>
|
|
125
|
+
await new Promise((resolve) => {
|
|
126
|
+
server.listen(0, "127.0.0.1", resolve);
|
|
127
|
+
});
|
|
120
128
|
const port = server.address().port;
|
|
121
129
|
const serverOutcome = new Promise((resolve) => {
|
|
122
130
|
server.on("connection", (socket) => {
|
|
@@ -149,7 +157,9 @@ describe("ConnectionHandshake over a real socket pair", () => {
|
|
|
149
157
|
});
|
|
150
158
|
it("a legacy peer (no handshake frame) is tolerated: JSON bytes pass straight through both sides", async () => {
|
|
151
159
|
const server = net.createServer();
|
|
152
|
-
await new Promise((resolve) =>
|
|
160
|
+
await new Promise((resolve) => {
|
|
161
|
+
server.listen(0, "127.0.0.1", resolve);
|
|
162
|
+
});
|
|
153
163
|
const port = server.address().port;
|
|
154
164
|
const serverReceived = new Promise((resolve, reject) => {
|
|
155
165
|
server.on("connection", (socket) => {
|
|
@@ -158,7 +168,9 @@ describe("ConnectionHandshake over a real socket pair", () => {
|
|
|
158
168
|
});
|
|
159
169
|
// A pre-#31 peer: writes its JSON line directly, sends no handshake frame at all.
|
|
160
170
|
const client = net.createConnection({ port, host: "127.0.0.1" });
|
|
161
|
-
await new Promise((resolve) =>
|
|
171
|
+
await new Promise((resolve) => {
|
|
172
|
+
client.on("connect", resolve);
|
|
173
|
+
});
|
|
162
174
|
client.write('{"method":"introduce"}\n');
|
|
163
175
|
expect(await serverReceived).toMatch(/introduce/);
|
|
164
176
|
client.destroy();
|
|
@@ -166,7 +178,9 @@ describe("ConnectionHandshake over a real socket pair", () => {
|
|
|
166
178
|
});
|
|
167
179
|
it("an incompatible handshake (no shared domain) is refused loudly: the connection is destroyed rather than desynced", async () => {
|
|
168
180
|
const server = net.createServer();
|
|
169
|
-
await new Promise((resolve) =>
|
|
181
|
+
await new Promise((resolve) => {
|
|
182
|
+
server.listen(0, "127.0.0.1", resolve);
|
|
183
|
+
});
|
|
170
184
|
const port = server.address().port;
|
|
171
185
|
const serverError = new Promise((resolve) => {
|
|
172
186
|
server.on("connection", (socket) => {
|
|
@@ -176,7 +190,9 @@ describe("ConnectionHandshake over a real socket pair", () => {
|
|
|
176
190
|
});
|
|
177
191
|
});
|
|
178
192
|
const client = net.createConnection({ port, host: "127.0.0.1" });
|
|
179
|
-
await new Promise((resolve) =>
|
|
193
|
+
await new Promise((resolve) => {
|
|
194
|
+
client.on("connect", resolve);
|
|
195
|
+
});
|
|
180
196
|
const foreignFrame = cborEncode({
|
|
181
197
|
type: "handshake",
|
|
182
198
|
version: MESH_PROTOCOL_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handshake.test.js","sourceRoot":"","sources":["../../src/test/handshake.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handshake.test.js","sourceRoot":"","sources":["../../src/test/handshake.test.ts"],"names":[],"mappings":"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"}
|