lyrebird
Version:
A wrapper for writing more reusable and cleaner mocks using mswjs.io.
59 lines (54 loc) • 2.63 kB
TypeScript
import { RESTMethods, RestHandler as RestHandler$1, SetupWorkerApi } from 'msw';
import { SetupServerApi } from 'msw/node';
import { DefaultRequestBody, MockedRequest, defaultContext, AsyncResponseResolverReturnType } from 'msw/lib/types/handlers/RequestHandler';
import { ResponseComposition, MockedResponse } from 'msw/lib/types/response';
import { RequestParams, RestRequest, RestContext } from 'msw/lib/types/handlers/RestHandler';
declare type RequestParameters = Record<string, string>;
declare type ResponseResolver<RequestType = MockedRequest, ContextType = typeof defaultContext, BodyType = unknown> = (props: {
request: RequestType;
response: ResponseComposition<BodyType>;
context: ContextType;
}) => AsyncResponseResolverReturnType<MockedResponse<BodyType>>;
declare class RestHandler<ResponseBody = unknown, RequestPayload = unknown> {
private method;
private url?;
private params?;
private requestPayload?;
private responseStatusCode;
private responseBody?;
private resolver?;
name: string | null;
on(method: RESTMethods | keyof typeof RESTMethods, url: string): this;
onGet(url: string): this;
onPost(url: string): this;
onPatch(url: string): this;
onPut(url: string): this;
onOptions(url: string): this;
onHead(url: string): this;
onDelete(url: string): this;
withParams(params: RequestParameters): this;
withPayload<Payload extends RequestPayload>(payload: Payload): RestHandler<ResponseBody, Payload>;
reply<Body extends ResponseBody>(status: number, body?: Body): RestHandler<Body, RequestPayload>;
resolve<RequestBodyType extends DefaultRequestBody = DefaultRequestBody, ResponseBody extends DefaultRequestBody = any, Params extends RequestParams = RequestParams>(resolver: ResponseResolver<RestRequest<RequestBodyType, Params>, RestContext, ResponseBody>): this;
as(name: string): this;
run(): RestHandler$1<MockedRequest<DefaultRequestBody>>;
}
declare class HandlerCollection {
private collection;
constructor();
collect(...handlers: Array<RestHandler>): void;
find(name: string): RestHandler;
}
interface MockServerOptions {
collection: HandlerCollection;
}
declare class MockServer {
private readonly server;
private readonly collection?;
constructor(server: SetupServerApi | SetupWorkerApi, options?: MockServerOptions);
use(...handlers: Array<string> | Array<RestHandler>): void;
enable(...handlers: Array<string>): void;
private enableHandlerInstance;
private enableHandlerFromCollection;
}
export { HandlerCollection, MockServer, RestHandler };