@revoloo/cypress6
Version:
Cypress.io end to end testing tool
55 lines (50 loc) • 1.4 kB
text/typescript
import { IncomingMessage } from 'http'
import { Readable } from 'stream'
import {
CypressIncomingRequest,
CypressOutgoingResponse,
} from '@packages/proxy'
import {
RouteMatcherOptions,
BackendStaticResponse,
} from '../types'
export type GetFixtureFn = (path: string, opts?: { encoding?: string | null }) => Promise<any>
export interface BackendRoute {
routeMatcher: RouteMatcherOptions
handlerId?: string
hasInterceptor: boolean
staticResponse?: BackendStaticResponse
getFixture: GetFixtureFn
}
export interface BackendRequest {
requestId: string
/**
* The route that matched this request.
*/
route: BackendRoute
onError: (err: Error) => void
/**
* A callback that can be used to make the request go outbound.
*/
continueRequest: Function
/**
* A callback that can be used to send the response through the proxy.
*/
continueResponse?: (newResStream?: Readable) => void
onResponse?: (incomingRes: IncomingMessage, resStream: Readable) => void
req: CypressIncomingRequest
res: CypressOutgoingResponse
incomingRes?: IncomingMessage
/**
* Should we wait for the driver to allow the response to continue?
*/
waitForResponseContinue?: boolean
}
export interface NetStubbingState {
// map of request IDs to requests in flight
requests: {
[requestId: string]: BackendRequest
}
routes: BackendRoute[]
reset: () => void
}