cumulocity-cypress
Version:
Cypress commands for Cumulocity IoT
35 lines (34 loc) • 2.15 kB
TypeScript
import { Request, RequestHandler, Response } from "express";
import winston from "winston";
import { ClientRequest, IncomingMessage, ServerResponse } from "http";
import { Options as HttpProxyMiddlewareOptions } from "http-proxy-middleware";
import { C8yAuthOptions } from "../auth";
import { C8yPactHttpController } from "./httpcontroller";
import type { C8yCtrlHeader, C8yPactHttpResponse } from "./httpcontroller-options";
import { C8yBaseUrl } from "../types";
export declare function createMiddleware(c8yctrl: C8yPactHttpController, options?: {
auth?: C8yAuthOptions;
baseUrl?: C8yBaseUrl;
logger?: winston.Logger;
ignoredPaths?: string[];
errorHandler?: RequestHandler;
proxyOptions?: Omit<HttpProxyMiddlewareOptions, "on" | "plugins" | "ejectPlugins">;
}): RequestHandler;
/**
* Wraps a RequestHandler to ignore certain paths. For paths matching items in the
* `ignoredPaths` parameter, the handler will call `next()` immediately and not call
* the wrapped handler. For matching `startsWith` is used.
* @param handler The RequestHandler to wrap
* @param ignoredPaths The paths to ignore using exact match
* @returns The RequestHandler wrapper
*/
export declare function wrapPathIgnoreHandler(handler: RequestHandler, ignoredPaths: string[]): RequestHandler;
export declare function createResponseInterceptor(c8yctrl: C8yPactHttpController, errorHandler?: RequestHandler): (responseBuffer: Buffer, proxyRes: Request, req: Request, res: Response) => Promise<string | Buffer<ArrayBufferLike>>;
export declare function createRequestHandler(c8yctrl: C8yPactHttpController, auth?: C8yAuthOptions): (proxyReq: ClientRequest, req: Request, res: Response) => void;
export declare function addC8yCtrlHeader(response: C8yPactHttpResponse | Response, ctrlHeader: C8yCtrlHeader, value: string): void;
export declare function toC8yPactResponse(res: Response<any, any>, body: any): C8yPactHttpResponse;
export declare function toCypressResponse(req: IncomingMessage | Request, res: ServerResponse<IncomingMessage> | Response, options?: {
reqBody?: string;
resBody?: string;
duration?: number;
}): Cypress.Response<any>;