@libp2p/interface-compliance-tests 1.1.3 → 1.1.7
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/dist/src/{utils/mock-connection-gater.d.ts → mocks/connection-gater.d.ts} +1 -1
- package/dist/src/mocks/connection-gater.d.ts.map +1 -0
- package/dist/src/{utils/mock-connection-gater.js → mocks/connection-gater.js} +1 -1
- package/dist/src/mocks/connection-gater.js.map +1 -0
- package/dist/src/{utils/mock-connection-manager.d.ts → mocks/connection-manager.d.ts} +1 -1
- package/dist/src/mocks/connection-manager.d.ts.map +1 -0
- package/dist/src/{utils/mock-connection-manager.js → mocks/connection-manager.js} +1 -1
- package/dist/src/mocks/connection-manager.js.map +1 -0
- package/dist/src/mocks/connection.d.ts +9 -0
- package/dist/src/mocks/connection.d.ts.map +1 -0
- package/dist/src/mocks/connection.js +91 -0
- package/dist/src/mocks/connection.js.map +1 -0
- package/dist/src/mocks/index.d.ts +9 -0
- package/dist/src/mocks/index.d.ts.map +1 -0
- package/dist/src/mocks/index.js +8 -0
- package/dist/src/mocks/index.js.map +1 -0
- package/dist/src/{utils/mock-multiaddr-connection.d.ts → mocks/multiaddr-connection.d.ts} +2 -2
- package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -0
- package/dist/src/{utils/mock-multiaddr-connection.js → mocks/multiaddr-connection.js} +3 -3
- package/dist/src/mocks/multiaddr-connection.js.map +1 -0
- package/dist/src/mocks/muxer.d.ts +3 -0
- package/dist/src/mocks/muxer.d.ts.map +1 -0
- package/dist/src/mocks/muxer.js +186 -0
- package/dist/src/mocks/muxer.js.map +1 -0
- package/dist/src/mocks/registrar.d.ts +14 -0
- package/dist/src/mocks/registrar.d.ts.map +1 -0
- package/dist/src/mocks/registrar.js +59 -0
- package/dist/src/mocks/registrar.js.map +1 -0
- package/dist/src/{utils/mock-upgrader.d.ts → mocks/upgrader.d.ts} +1 -1
- package/dist/src/mocks/upgrader.d.ts.map +1 -0
- package/dist/src/{utils/mock-upgrader.js → mocks/upgrader.js} +4 -6
- package/dist/src/mocks/upgrader.js.map +1 -0
- package/dist/src/stream-muxer/base-test.js +1 -1
- package/dist/src/stream-muxer/base-test.js.map +1 -1
- package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
- package/dist/src/stream-muxer/close-test.js +7 -8
- package/dist/src/stream-muxer/close-test.js.map +1 -1
- package/dist/src/topology/topology.d.ts.map +1 -1
- package/dist/src/topology/topology.js +1 -10
- package/dist/src/topology/topology.js.map +1 -1
- package/dist/src/transport/dial-test.d.ts.map +1 -1
- package/dist/src/transport/dial-test.js +2 -1
- package/dist/src/transport/dial-test.js.map +1 -1
- package/dist/src/transport/filter-test.js +1 -1
- package/dist/src/transport/filter-test.js.map +1 -1
- package/dist/src/transport/listen-test.d.ts.map +1 -1
- package/dist/src/transport/listen-test.js +2 -1
- package/dist/src/transport/listen-test.js.map +1 -1
- package/dist/src/utils/is-valid-tick.d.ts +6 -0
- package/dist/src/utils/is-valid-tick.d.ts.map +1 -0
- package/dist/src/utils/is-valid-tick.js +15 -0
- package/dist/src/utils/is-valid-tick.js.map +1 -0
- package/package.json +5 -32
- package/src/{utils/mock-connection-gater.ts → mocks/connection-gater.ts} +0 -0
- package/src/{utils/mock-connection-manager.ts → mocks/connection-manager.ts} +0 -0
- package/src/mocks/connection.ts +108 -0
- package/src/mocks/index.ts +9 -0
- package/src/{utils/mock-multiaddr-connection.ts → mocks/multiaddr-connection.ts} +3 -3
- package/src/mocks/muxer.ts +245 -0
- package/src/mocks/registrar.ts +77 -0
- package/src/{utils/mock-upgrader.ts → mocks/upgrader.ts} +3 -6
- package/src/stream-muxer/base-test.ts +1 -1
- package/src/stream-muxer/close-test.ts +8 -10
- package/src/topology/topology.ts +1 -14
- package/src/transport/dial-test.ts +2 -1
- package/src/transport/filter-test.ts +1 -1
- package/src/transport/listen-test.ts +2 -1
- package/src/utils/is-valid-tick.ts +18 -0
- package/dist/src/topology/multicodec-topology.d.ts +0 -5
- package/dist/src/topology/multicodec-topology.d.ts.map +0 -1
- package/dist/src/topology/multicodec-topology.js +0 -109
- package/dist/src/topology/multicodec-topology.js.map +0 -1
- package/dist/src/transport/utils/index.d.ts +0 -15
- package/dist/src/transport/utils/index.d.ts.map +0 -1
- package/dist/src/transport/utils/index.js +0 -137
- package/dist/src/transport/utils/index.js.map +0 -1
- package/dist/src/utils/mock-connection-gater.d.ts.map +0 -1
- package/dist/src/utils/mock-connection-gater.js.map +0 -1
- package/dist/src/utils/mock-connection-manager.d.ts.map +0 -1
- package/dist/src/utils/mock-connection-manager.js.map +0 -1
- package/dist/src/utils/mock-connection.d.ts +0 -5
- package/dist/src/utils/mock-connection.d.ts.map +0 -1
- package/dist/src/utils/mock-connection.js +0 -52
- package/dist/src/utils/mock-connection.js.map +0 -1
- package/dist/src/utils/mock-multiaddr-connection.d.ts.map +0 -1
- package/dist/src/utils/mock-multiaddr-connection.js.map +0 -1
- package/dist/src/utils/mock-muxer.d.ts +0 -3
- package/dist/src/utils/mock-muxer.d.ts.map +0 -1
- package/dist/src/utils/mock-muxer.js +0 -37
- package/dist/src/utils/mock-muxer.js.map +0 -1
- package/dist/src/utils/mock-registrar.d.ts +0 -12
- package/dist/src/utils/mock-registrar.d.ts.map +0 -1
- package/dist/src/utils/mock-registrar.js +0 -27
- package/dist/src/utils/mock-registrar.js.map +0 -1
- package/dist/src/utils/mock-upgrader.d.ts.map +0 -1
- package/dist/src/utils/mock-upgrader.js.map +0 -1
- package/src/topology/multicodec-topology.ts +0 -136
- package/src/transport/utils/index.ts +0 -172
- package/src/utils/mock-connection.ts +0 -66
- package/src/utils/mock-muxer.ts +0 -43
- package/src/utils/mock-registrar.ts +0 -35
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { expect } from 'aegir/utils/chai.js';
|
|
2
|
-
import { pair } from 'it-pair';
|
|
3
|
-
import { PeerId } from '@libp2p/peer-id';
|
|
4
|
-
import * as PeerIdFactory from '@libp2p/peer-id-factory';
|
|
5
|
-
import { pushable } from 'it-pushable';
|
|
6
|
-
import drain from 'it-drain';
|
|
7
|
-
import { Multiaddr } from '@multiformats/multiaddr';
|
|
8
|
-
import { pipe } from 'it-pipe';
|
|
9
|
-
/**
|
|
10
|
-
* A tick is considered valid if it happened between now
|
|
11
|
-
* and `ms` milliseconds ago
|
|
12
|
-
*/
|
|
13
|
-
export function isValidTick(date, ms = 5000) {
|
|
14
|
-
if (date == null) {
|
|
15
|
-
throw new Error('date must be a number');
|
|
16
|
-
}
|
|
17
|
-
const now = Date.now();
|
|
18
|
-
if (date > now - ms && date <= now) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
export function mockMultiaddrConnection(source) {
|
|
24
|
-
const maConn = {
|
|
25
|
-
...source,
|
|
26
|
-
async close() {
|
|
27
|
-
},
|
|
28
|
-
timeline: {
|
|
29
|
-
open: Date.now()
|
|
30
|
-
},
|
|
31
|
-
remoteAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4001')
|
|
32
|
-
};
|
|
33
|
-
return maConn;
|
|
34
|
-
}
|
|
35
|
-
export function mockMuxer() {
|
|
36
|
-
let streamId = 0;
|
|
37
|
-
let streams = [];
|
|
38
|
-
const p = pushable();
|
|
39
|
-
const muxer = {
|
|
40
|
-
source: p,
|
|
41
|
-
sink: async (source) => {
|
|
42
|
-
await drain(source);
|
|
43
|
-
},
|
|
44
|
-
get streams() {
|
|
45
|
-
return streams;
|
|
46
|
-
},
|
|
47
|
-
newStream: (name) => {
|
|
48
|
-
const echo = pair();
|
|
49
|
-
const id = `${streamId++}`;
|
|
50
|
-
const stream = {
|
|
51
|
-
id,
|
|
52
|
-
sink: echo.sink,
|
|
53
|
-
source: echo.source,
|
|
54
|
-
close: () => {
|
|
55
|
-
streams = streams.filter(s => s !== stream);
|
|
56
|
-
},
|
|
57
|
-
abort: () => { },
|
|
58
|
-
reset: () => { },
|
|
59
|
-
timeline: {
|
|
60
|
-
open: 0
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
return stream;
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
return muxer;
|
|
67
|
-
}
|
|
68
|
-
export function mockUpgrader(options = {}) {
|
|
69
|
-
const ensureProps = (multiaddrConnection) => {
|
|
70
|
-
['sink', 'source', 'remoteAddr', 'timeline', 'close'].forEach(prop => {
|
|
71
|
-
expect(multiaddrConnection).to.have.property(prop);
|
|
72
|
-
});
|
|
73
|
-
expect(isValidTick(multiaddrConnection.timeline.open)).to.equal(true);
|
|
74
|
-
return multiaddrConnection;
|
|
75
|
-
};
|
|
76
|
-
const muxer = options.muxer ?? mockMuxer();
|
|
77
|
-
const upgrader = {
|
|
78
|
-
async upgradeOutbound(multiaddrConnection) {
|
|
79
|
-
ensureProps(multiaddrConnection);
|
|
80
|
-
return await createConnection(multiaddrConnection, 'outbound', muxer);
|
|
81
|
-
},
|
|
82
|
-
async upgradeInbound(multiaddrConnection) {
|
|
83
|
-
ensureProps(multiaddrConnection);
|
|
84
|
-
return await createConnection(multiaddrConnection, 'inbound', muxer);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
return upgrader;
|
|
88
|
-
}
|
|
89
|
-
async function createConnection(maConn, direction, muxer) {
|
|
90
|
-
const remoteAddr = maConn.remoteAddr;
|
|
91
|
-
const remotePeerIdStr = remoteAddr.getPeerId();
|
|
92
|
-
const remotePeer = remotePeerIdStr != null ? PeerId.fromString(remotePeerIdStr) : await PeerIdFactory.createEd25519PeerId();
|
|
93
|
-
const streams = [];
|
|
94
|
-
let streamId = 0;
|
|
95
|
-
const registry = new Map();
|
|
96
|
-
void pipe(maConn, muxer, maConn);
|
|
97
|
-
return {
|
|
98
|
-
id: 'mock-connection',
|
|
99
|
-
remoteAddr,
|
|
100
|
-
remotePeer,
|
|
101
|
-
stat: {
|
|
102
|
-
status: 'OPEN',
|
|
103
|
-
direction,
|
|
104
|
-
timeline: maConn.timeline,
|
|
105
|
-
multiplexer: 'test-multiplexer',
|
|
106
|
-
encryption: 'yes-yes-very-secure'
|
|
107
|
-
},
|
|
108
|
-
registry,
|
|
109
|
-
tags: [],
|
|
110
|
-
streams,
|
|
111
|
-
newStream: async (protocols) => {
|
|
112
|
-
if (!Array.isArray(protocols)) {
|
|
113
|
-
protocols = [protocols];
|
|
114
|
-
}
|
|
115
|
-
if (protocols.length === 0) {
|
|
116
|
-
throw new Error('protocols must have a length');
|
|
117
|
-
}
|
|
118
|
-
const id = `${streamId++}`;
|
|
119
|
-
const stream = muxer.newStream(id);
|
|
120
|
-
const streamData = {
|
|
121
|
-
protocol: protocols[0],
|
|
122
|
-
stream
|
|
123
|
-
};
|
|
124
|
-
registry.set(id, streamData);
|
|
125
|
-
return streamData;
|
|
126
|
-
},
|
|
127
|
-
addStream: (stream, metadata) => {
|
|
128
|
-
},
|
|
129
|
-
removeStream: (id) => {
|
|
130
|
-
registry.delete(id);
|
|
131
|
-
},
|
|
132
|
-
close: async () => {
|
|
133
|
-
await maConn.close();
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transport/utils/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection-gater.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-connection-gater.ts"],"names":[],"mappings":"AACA,wBAAgB,mBAAmB;;;;;;;;;;EAYlC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection-gater.js","sourceRoot":"","sources":["../../../src/utils/mock-connection-gater.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACtD,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3D,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/D,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,8BAA8B,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACxE,+BAA+B,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,6BAA6B,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACvE,8BAA8B,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACxE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;KAChE,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAElG,cAAM,qBAAsB,SAAQ,YAAY,CAAC,uBAAuB,CAAE,YAAW,iBAAiB;IACpG,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAItD,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC,gBAAgB,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAIjO,mBAAmB,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAI/O,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAGtC;AAED,wBAAgB,qBAAqB,0BAEpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection-manager.js","sourceRoot":"","sources":["../../../src/utils/mock-connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKjD,MAAM,qBAAsB,SAAQ,YAAqC;IACvE,aAAa,CAAE,MAAc;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,IAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB,CAA2B,IAAO,EAAE,QAAyH,EAAE,OAA2C;QACxN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,mBAAmB,CAA2B,IAAO,EAAE,QAAuI,EAAE,OAAwC;QACtO,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,KAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,qBAAqB,EAAE,CAAA;AACpC,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { MultiaddrConnection } from '@libp2p/interfaces/transport';
|
|
2
|
-
import type { Connection } from '@libp2p/interfaces/connection';
|
|
3
|
-
import type { Muxer } from '@libp2p/interfaces/stream-muxer';
|
|
4
|
-
export declare function mockConnection(maConn: MultiaddrConnection, direction: 'inbound' | 'outbound', muxer: Muxer): Promise<Connection>;
|
|
5
|
-
//# sourceMappingURL=mock-connection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-connection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAoC,MAAM,+BAA+B,CAAA;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAE5D,wBAAsB,cAAc,CAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CA0DvI"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { PeerId } from '@libp2p/peer-id';
|
|
2
|
-
import { createEd25519PeerId } from '@libp2p/peer-id-factory';
|
|
3
|
-
import { pipe } from 'it-pipe';
|
|
4
|
-
export async function mockConnection(maConn, direction, muxer) {
|
|
5
|
-
const remoteAddr = maConn.remoteAddr;
|
|
6
|
-
const remotePeerIdStr = remoteAddr.getPeerId();
|
|
7
|
-
const remotePeer = remotePeerIdStr != null ? PeerId.fromString(remotePeerIdStr) : await createEd25519PeerId();
|
|
8
|
-
const streams = [];
|
|
9
|
-
let streamId = 0;
|
|
10
|
-
const registry = new Map();
|
|
11
|
-
void pipe(maConn, muxer, maConn);
|
|
12
|
-
return {
|
|
13
|
-
id: 'mock-connection',
|
|
14
|
-
remoteAddr,
|
|
15
|
-
remotePeer,
|
|
16
|
-
stat: {
|
|
17
|
-
status: 'OPEN',
|
|
18
|
-
direction,
|
|
19
|
-
timeline: maConn.timeline,
|
|
20
|
-
multiplexer: 'test-multiplexer',
|
|
21
|
-
encryption: 'yes-yes-very-secure'
|
|
22
|
-
},
|
|
23
|
-
registry,
|
|
24
|
-
tags: [],
|
|
25
|
-
streams,
|
|
26
|
-
newStream: async (protocols) => {
|
|
27
|
-
if (!Array.isArray(protocols)) {
|
|
28
|
-
protocols = [protocols];
|
|
29
|
-
}
|
|
30
|
-
if (protocols.length === 0) {
|
|
31
|
-
throw new Error('protocols must have a length');
|
|
32
|
-
}
|
|
33
|
-
const id = `${streamId++}`;
|
|
34
|
-
const stream = muxer.newStream(id);
|
|
35
|
-
const streamData = {
|
|
36
|
-
protocol: protocols[0],
|
|
37
|
-
stream
|
|
38
|
-
};
|
|
39
|
-
registry.set(id, streamData);
|
|
40
|
-
return streamData;
|
|
41
|
-
},
|
|
42
|
-
addStream: (stream, metadata) => {
|
|
43
|
-
},
|
|
44
|
-
removeStream: (id) => {
|
|
45
|
-
registry.delete(id);
|
|
46
|
-
},
|
|
47
|
-
close: async () => {
|
|
48
|
-
await maConn.close();
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=mock-connection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-connection.js","sourceRoot":"","sources":["../../../src/utils/mock-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAK9B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,MAA2B,EAAE,SAAiC,EAAE,KAAY;IAChH,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACpC,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,CAAA;IAC9C,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,mBAAmB,EAAE,CAAA;IAE7G,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;IAE1B,KAAK,IAAI,CACP,MAAM,EAAE,KAAK,EAAE,MAAM,CACtB,CAAA;IAED,OAAO;QACL,EAAE,EAAE,iBAAiB;QACrB,UAAU;QACV,UAAU;QACV,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,qBAAqB;SAClC;QACD,QAAQ;QACR,IAAI,EAAE,EAAE;QACR,OAAO;QACP,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC7B,SAAS,GAAG,CAAC,SAAS,CAAC,CAAA;aACxB;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;aAChD;YAED,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,CAAA;YAC1B,MAAM,MAAM,GAAW,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAC1C,MAAM,UAAU,GAAmB;gBACjC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;gBACtB,MAAM;aACP,CAAA;YAED,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;YAE5B,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,SAAS,EAAE,CAAC,MAAc,EAAE,QAAkB,EAAE,EAAE;QAElD,CAAC;QACD,YAAY,EAAE,CAAC,EAAU,EAAE,EAAE;YAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-multiaddr-connection.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-multiaddr-connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAaxF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-multiaddr-connection.js","sourceRoot":"","sources":["../../../src/utils/mock-multiaddr-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,MAAM,UAAU,uBAAuB,CAAE,MAA0B;IACjE,MAAM,MAAM,GAAwB;QAClC,GAAG,MAAM;QACT,KAAK,CAAC,KAAK;QAEX,CAAC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB;QACD,UAAU,EAAE,IAAI,SAAS,CAAC,yBAAyB,CAAC;KACrD,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-muxer.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-muxer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAE5D,wBAAgB,SAAS,IAAK,KAAK,CAoClC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { pair } from 'it-pair';
|
|
2
|
-
import { pushable } from 'it-pushable';
|
|
3
|
-
import drain from 'it-drain';
|
|
4
|
-
export function mockMuxer() {
|
|
5
|
-
let streamId = 0;
|
|
6
|
-
let streams = [];
|
|
7
|
-
const p = pushable();
|
|
8
|
-
const muxer = {
|
|
9
|
-
source: p,
|
|
10
|
-
sink: async (source) => {
|
|
11
|
-
await drain(source);
|
|
12
|
-
},
|
|
13
|
-
get streams() {
|
|
14
|
-
return streams;
|
|
15
|
-
},
|
|
16
|
-
newStream: (name) => {
|
|
17
|
-
const echo = pair();
|
|
18
|
-
const id = `${streamId++}`;
|
|
19
|
-
const stream = {
|
|
20
|
-
id,
|
|
21
|
-
sink: echo.sink,
|
|
22
|
-
source: echo.source,
|
|
23
|
-
close: () => {
|
|
24
|
-
streams = streams.filter(s => s !== stream);
|
|
25
|
-
},
|
|
26
|
-
abort: () => { },
|
|
27
|
-
reset: () => { },
|
|
28
|
-
timeline: {
|
|
29
|
-
open: 0
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
return stream;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
return muxer;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=mock-muxer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-muxer.js","sourceRoot":"","sources":["../../../src/utils/mock-muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,MAAM,UAAU,CAAA;AAI5B,MAAM,UAAU,SAAS;IACvB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,MAAM,CAAC,GAAG,QAAQ,EAAc,CAAA;IAEhC,MAAM,KAAK,GAAU;QACnB,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;QACD,IAAI,OAAO;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,EAAc,CAAA;YAE/B,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,CAAA;YAC1B,MAAM,MAAM,GAAW;gBACrB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,GAAG,EAAE;oBACV,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;gBAC7C,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;gBACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;gBACf,QAAQ,EAAE;oBACR,IAAI,EAAE,CAAC;iBACR;aACF,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar';
|
|
2
|
-
import type { MulticodecTopology } from '../../../libp2p-topology/src/multicodec-topology';
|
|
3
|
-
export declare class MockRegistrar implements Registrar {
|
|
4
|
-
readonly topologies: Map<string, MulticodecTopology>;
|
|
5
|
-
readonly streamHandlers: Map<string, StreamHandler>;
|
|
6
|
-
handle(multicodecs: string | string[], handler: StreamHandler): Promise<void>;
|
|
7
|
-
unhandle(multicodec: string): Promise<void>;
|
|
8
|
-
register(topology: MulticodecTopology): string;
|
|
9
|
-
unregister(id: string): void;
|
|
10
|
-
}
|
|
11
|
-
export declare function mockRegistrar(): MockRegistrar;
|
|
12
|
-
//# sourceMappingURL=mock-registrar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-registrar.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-registrar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAA;AAE1F,qBAAa,aAAc,YAAW,SAAS;IAC7C,SAAgB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAY;IACvE,SAAgB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAY;IAEhE,MAAM,CAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa;IAQ9D,QAAQ,CAAE,UAAU,EAAE,MAAM;IAIlC,QAAQ,CAAE,QAAQ,EAAE,kBAAkB;IAQtC,UAAU,CAAE,EAAE,EAAE,MAAM;CAGvB;AAED,wBAAgB,aAAa,kBAE5B"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export class MockRegistrar {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.topologies = new Map();
|
|
4
|
-
this.streamHandlers = new Map();
|
|
5
|
-
}
|
|
6
|
-
async handle(multicodecs, handler) {
|
|
7
|
-
if (!Array.isArray(multicodecs)) {
|
|
8
|
-
multicodecs = [multicodecs];
|
|
9
|
-
}
|
|
10
|
-
this.streamHandlers.set(multicodecs[0], handler);
|
|
11
|
-
}
|
|
12
|
-
async unhandle(multicodec) {
|
|
13
|
-
this.streamHandlers.delete(multicodec);
|
|
14
|
-
}
|
|
15
|
-
register(topology) {
|
|
16
|
-
const { multicodecs } = topology;
|
|
17
|
-
this.topologies.set(multicodecs[0], topology);
|
|
18
|
-
return multicodecs[0];
|
|
19
|
-
}
|
|
20
|
-
unregister(id) {
|
|
21
|
-
this.topologies.delete(id);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export function mockRegistrar() {
|
|
25
|
-
return new MockRegistrar();
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=mock-registrar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-registrar.js","sourceRoot":"","sources":["../../../src/utils/mock-registrar.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAA1B;QACkB,eAAU,GAAoC,IAAI,GAAG,EAAE,CAAA;QACvD,mBAAc,GAA+B,IAAI,GAAG,EAAE,CAAA;IAyBxE,CAAC;IAvBC,KAAK,CAAC,MAAM,CAAE,WAA8B,EAAE,OAAsB;QAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC/B,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;SAC5B;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,UAAkB;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAED,QAAQ,CAAE,QAA4B;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAA;QAEhC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QAE7C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,UAAU,CAAE,EAAU;QACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,aAAa,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-upgrader.d.ts","sourceRoot":"","sources":["../../../src/utils/mock-upgrader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAuB,MAAM,8BAA8B,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAE5D,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,wBAAgB,YAAY,CAAE,OAAO,GAAE,mBAAwB,YAsB9D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-upgrader.js","sourceRoot":"","sources":["../../../src/utils/mock-upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQrD,MAAM,UAAU,YAAY,CAAE,UAA+B,EAAE;IAC7D,MAAM,WAAW,GAAG,CAAC,mBAAwC,EAAE,EAAE;QAC/D,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnE,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QACF,OAAO,mBAAmB,CAAA;IAC5B,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE,CAAA;IAE1C,MAAM,QAAQ,GAAa;QACzB,KAAK,CAAC,eAAe,CAAE,mBAAmB;YACxC,WAAW,CAAC,mBAAmB,CAAC,CAAA;YAChC,OAAO,MAAM,cAAc,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;QACrE,CAAC;QACD,KAAK,CAAC,cAAc,CAAE,mBAAmB;YACvC,WAAW,CAAC,mBAAmB,CAAC,CAAA;YAChC,OAAO,MAAM,cAAc,CAAC,mBAAmB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACpE,CAAC;KACF,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { expect } from 'aegir/utils/chai.js'
|
|
2
|
-
import sinon from 'sinon'
|
|
3
|
-
import * as PeerIdFactory from '@libp2p/peer-id-factory'
|
|
4
|
-
import peers from '../utils/peers.js'
|
|
5
|
-
import type { TestSetup } from '../index.js'
|
|
6
|
-
import type { MulticodecTopology } from '@libp2p/interfaces/topology'
|
|
7
|
-
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
8
|
-
|
|
9
|
-
export default (test: TestSetup<MulticodecTopology>) => {
|
|
10
|
-
describe('multicodec topology', () => {
|
|
11
|
-
let topology: MulticodecTopology, id: PeerId
|
|
12
|
-
|
|
13
|
-
beforeEach(async () => {
|
|
14
|
-
topology = await test.setup()
|
|
15
|
-
|
|
16
|
-
id = await PeerIdFactory.createFromJSON(peers[0])
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
afterEach(async () => {
|
|
20
|
-
sinon.restore()
|
|
21
|
-
await test.teardown()
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
it('should have properties set', () => {
|
|
25
|
-
expect(topology.multicodecs).to.exist()
|
|
26
|
-
expect(topology.peers).to.exist()
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
it('should trigger "onDisconnect" on peer disconnected', () => {
|
|
30
|
-
// @ts-expect-error protected property
|
|
31
|
-
sinon.spy(topology, '_onDisconnect')
|
|
32
|
-
topology.disconnect(id)
|
|
33
|
-
|
|
34
|
-
expect(topology).to.have.nested.property('_onDisconnect.callCount', 1)
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
it('should update peers on protocol change', async () => {
|
|
38
|
-
// @ts-expect-error protected property
|
|
39
|
-
sinon.spy(topology, '_updatePeers')
|
|
40
|
-
expect(topology.peers.size).to.eql(0)
|
|
41
|
-
|
|
42
|
-
// @ts-expect-error protected property
|
|
43
|
-
const peerStore = topology._registrar.peerStore
|
|
44
|
-
|
|
45
|
-
const id2 = await PeerIdFactory.createFromJSON(peers[1])
|
|
46
|
-
peerStore.peers.set(id2.toString(), {
|
|
47
|
-
id: id2,
|
|
48
|
-
protocols: Array.from(topology.multicodecs)
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
peerStore.emit('change:protocols', {
|
|
52
|
-
peerId: id2,
|
|
53
|
-
protocols: Array.from(topology.multicodecs)
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
expect(topology).to.have.nested.property('_updatePeers.callCount', 1)
|
|
57
|
-
expect(topology.peers.size).to.eql(1)
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
it('should disconnect if peer no longer supports a protocol', async () => {
|
|
61
|
-
// @ts-expect-error protected property
|
|
62
|
-
sinon.spy(topology, '_onDisconnect')
|
|
63
|
-
expect(topology.peers.size).to.eql(0)
|
|
64
|
-
|
|
65
|
-
// @ts-expect-error protected property
|
|
66
|
-
const peerStore = topology._registrar.peerStore
|
|
67
|
-
|
|
68
|
-
const id2 = await PeerIdFactory.createFromJSON(peers[1])
|
|
69
|
-
peerStore.peers.set(id2.toString(), {
|
|
70
|
-
id: id2,
|
|
71
|
-
protocols: Array.from(topology.multicodecs)
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
peerStore.emit('change:protocols', {
|
|
75
|
-
peerId: id2,
|
|
76
|
-
protocols: Array.from(topology.multicodecs)
|
|
77
|
-
})
|
|
78
|
-
|
|
79
|
-
expect(topology.peers.size).to.eql(1)
|
|
80
|
-
|
|
81
|
-
peerStore.peers.set(id2.toString(), {
|
|
82
|
-
id: id2,
|
|
83
|
-
protocols: []
|
|
84
|
-
})
|
|
85
|
-
// Peer does not support the protocol anymore
|
|
86
|
-
peerStore.emit('change:protocols', {
|
|
87
|
-
peerId: id2,
|
|
88
|
-
protocols: []
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
expect(topology.peers.size).to.eql(1)
|
|
92
|
-
expect(topology).to.have.nested.property('_onDisconnect.callCount', 1)
|
|
93
|
-
// @ts-expect-error protected property
|
|
94
|
-
expect(topology._onDisconnect.calledWith(id2)).to.equal(true)
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
it('should trigger "onConnect" when a peer connects and has one of the topology multicodecs in its known protocols', () => {
|
|
98
|
-
// @ts-expect-error protected property
|
|
99
|
-
sinon.spy(topology, '_onConnect')
|
|
100
|
-
// @ts-expect-error protected property
|
|
101
|
-
sinon.stub(topology._registrar.peerStore.protoBook, 'get').returns(topology.multicodecs)
|
|
102
|
-
// @ts-expect-error protected property
|
|
103
|
-
topology._registrar.connectionManager.emit('peer:connect', {
|
|
104
|
-
remotePeer: id
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
expect(topology).to.have.nested.property('_onConnect.callCount', 1)
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
it('should not trigger "onConnect" when a peer connects and has none of the topology multicodecs in its known protocols', () => {
|
|
111
|
-
// @ts-expect-error protected property
|
|
112
|
-
sinon.spy(topology, '_onConnect')
|
|
113
|
-
// @ts-expect-error protected property
|
|
114
|
-
sinon.stub(topology._registrar.peerStore.protoBook, 'get').returns([])
|
|
115
|
-
// @ts-expect-error protected property
|
|
116
|
-
topology._registrar.connectionManager.emit('peer:connect', {
|
|
117
|
-
remotePeer: id
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
expect(topology).to.have.nested.property('_onConnect.callCount', 0)
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
it('should not trigger "onConnect" when a peer connects and its protocols are not known', () => {
|
|
124
|
-
// @ts-expect-error protected property
|
|
125
|
-
sinon.spy(topology, '_onConnect')
|
|
126
|
-
// @ts-expect-error protected property
|
|
127
|
-
sinon.stub(topology._registrar.peerStore.protoBook, 'get').returns(undefined)
|
|
128
|
-
// @ts-expect-error protected property
|
|
129
|
-
topology._registrar.connectionManager.emit('peer:connect', {
|
|
130
|
-
remotePeer: id
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
expect(topology).to.have.nested.property('_onConnect.callCount', 0)
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { expect } from 'aegir/utils/chai.js'
|
|
2
|
-
import { pair } from 'it-pair'
|
|
3
|
-
import { PeerId } from '@libp2p/peer-id'
|
|
4
|
-
import * as PeerIdFactory from '@libp2p/peer-id-factory'
|
|
5
|
-
import { pushable } from 'it-pushable'
|
|
6
|
-
import drain from 'it-drain'
|
|
7
|
-
import { Multiaddr } from '@multiformats/multiaddr'
|
|
8
|
-
import { pipe } from 'it-pipe'
|
|
9
|
-
import type { Upgrader, MultiaddrConnection } from '@libp2p/interfaces/transport'
|
|
10
|
-
import type { Connection, Stream, Metadata, ProtocolStream } from '@libp2p/interfaces/connection'
|
|
11
|
-
import type { Muxer } from '@libp2p/interfaces/stream-muxer'
|
|
12
|
-
import type { Duplex } from 'it-stream-types'
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* A tick is considered valid if it happened between now
|
|
16
|
-
* and `ms` milliseconds ago
|
|
17
|
-
*/
|
|
18
|
-
export function isValidTick (date?: number, ms: number = 5000) {
|
|
19
|
-
if (date == null) {
|
|
20
|
-
throw new Error('date must be a number')
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const now = Date.now()
|
|
24
|
-
|
|
25
|
-
if (date > now - ms && date <= now) {
|
|
26
|
-
return true
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return false
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function mockMultiaddrConnection (source: Duplex<Uint8Array>): MultiaddrConnection {
|
|
33
|
-
const maConn: MultiaddrConnection = {
|
|
34
|
-
...source,
|
|
35
|
-
async close () {
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
timeline: {
|
|
39
|
-
open: Date.now()
|
|
40
|
-
},
|
|
41
|
-
remoteAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4001')
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return maConn
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export function mockMuxer (): Muxer {
|
|
48
|
-
let streamId = 0
|
|
49
|
-
let streams: Stream[] = []
|
|
50
|
-
const p = pushable<Uint8Array>()
|
|
51
|
-
|
|
52
|
-
const muxer: Muxer = {
|
|
53
|
-
source: p,
|
|
54
|
-
sink: async (source) => {
|
|
55
|
-
await drain(source)
|
|
56
|
-
},
|
|
57
|
-
get streams () {
|
|
58
|
-
return streams
|
|
59
|
-
},
|
|
60
|
-
newStream: (name?: string) => {
|
|
61
|
-
const echo = pair<Uint8Array>()
|
|
62
|
-
|
|
63
|
-
const id = `${streamId++}`
|
|
64
|
-
const stream: Stream = {
|
|
65
|
-
id,
|
|
66
|
-
sink: echo.sink,
|
|
67
|
-
source: echo.source,
|
|
68
|
-
close: () => {
|
|
69
|
-
streams = streams.filter(s => s !== stream)
|
|
70
|
-
},
|
|
71
|
-
abort: () => {},
|
|
72
|
-
reset: () => {},
|
|
73
|
-
timeline: {
|
|
74
|
-
open: 0
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return stream
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return muxer
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface MockUpgraderOptions {
|
|
86
|
-
muxer?: Muxer
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export function mockUpgrader (options: MockUpgraderOptions = {}) {
|
|
90
|
-
const ensureProps = (multiaddrConnection: MultiaddrConnection) => {
|
|
91
|
-
['sink', 'source', 'remoteAddr', 'timeline', 'close'].forEach(prop => {
|
|
92
|
-
expect(multiaddrConnection).to.have.property(prop)
|
|
93
|
-
})
|
|
94
|
-
expect(isValidTick(multiaddrConnection.timeline.open)).to.equal(true)
|
|
95
|
-
return multiaddrConnection
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const muxer = options.muxer ?? mockMuxer()
|
|
99
|
-
|
|
100
|
-
const upgrader: Upgrader = {
|
|
101
|
-
async upgradeOutbound (multiaddrConnection) {
|
|
102
|
-
ensureProps(multiaddrConnection)
|
|
103
|
-
return await createConnection(multiaddrConnection, 'outbound', muxer)
|
|
104
|
-
},
|
|
105
|
-
async upgradeInbound (multiaddrConnection) {
|
|
106
|
-
ensureProps(multiaddrConnection)
|
|
107
|
-
return await createConnection(multiaddrConnection, 'inbound', muxer)
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return upgrader
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
async function createConnection (maConn: MultiaddrConnection, direction: 'inbound' | 'outbound', muxer: Muxer): Promise<Connection> {
|
|
115
|
-
const remoteAddr = maConn.remoteAddr
|
|
116
|
-
const remotePeerIdStr = remoteAddr.getPeerId()
|
|
117
|
-
const remotePeer = remotePeerIdStr != null ? PeerId.fromString(remotePeerIdStr) : await PeerIdFactory.createEd25519PeerId()
|
|
118
|
-
|
|
119
|
-
const streams: Stream[] = []
|
|
120
|
-
let streamId = 0
|
|
121
|
-
|
|
122
|
-
const registry = new Map()
|
|
123
|
-
|
|
124
|
-
void pipe(
|
|
125
|
-
maConn, muxer, maConn
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
return {
|
|
129
|
-
id: 'mock-connection',
|
|
130
|
-
remoteAddr,
|
|
131
|
-
remotePeer,
|
|
132
|
-
stat: {
|
|
133
|
-
status: 'OPEN',
|
|
134
|
-
direction,
|
|
135
|
-
timeline: maConn.timeline,
|
|
136
|
-
multiplexer: 'test-multiplexer',
|
|
137
|
-
encryption: 'yes-yes-very-secure'
|
|
138
|
-
},
|
|
139
|
-
registry,
|
|
140
|
-
tags: [],
|
|
141
|
-
streams,
|
|
142
|
-
newStream: async (protocols) => {
|
|
143
|
-
if (!Array.isArray(protocols)) {
|
|
144
|
-
protocols = [protocols]
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (protocols.length === 0) {
|
|
148
|
-
throw new Error('protocols must have a length')
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const id = `${streamId++}`
|
|
152
|
-
const stream: Stream = muxer.newStream(id)
|
|
153
|
-
const streamData: ProtocolStream = {
|
|
154
|
-
protocol: protocols[0],
|
|
155
|
-
stream
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
registry.set(id, streamData)
|
|
159
|
-
|
|
160
|
-
return streamData
|
|
161
|
-
},
|
|
162
|
-
addStream: (stream: Stream, metadata: Metadata) => {
|
|
163
|
-
|
|
164
|
-
},
|
|
165
|
-
removeStream: (id: string) => {
|
|
166
|
-
registry.delete(id)
|
|
167
|
-
},
|
|
168
|
-
close: async () => {
|
|
169
|
-
await maConn.close()
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|