/// import { IncomingMessage as IncomingHttpMessage, IncomingHttpHeaders } from 'http'; import { PassThrough, Readable } from 'stream'; import { Socket } from 'net'; import { Dict } from '../utils/types'; export interface MockMessageOptions { method?: string; url?: string; headers?: IncomingHttpHeaders; trailers?: Dict; httpVersion?: string; json?: any; body?: Readable | Buffer | string; } /** * A mock request used to simluate an HTTP request to the application during * tests. You shouldn't need to instantiate these directly - instead, use an * AppAcceptance test. * * @package test */ export default class MockRequest extends PassThrough implements IncomingHttpMessage { httpVersion: string; readonly httpVersionMajor: number; readonly httpVersionMinor: number; connection: Socket; readonly socket: Socket; headers: IncomingHttpHeaders; readonly rawHeaders: string[]; method: string; url: string; trailers: Dict; readonly rawTrailers: string[]; readable: boolean; constructor(options?: MockMessageOptions); setTimeout(msecs: number, callback: () => void): this; destroy(): void; }