veza/fixtures
senke f9120c322b
Some checks failed
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
Stream Server CI / test (push) Failing after 0s
release(v0.903): Vault - ORDER BY whitelist, rate limiter, VERSION sync, chat-server cleanup, Go 1.24
- ORDER BY dynamiques : whitelist explicite, fallback created_at DESC
- Login/register soumis au rate limiter global
- VERSION sync + check CI
- Nettoyage références veza-chat-server
- Go 1.24 partout (Dockerfile, workflows)
- TODO/FIXME/HACK convertis en issues ou résolus
2026-02-27 09:43:25 +01:00
..
core BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
docs BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
scenarios BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
services BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
test BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
tools BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
CHANGELOG.md BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
index.ts BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
package-lock.json BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
package.json chore: unify TypeScript version to 5.9.3 across all packages 2026-02-22 17:45:07 +01:00
README.md release(v0.903): Vault - ORDER BY whitelist, rate limiter, VERSION sync, chat-server cleanup, Go 1.24 2026-02-27 09:43:25 +01:00
tsconfig.json BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00
vitest.config.ts BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00

🎵 Veza Fixtures System

CI Status Coverage Version

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

# 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

# Copier et configurer l'environnement
cp ../env.example .env

# Éditer les variables de connexion
nano .env

🎯 Démarrage Rapide

Génération de Base

# 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

# 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

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

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

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

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

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

# 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

# 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

# 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

// 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

// Configuration Faker personnalisée
import { vezaFaker } from '@veza/fixtures'

vezaFaker.music.songTitle = () => {
  return 'Mon Titre Personnalisé'
}

Hooks et Middleware

// Hooks de génération
DataRelationManager.onUserGenerated((user) => {
  console.log(`Utilisateur créé: ${user.username}`)
})

🧪 Tests et Validation

Tests Unitaires

# Lancer les tests
npm test

# Coverage
npm run test:coverage

Validation des Données

# 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

# 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

// 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

# Setup rapide pour développement
npm run dev:with-fixtures

Tests Automatisés

# Tests avec données fraîches
npm run test:with-fixtures

Démonstrations Client

# Dataset de démo professionnel
veza-fixtures generate --env demo --format json

Tests de Performance

# Stress test complet
veza-fixtures scenario --run high-load

🔍 Dépannage

Problèmes Courants

Erreur de connexion base de données:

# Vérifier la configuration
veza-fixtures status
# Diagnostics complets
./tools/scripts/install.sh doctor

Données incohérentes:

# Validation et correction
veza-fixtures validate --check-relations
veza-fixtures clean --force
veza-fixtures seed --validate

Performance lente:

# Réduire la taille du dataset
veza-fixtures generate --users 50 --tracks 100

Logs et Debug

# Mode verbose
DEBUG=veza:fixtures npm run generate

# Logs détaillés
veza-fixtures generate --verbose

🤝 Contribution

Développement

# 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

// fixtures/core/generators/my-generator.ts
export class MyGenerator {
  static generate() {
    // Implémentation
  }
}

Nouveaux Scénarios

// 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 pour les détails.

🆘 Support


Fait avec ❤️ par l'équipe Veza Platform