agentic-qe
Version:
Agentic Quality Engineering Fleet System - AI-driven quality management platform
203 lines • 5.26 kB
TypeScript
/**
* FakerDataGenerator - Advanced test data generation utilities
*
* Provides comprehensive, realistic test data generation using Faker.js
* with support for relationships, edge cases, and complex data structures.
*/
export interface DataGenerationOptions {
seed?: number;
locale?: string;
count?: number;
includeEdgeCases?: boolean;
preserveRelationships?: boolean;
}
export interface UserData {
id: string;
firstName: string;
lastName: string;
fullName: string;
email: string;
phone: string;
age: number;
birthDate: Date;
gender: string;
avatar: string;
address: AddressData;
company: CompanyData;
account: AccountData;
metadata: Record<string, any>;
}
export interface AddressData {
street: string;
streetNumber: string;
city: string;
state: string;
country: string;
zipCode: string;
latitude: number;
longitude: number;
timezone: string;
}
export interface CompanyData {
name: string;
industry: string;
jobTitle: string;
department: string;
email: string;
website: string;
ein: string;
}
export interface AccountData {
username: string;
password: string;
accountNumber: string;
iban: string;
creditCard: {
number: string;
cvv: string;
issuer: string;
expiryDate: string;
};
balance: number;
currency: string;
}
export interface ProductData {
id: string;
name: string;
description: string;
category: string;
brand: string;
sku: string;
barcode: string;
price: number;
currency: string;
stock: number;
weight: number;
dimensions: {
width: number;
height: number;
depth: number;
unit: string;
};
images: string[];
tags: string[];
ratings: {
average: number;
count: number;
};
createdAt: Date;
updatedAt: Date;
}
export interface OrderData {
id: string;
orderNumber: string;
userId: string;
items: OrderItemData[];
subtotal: number;
tax: number;
shipping: number;
total: number;
currency: string;
status: 'pending' | 'processing' | 'shipped' | 'delivered' | 'cancelled';
paymentMethod: string;
shippingAddress: AddressData;
billingAddress: AddressData;
trackingNumber?: string;
createdAt: Date;
updatedAt: Date;
deliveredAt?: Date;
}
export interface OrderItemData {
productId: string;
productName: string;
quantity: number;
unitPrice: number;
total: number;
discount?: number;
}
export declare class FakerDataGenerator {
private faker;
private options;
constructor(options?: DataGenerationOptions);
/**
* Generate realistic user data with complete profile
*/
generateUser(): UserData;
/**
* Generate multiple users with optional relationships
*/
generateUsers(count?: number): UserData[];
/**
* Generate realistic address data
*/
generateAddress(): AddressData;
/**
* Generate realistic company data
*/
generateCompany(): CompanyData;
/**
* Generate account and financial data
*/
generateAccount(firstName?: string, lastName?: string): AccountData;
/**
* Generate realistic product data
*/
generateProduct(): ProductData;
/**
* Generate multiple products
*/
generateProducts(count?: number): ProductData[];
/**
* Generate realistic order data with relationships
*/
generateOrder(userId?: string, products?: ProductData[]): OrderData;
/**
* Generate multiple orders with user relationships
*/
generateOrders(count?: number, users?: UserData[], products?: ProductData[]): OrderData[];
/**
* Generate edge case values for testing
*/
generateEdgeCases(): Record<string, any[]>;
/**
* Generate complete dataset with relationships preserved
*/
generateCompleteDataset(config?: {
userCount?: number;
productCount?: number;
orderCount?: number;
}): {
users: UserData[];
products: ProductData[];
orders: OrderData[];
};
/**
* Reset faker seed
*/
resetSeed(seed?: number): void;
/**
* Get current faker instance
*/
getFaker(): any;
/**
* Generate custom data using Faker API
*/
generateCustom<T>(generator: (faker: any) => T): T;
}
export declare const defaultFakerGenerator: FakerDataGenerator;
export declare const generateUser: () => UserData;
export declare const generateUsers: (count: number) => UserData[];
export declare const generateProduct: () => ProductData;
export declare const generateProducts: (count: number) => ProductData[];
export declare const generateOrder: (userId?: string, products?: ProductData[]) => OrderData;
export declare const generateOrders: (count: number, users?: UserData[], products?: ProductData[]) => OrderData[];
export declare const generateCompleteDataset: (config?: {
userCount?: number;
productCount?: number;
orderCount?: number;
}) => {
users: UserData[];
products: ProductData[];
orders: OrderData[];
};
//# sourceMappingURL=FakerDataGenerator.d.ts.map