90 lines
No EOL
2.8 KiB
TypeScript
90 lines
No EOL
2.8 KiB
TypeScript
/**
|
|
* 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()
|
|
}
|
|
} |