UNPKG

thrilled-be-testing

Version:

Testing utilities and helpers package with Jest, Supertest, and database testing support for Express applications

168 lines 3.52 kB
/** * Mock factory function type */ export type MockFactory<T> = (overrides?: Partial<T>) => T; /** * Mock factory with async support */ export type AsyncMockFactory<T> = (overrides?: Partial<T>) => Promise<T>; export interface MockUser { id: number; email: string; name: string; first_name: string; last_name: string; phone: string; address: string; role: string; language_preference: string; is_active: boolean; created_at: Date; updated_at: Date; } export interface MockSession { id: string; user_id: number; device_info: { userAgent: string; ip: string; platform: string; }; expires_at: Date; created_at: Date; last_accessed: Date; is_active: boolean; } export interface MockJwtPayload { userId: string; sessionId: string; roles: string[]; permissions: string[]; userData: { email: string; name: string; }; iat: number; exp: number; } export interface MockDatabaseRecord { id: number; created_at: Date; updated_at: Date; version: number; } export interface MockApiResponse<T = unknown> { success: boolean; data: T; message: string; timestamp: string; request_id: string; } export interface MockErrorResponse { success: false; error: { code: string; message: string; details: Record<string, unknown> | ValidationError[]; }; timestamp: string; request_id: string; } export interface ValidationError { field: string; message: string; value: string; } export interface MockPagination { page: number; limit: number; total: number; totalPages: number; hasNext: boolean; hasPrev: boolean; } export interface MockPaginatedResponse<T = unknown> { success: boolean; data: T[]; pagination: MockPagination; timestamp: string; request_id: string; } export interface MockQueryResult { rows: unknown[]; rowCount: number; command: string; oid: number; fields: unknown[]; } export interface MockConnection { query: any; connect: any; end: any; on: any; } /** * Factory options for generating test data */ export interface MockFactoryOptions { count?: number; sequence?: boolean; seed?: string | number; locale?: string; } /** * Mock provider interface */ export interface MockProvider<T = unknown> { name: string; factory: MockFactory<T>; } /** * Database mock options */ export interface DatabaseMockOptions { connection?: string; persist?: boolean; cleanup?: boolean; } /** * Auth mock options */ export interface AuthMockOptions { userId?: string; sessionId?: string; roles?: string[]; permissions?: string[]; expiresIn?: string; } /** * Service mock configuration */ export interface ServiceMockConfig { autoMock?: boolean; implementation?: Record<string, unknown>; spyOn?: string[]; } /** * Express request mock options */ export interface RequestMockOptions { body?: unknown; query?: Record<string, unknown>; params?: Record<string, unknown>; headers?: Record<string, string>; user?: unknown; session?: unknown; ip?: string; method?: string; path?: string; } /** * Express response mock options */ export interface ResponseMockOptions { status?: number; headers?: Record<string, string>; locals?: Record<string, unknown>; } //# sourceMappingURL=mock-types.d.ts.map