diff --git a/packages/interface-compliance-tests/src/mocks/connection.ts b/packages/interface-compliance-tests/src/mocks/connection.ts index 566de6d05c..8b1607d2ad 100644 --- a/packages/interface-compliance-tests/src/mocks/connection.ts +++ b/packages/interface-compliance-tests/src/mocks/connection.ts @@ -170,7 +170,13 @@ export function mockConnection (maConn: MultiaddrConnection, opts: MockConnectio return connection } -export function mockStream (stream: Duplex, Source, Promise>): Stream { +export interface StreamInit { + direction?: Direction + protocol?: string + id?: string +} + +export function mockStream (stream: Duplex, Source, Promise>, init: StreamInit = {}): Stream { return { ...stream, close: async () => {}, @@ -186,10 +192,31 @@ export function mockStream (stream: Duplex, Sourc id: `stream-${Date.now()}`, status: 'open', readStatus: 'ready', - writeStatus: 'ready' + writeStatus: 'ready', + ...init } } +export interface StreamPairInit { + duplex: Duplex, Source, Promise> + init?: StreamInit +} + +export function streamPair (a: StreamPairInit, b: StreamPairInit, init: StreamInit = {}): [Stream, Stream] { + return [ + mockStream(a.duplex, { + direction: 'outbound', + ...init, + ...(a.init ?? {}) + }), + mockStream(b.duplex, { + direction: 'inbound', + ...init, + ...(b.init ?? {}) + }) + ] +} + export interface Peer { peerId: PeerId registrar: Registrar diff --git a/packages/interface-compliance-tests/src/mocks/index.ts b/packages/interface-compliance-tests/src/mocks/index.ts index 8b78f1f7f3..ffdef08ac3 100644 --- a/packages/interface-compliance-tests/src/mocks/index.ts +++ b/packages/interface-compliance-tests/src/mocks/index.ts @@ -1,7 +1,7 @@ export { mockConnectionEncrypter } from './connection-encrypter.js' export { mockConnectionGater } from './connection-gater.js' export { mockConnectionManager, mockNetwork } from './connection-manager.js' -export { mockConnection, mockStream, connectionPair } from './connection.js' +export { mockConnection, mockStream, streamPair, connectionPair } from './connection.js' export { mockMultiaddrConnection, mockMultiaddrConnPair } from './multiaddr-connection.js' export { mockMuxer } from './muxer.js' export { mockRegistrar } from './registrar.js'