veza/fixtures/index.ts

90 lines
2.8 KiB
TypeScript
Raw Normal View History

/**
* Veza Fixtures - Complete Fixture System
*
* Main entry point for the Veza Platform fixtures system
*/
// Core exports
export * from './core'
// Service fixtures
export { WebFixtures } from './services/web'
export { ChatServerFixtures } from './services/chat-server'
export { StreamServerFixtures } from './services/stream-server'
// Scenarios
export { NewUserOnboardingScenario, type OnboardingScenarioContext } from './scenarios/user-journey/new-user-onboarding'
export { HighLoadScenario, type HighLoadScenarioContext } from './scenarios/performance/high-load'
export { CrossServiceCommunicationScenario, type CrossServiceScenarioContext } from './scenarios/integration/cross-service-communication'
// Version
export const VERSION = '1.0.0'
/**
* Quick start function for common use cases
*/
export async function quickStart(options?: {
environment?: string
services?: ('web' | 'chat' | 'stream')[]
scenario?: 'onboarding' | 'high-load' | 'integration'
}) {
const { VezaFixtures } = await import('./core')
const { WebFixtures } = await import('./services/web')
const { ChatServerFixtures } = await import('./services/chat-server')
const { StreamServerFixtures } = await import('./services/stream-server')
const environment = options?.environment || 'development'
const services = options?.services || ['web', 'chat', 'stream']
console.log('🚀 Veza Fixtures Quick Start...')
// Initialize core system
await VezaFixtures.initialize(environment)
// Generate dataset
const dataset = VezaFixtures.generateCompleteDataset()
// Initialize services
if (services.includes('web')) {
await WebFixtures.initialize()
}
if (services.includes('chat')) {
await ChatServerFixtures.initialize()
await ChatServerFixtures.seedDatabase()
await ChatServerFixtures.seedRedis()
}
if (services.includes('stream')) {
await StreamServerFixtures.initialize()
await StreamServerFixtures.seedStreamingData()
}
// Run scenario if specified
if (options?.scenario) {
console.log(`🎬 Running scenario: ${options.scenario}`)
switch (options.scenario) {
case 'onboarding':
const { NewUserOnboardingScenario } = await import('./scenarios/user-journey/new-user-onboarding')
await NewUserOnboardingScenario.setup()
break
case 'high-load':
const { HighLoadScenario } = await import('./scenarios/performance/high-load')
await HighLoadScenario.setup()
break
case 'integration':
const { CrossServiceCommunicationScenario } = await import('./scenarios/integration/cross-service-communication')
await CrossServiceCommunicationScenario.setup()
break
}
}
console.log('✅ Quick start completed successfully!')
return {
dataset,
stats: VezaFixtures.getStatistics(),
validation: VezaFixtures.validateRelations()
}
}