UNPKG

thrilled-be-testing

Version:

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

129 lines 3.93 kB
import { MockFactory, MockFactoryOptions, DatabaseMockOptions, AuthMockOptions, MockUser, MockSession, MockJwtPayload, MockDatabaseRecord, MockApiResponse, MockErrorResponse, MockPagination, MockPaginatedResponse, MockQueryResult, MockConnection } from './types/mock-types.js'; /** * Mock Data Factory * Generates consistent test data using configurable factories */ export declare class MockDataFactory { private static sequence; /** * Set global seed for consistent test data (resets sequences) */ static setSeed(_seed: number): void; /** * Get next sequence number for a given key */ private static getSequence; /** * Generate random string */ static randomString(length?: number, prefix?: string): string; /** * Generate random number within range */ static randomNumber(min?: number, max?: number): number; /** * Generate random email */ static randomEmail(domain?: string): string; /** * Generate random phone number */ static randomPhone(countryCode?: string): string; /** * Generate random date within range */ static randomDate(startDate?: Date, endDate?: Date): Date; /** * Pick random item from array */ static randomChoice<T>(items: T[]): T; /** * Generate multiple items using a factory */ static generateMultiple<T>(factory: MockFactory<T>, count: number, options?: MockFactoryOptions): T[]; } /** * User Mock Factory */ export declare const createMockUser: MockFactory<MockUser>; /** * Session Mock Factory */ export declare const createMockSession: MockFactory<MockSession>; /** * JWT Token Mock Factory */ export declare const createMockJwtPayload: MockFactory<MockJwtPayload>; /** * Database Record Mock Factory */ export declare const createMockDatabaseRecord: MockFactory<MockDatabaseRecord>; /** * API Response Mock Factory */ export declare const createMockApiResponse: MockFactory<MockApiResponse>; /** * Error Response Mock Factory */ export declare const createMockErrorResponse: MockFactory<MockErrorResponse>; /** * Validation Error Mock Factory */ export declare const createMockValidationError: MockFactory<MockErrorResponse>; /** * Pagination Mock Factory */ export declare const createMockPagination: MockFactory<MockPagination>; /** * Paginated Response Mock Factory */ export declare const createMockPaginatedResponse: MockFactory<MockPaginatedResponse>; /** * Auth Mock Utilities */ export declare class AuthMockUtils { /** * Create mock JWT token */ static createMockJwtToken(options?: AuthMockOptions): string; /** * Create mock authentication headers */ static createAuthHeaders(token?: string): Record<string, string>; /** * Create mock user session */ static createMockUserSession(options?: AuthMockOptions): MockSession; } /** * Database Mock Utilities */ export declare class DatabaseMockUtils { /** * Create mock database connection */ static createMockConnection(): MockConnection; /** * Create mock query result */ static createMockQueryResult(rows?: unknown[], rowCount?: number): MockQueryResult; /** * Setup database mocks for testing */ static setupDatabaseMocks(_options?: DatabaseMockOptions): MockConnection; } /** * Export all mock factories */ export declare const MockFactories: { User: MockFactory<MockUser>; Session: MockFactory<MockSession>; JwtPayload: MockFactory<MockJwtPayload>; DatabaseRecord: MockFactory<MockDatabaseRecord>; ApiResponse: MockFactory<MockApiResponse<unknown>>; ErrorResponse: MockFactory<MockErrorResponse>; ValidationError: MockFactory<MockErrorResponse>; Pagination: MockFactory<MockPagination>; PaginatedResponse: MockFactory<MockPaginatedResponse<unknown>>; }; //# sourceMappingURL=mock-factories.d.ts.map