std/http/_mock_conn.ts

51 lines
1.3 KiB
TypeScript
Raw Normal View History

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
/** Create dummy `Deno.Conn` object with given base properties. */
export function mockConn(base: Partial<Deno.Conn> = {}): Deno.Conn {
return {
localAddr: {
transport: "tcp",
hostname: "",
port: 0,
},
remoteAddr: {
transport: "tcp",
hostname: "",
port: 0,
},
rid: -1,
closeWrite: () => {
return Promise.resolve();
},
read: (): Promise<number | null> => {
return Promise.resolve(0);
},
write: (): Promise<number> => {
return Promise.resolve(-1);
},
close: () => {},
2022-02-15 16:38:18 +00:00
readable: new ReadableStream({
type: "bytes",
async pull(_controller) {
},
cancel() {
},
autoAllocateChunkSize: 1,
}),
writable: new WritableStream({
async write(_chunk, _controller) {
},
close() {
},
abort() {
},
}),
// TODO(ry) Remove the following ts-ignore.
// @ts-ignore This was added to workaround incompatibilities between Deno versions.
setNoDelay: (_nodelay?: boolean) => {},
// @ts-ignore This was added to workaround incompatibilities between Deno versions.
setKeepAlive: (_keepalive?: boolean) => {},
...base,
};
}