@dbs-portal/tool-mock
Version:
API mocking toolkit using MSW for DBS Portal development workflows
110 lines • 4.09 kB
TypeScript
/**
* Response builder for creating mock HTTP responses
*/
import type { ApiError } from '@dbs-portal/core-shared';
import type { MockResponseBuilder, ResponseBuilderOptions, MockResponseMetadata } from './types';
/**
* Implementation of mock response builder
*/
export declare class MockResponseBuilderImpl<T = any> implements MockResponseBuilder<T> {
private responseData;
private statusCode;
private responseHeaders;
private responseDelay?;
private responseError?;
private metadata;
constructor(options?: ResponseBuilderOptions<T>);
/**
* Set response data
*/
data(data: T): MockResponseBuilder<T>;
/**
* Set status code
*/
status(code: number): MockResponseBuilder<T>;
/**
* Set headers
*/
headers(headers: Record<string, string>): MockResponseBuilder<T>;
/**
* Set delay
*/
delay(ms: number | [number, number]): MockResponseBuilder<T>;
/**
* Add error
*/
error(error: ApiError): MockResponseBuilder<T>;
/**
* Set metadata
*/
meta(metadata: Partial<MockResponseMetadata>): MockResponseBuilder<T>;
/**
* Build the response
*/
build(): Response;
/**
* Build with async delay
*/
buildAsync(): Promise<Response>;
}
/**
* Create a new response builder
*/
export declare function mockResponseBuilder<T = any>(options?: ResponseBuilderOptions<T>): MockResponseBuilder<T>;
/**
* Create a success response
*/
export declare function createSuccessResponse<T = any>(data: T, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
* Create an error response
*/
export declare function createErrorResponse(error: ApiError, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a loading response (with delay)
*/
export declare function createLoadingResponse<T = any>(data: T, delay?: number | [number, number], options?: Partial<ResponseBuilderOptions<T>>): MockResponseBuilder<T>;
/**
* Create a not found response
*/
export declare function createNotFoundResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create an unauthorized response
*/
export declare function createUnauthorizedResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a forbidden response
*/
export declare function createForbiddenResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a validation error response
*/
export declare function createValidationErrorResponse(errors: string[] | Record<string, string[]>, message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a server error response
*/
export declare function createServerErrorResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a rate limit response
*/
export declare function createRateLimitResponse(message?: string, retryAfter?: number, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a maintenance response
*/
export declare function createMaintenanceResponse(message?: string, retryAfter?: number, options?: Partial<ResponseBuilderOptions>): Response;
/**
* Create a response with custom status and message
*/
export declare function createCustomResponse<T = any>(status: number, data?: T, error?: ApiError, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
* Create a response that simulates network conditions
*/
export declare function createNetworkResponse<T = any>(data: T, networkCondition?: 'fast' | 'slow' | 'unstable', options?: Partial<ResponseBuilderOptions<T>>): MockResponseBuilder<T>;
/**
* Create a response with cache headers
*/
export declare function createCachedResponse<T = any>(data: T, cacheControl?: string, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
* Create a response with CORS headers
*/
export declare function createCorsResponse<T = any>(data: T, origin?: string, options?: Partial<ResponseBuilderOptions<T>>): Response;
//# sourceMappingURL=response-builder.d.ts.map