@jest-mock/express
Version:
A lightweight Jest mock for unit testing Express
94 lines (88 loc) • 2.77 kB
text/typescript
// Types
import type { IncomingMessage } from 'http'
import type { Readable } from 'stream'
import type { Request } from 'express'
// Local Types
import type { EventEventEmitter } from '../index'
interface StreamReadable extends EventEventEmitter {
readable?: Readable['readable']
readableHighWaterMark?: Readable['readableHighWaterMark']
readableLength?: Readable['readableLength']
readableObjectMode?: Readable['readableObjectMode']
destroyed?: Readable['destroyed']
_read?: jest.Mock
read?: jest.Mock
setEncoding?: jest.Mock
pause?: jest.Mock
resume?: jest.Mock
isPaused?: jest.Mock
unpipe?: jest.Mock
unshift?: jest.Mock
wrap?: jest.Mock
push?: jest.Mock
_destroy?: jest.Mock
addListener?: jest.Mock
emit?: jest.Mock
on?: jest.Mock
once?: jest.Mock
prependListener?: jest.Mock
prependOnceListener?: jest.Mock
removeListener?: jest.Mock
destroy?: jest.Mock
}
interface HttpIncomingMessage extends StreamReadable {
aborted?: IncomingMessage['aborted']
httpVersion?: IncomingMessage['httpVersion']
httpVersionMajor?: IncomingMessage['httpVersionMajor']
httpVersionMinor?: IncomingMessage['httpVersionMinor']
complete?: IncomingMessage['complete']
connection?: Partial<IncomingMessage['connection']> | null
socket?: Partial<IncomingMessage['socket']> | null
headers?: Partial<IncomingMessage['headers']>
rawHeaders?: IncomingMessage['rawHeaders']
trailers?: IncomingMessage['trailers']
rawTrailers?: IncomingMessage['rawTrailers']
setTimeout?: jest.Mock
statusCode?: IncomingMessage['statusCode']
statusMessage?: IncomingMessage['statusMessage']
destroy?: jest.Mock
}
export interface MockRequest extends HttpIncomingMessage {
params?: Request['params']
query?: Request['query']
body?: Request['body']
cookies?: Request['cookies']
method?: Request['method']
protocol?: Request['protocol']
secure?: Request['secure']
ip?: Request['ip']
ips?: Request['ips']
subdomains?: Request['subdomains']
path?: Request['path']
hostname?: Request['hostname']
host?: Request['host']
fresh?: Request['fresh']
stale?: Request['stale']
xhr?: Request['xhr']
route?: Request['route']
signedCookies?: Request['signedCookies']
originalUrl?: Request['originalUrl']
url?: Request['url']
baseUrl?: Request['baseUrl']
accepted?: Request['accepted']
get?: jest.Mock
header?: jest.Mock
accepts?: jest.Mock
acceptsCharsets?: jest.Mock
acceptsEncodings?: jest.Mock
acceptsLanguages?: jest.Mock
range?: jest.Mock
param?: jest.Mock
is?: jest.Mock
app?: Partial<Request['app']>
res?: Partial<Request['res']>
next?: jest.Mock
// allow custom properties to be provided
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any
}