# đŸŽ” Veza Fixtures System [![CI Status](https://github.com/your-org/veza-platform/workflows/Fixtures%20Validation/badge.svg)](https://github.com/your-org/veza-platform/actions) [![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen)](./coverage) [![Version](https://img.shields.io/badge/version-1.0.0-blue)](./package.json) > **SystĂšme de fixtures complet et robuste pour Veza Platform** Le systĂšme de fixtures Veza est une solution complĂšte pour gĂ©nĂ©rer, gĂ©rer et valider des donnĂ©es de test rĂ©alistes pour tous les services de la plateforme Veza. Il offre une approche cohĂ©rente et scalable pour les tests, le dĂ©veloppement et les dĂ©monstrations. ## 🚀 FonctionnalitĂ©s Principales ### ✹ **GĂ©nĂ©ration de DonnĂ©es AvancĂ©e** - 🎯 **DonnĂ©es rĂ©alistes** avec relations cohĂ©rentes - 🌍 **Multi-environnements** (development, testing, staging, demo) - đŸŽČ **Reproductible** avec systĂšme de seeds - 📊 **Scalable** de 10 Ă  10,000+ entitĂ©s ### 🔗 **IntĂ©gration Multi-Services** - 🌐 **Web Service** - MSW handlers et localStorage - 💬 **Chat** - Base de donnĂ©es PostgreSQL et cache Redis (via backend) - đŸŽ” **Stream Server** - Sessions de streaming et mĂ©triques - 🔧 **Backend API** - DonnĂ©es utilisateur et mĂ©tadonnĂ©es ### 🎬 **ScĂ©narios de Test Complets** - đŸ‘€ **User Journey** - Parcours utilisateur rĂ©alistes - ⚡ **Performance** - Tests de charge et stress - 🔗 **Integration** - Communication inter-services - 🎯 **Edge Cases** - Cas limites et erreurs ### đŸ› ïž **Outils CLI Puissants** - 📊 **Generate** - CrĂ©ation de datasets - đŸŒ± **Seed** - Population des services - 🔍 **Validate** - VĂ©rification d'intĂ©gritĂ© - đŸ§č **Clean** - Nettoyage des donnĂ©es ## 📩 Installation ### PrĂ©requis - Node.js 18+ - PostgreSQL 13+ - Redis 6+ - npm ou yarn ### Installation Rapide ```bash # Cloner et installer git clone https://github.com/your-org/veza-platform.git cd veza-platform/fixtures # Installation automatique ./tools/scripts/install.sh # Ou installation manuelle npm install npm run build ``` ### Configuration ```bash # Copier et configurer l'environnement cp ../env.example .env # Éditer les variables de connexion nano .env ``` ## 🎯 DĂ©marrage Rapide ### GĂ©nĂ©ration de Base ```bash # GĂ©nĂ©rer un dataset de dĂ©veloppement npm run generate -- --env development # Alimenter tous les services npm run seed -- --service all # VĂ©rifier l'intĂ©gritĂ© npm run validate ``` ### Utilisation CLI ```bash # Voir l'Ă©tat du systĂšme veza-fixtures status # GĂ©nĂ©rer des donnĂ©es personnalisĂ©es veza-fixtures generate --env staging --users 200 --tracks 500 # Lancer un scĂ©nario de test veza-fixtures scenario --run onboarding # Nettoyer les donnĂ©es veza-fixtures clean --service web --force ``` ### Utilisation Programmatique ```typescript import { VezaFixtures, WebFixtures } from '@veza/fixtures' // Initialisation rapide const result = await quickStart({ environment: 'development', services: ['web', 'chat'], scenario: 'onboarding' }) // Utilisation avancĂ©e await VezaFixtures.initialize('testing') const dataset = VezaFixtures.generateCompleteDataset() await WebFixtures.initialize() ``` ## đŸ—ïž Architecture ### Structure du Projet ``` fixtures/ ├── core/ # SystĂšme central │ ├── generators/ # GĂ©nĂ©rateurs de donnĂ©es │ │ ├── users.ts # Utilisateurs rĂ©alistes │ │ ├── audio.ts # Contenu audio │ │ └── conversations.ts # Messages et conversations │ ├── schemas/ # SchĂ©mas de validation │ ├── utils/ # Utilitaires partagĂ©s │ └── config.ts # Configuration centrale ├── services/ # IntĂ©grations par service │ ├── web/ # Frontend fixtures │ ├── chat/ # Chat fixtures (backend) │ └── stream-server/ # Backend streaming ├── scenarios/ # ScĂ©narios de test │ ├── user-journey/ # Parcours utilisateur │ ├── performance/ # Tests de performance │ └── integration/ # Tests d'intĂ©gration ├── environments/ # Configurations d'environnement ├── tools/ # Outils CLI et scripts └── test/ # Tests du systĂšme ``` ### Flux de DonnĂ©es ```mermaid graph TD A[Configuration] --> B[GĂ©nĂ©rateurs] B --> C[Relations Manager] C --> D[Service Fixtures] D --> E[Validation] E --> F[Export/Seed] G[CLI Tools] --> B H[Scenarios] --> B I[CI/CD] --> G ``` ## 📊 GĂ©nĂ©rateurs de DonnĂ©es ### GĂ©nĂ©rateur d'Utilisateurs ```typescript import { UserGenerator } from '@veza/fixtures' // Utilisateur basique const user = UserGenerator.generate() // Utilisateur spĂ©cialisĂ© const artist = UserGenerator.generateArtist({ isVerified: true, withAvatar: true }) // Batch avec distribution const users = UserGenerator.generateWithDistribution() ``` **FonctionnalitĂ©s:** - ✅ RĂŽles rĂ©alistes (admin, artist, producer, user) - ✅ Profils complets avec prĂ©fĂ©rences - ✅ Relations sociales (followers, following) - ✅ Statistiques d'activitĂ© cohĂ©rentes ### GĂ©nĂ©rateur Audio ```typescript import { AudioGenerator } from '@veza/fixtures' // Track individuelle const track = AudioGenerator.generate({ genre: 'electronic', isPopular: true }) // Album complet const album = AudioGenerator.generateAlbum(10) // Playlist thĂ©matique const playlist = AudioGenerator.generatePlaylist({ theme: 'workout', trackCount: 20 }) ``` **FonctionnalitĂ©s:** - ✅ MĂ©tadonnĂ©es audio rĂ©alistes - ✅ Waveform data gĂ©nĂ©rĂ© - ✅ Relations album/track cohĂ©rentes - ✅ Statistiques d'Ă©coute ### GĂ©nĂ©rateur de Conversations ```typescript import { ConversationGenerator } from '@veza/fixtures' // Conversation directe const directChat = ConversationGenerator.generateConversation({ type: 'direct', participantIds: [user1.id, user2.id] }) // ScĂ©nario complexe const scenario = ConversationGenerator.generateScenario( ConversationGenerator.SCENARIOS[0], // Studio Collaboration userIds ) ``` **FonctionnalitĂ©s:** - ✅ Types variĂ©s (direct, group, channel) - ✅ Messages avec rĂ©actions et mentions - ✅ ScĂ©narios prĂ©-dĂ©finis rĂ©alistes - ✅ Patterns de conversation naturels ## 🎬 ScĂ©narios de Test ### Onboarding Utilisateur ```bash # Lancer le scĂ©nario d'onboarding veza-fixtures scenario --run onboarding ``` **Couvre:** - ✅ Inscription et vĂ©rification email - ✅ ComplĂ©tion du profil - ✅ PremiĂšre Ă©coute et playlist - ✅ Participation au chat communautaire ### Tests de Performance ```bash # Test de charge haute veza-fixtures scenario --run high-load ``` **Simule:** - ✅ 1000+ utilisateurs concurrent - ✅ Streaming audio simultanĂ© - ✅ Flood de messages chat - ✅ MĂ©triques de performance ### IntĂ©gration Cross-Service ```bash # Test d'intĂ©gration complĂšte veza-fixtures scenario --run integration ``` **Valide:** - ✅ Communication inter-services - ✅ CohĂ©rence des donnĂ©es - ✅ Gestion des erreurs - ✅ Performance sous charge ## 🔧 Configuration AvancĂ©e ### Environnements ```typescript // fixtures/environments/staging.ts export const stagingConfig = { generation: { users: { count: 500 }, audio: { trackCount: 2000 }, conversations: { directCount: 200 } }, database: { host: 'staging-db.example.com' } } ``` ### Personnalisation des GĂ©nĂ©rateurs ```typescript // Configuration Faker personnalisĂ©e import { vezaFaker } from '@veza/fixtures' vezaFaker.music.songTitle = () => { return 'Mon Titre PersonnalisĂ©' } ``` ### Hooks et Middleware ```typescript // Hooks de gĂ©nĂ©ration DataRelationManager.onUserGenerated((user) => { console.log(`Utilisateur créé: ${user.username}`) }) ``` ## đŸ§Ș Tests et Validation ### Tests Unitaires ```bash # Lancer les tests npm test # Coverage npm run test:coverage ``` ### Validation des DonnĂ©es ```bash # Validation complĂšte npm run validate -- --check-relations --check-performance # Validation spĂ©cifique npm run validate -- --service chat-server ``` ### CI/CD Integration Le systĂšme s'intĂšgre automatiquement avec GitHub Actions : - ✅ **Validation PR** - VĂ©rification des fixtures modifiĂ©es - ✅ **Tests nightly** - Tests complets quotidiens - ✅ **Performance regression** - DĂ©tection de rĂ©gressions ## 📈 Monitoring et MĂ©triques ### MĂ©triques de GĂ©nĂ©ration ```bash # Statistiques dĂ©taillĂ©es veza-fixtures status --verbose ``` **Affiche:** - 📊 Nombre d'entitĂ©s par type - ⏱ Temps de gĂ©nĂ©ration - 🔗 CohĂ©rence des relations - đŸ’Ÿ Utilisation mĂ©moire ### Health Checks ```typescript // VĂ©rification de santĂ© des services const health = await ChatServerFixtures.healthCheck() console.log(health) // { database: true, redis: true, dataConsistency: true } ``` ## 🚀 Cas d'Usage ### DĂ©veloppement Local ```bash # Setup rapide pour dĂ©veloppement npm run dev:with-fixtures ``` ### Tests AutomatisĂ©s ```bash # Tests avec donnĂ©es fraĂźches npm run test:with-fixtures ``` ### DĂ©monstrations Client ```bash # Dataset de dĂ©mo professionnel veza-fixtures generate --env demo --format json ``` ### Tests de Performance ```bash # Stress test complet veza-fixtures scenario --run high-load ``` ## 🔍 DĂ©pannage ### ProblĂšmes Courants **Erreur de connexion base de donnĂ©es:** ```bash # VĂ©rifier la configuration veza-fixtures status # Diagnostics complets ./tools/scripts/install.sh doctor ``` **DonnĂ©es incohĂ©rentes:** ```bash # Validation et correction veza-fixtures validate --check-relations veza-fixtures clean --force veza-fixtures seed --validate ``` **Performance lente:** ```bash # RĂ©duire la taille du dataset veza-fixtures generate --users 50 --tracks 100 ``` ### Logs et Debug ```bash # Mode verbose DEBUG=veza:fixtures npm run generate # Logs dĂ©taillĂ©s veza-fixtures generate --verbose ``` ## đŸ€ Contribution ### DĂ©veloppement ```bash # Setup dĂ©veloppement git clone https://github.com/your-org/veza-platform.git cd fixtures npm install npm run build # Tests npm test npm run lint ``` ### Ajout de GĂ©nĂ©rateurs ```typescript // fixtures/core/generators/my-generator.ts export class MyGenerator { static generate() { // ImplĂ©mentation } } ``` ### Nouveaux ScĂ©narios ```typescript // fixtures/scenarios/my-scenario/index.ts export class MyScenario { static async setup() { // Configuration du scĂ©nario } } ``` ## 📚 Documentation API ### Classes Principales - **`VezaFixtures`** - Point d'entrĂ©e principal - **`DataRelationManager`** - Gestion des relations - **`UserGenerator`** - GĂ©nĂ©ration d'utilisateurs - **`AudioGenerator`** - GĂ©nĂ©ration de contenu audio - **`ConversationGenerator`** - GĂ©nĂ©ration de conversations ### Interfaces - **`FixtureConfig`** - Configuration systĂšme - **`User`**, **`Audio`**, **`Conversation`** - Types de donnĂ©es - **`ScenarioContext`** - Contexte de scĂ©nario ## 📝 Changelog ### Version 1.0.0 - ✅ SystĂšme de fixtures complet - ✅ GĂ©nĂ©rateurs avancĂ©s - ✅ IntĂ©gration multi-services - ✅ ScĂ©narios de test - ✅ CLI tools - ✅ CI/CD integration ## 📄 Licence MIT License - voir [LICENSE](./LICENSE) pour les dĂ©tails. ## 🆘 Support - 📧 **Email**: fixtures-support@veza-platform.com - 💬 **Discord**: [Veza Platform Community](https://discord.gg/veza) - 🐛 **Issues**: [GitHub Issues](https://github.com/your-org/veza-platform/issues) - 📖 **Docs**: [Documentation complĂšte](https://docs.veza-platform.com/fixtures) --- **Fait avec ❀ par l'Ă©quipe Veza Platform**