UNPKG

exotec-error-server

Version:

Serveur de simulation d'erreurs HTTP pour tests Exotec

153 lines (111 loc) 3.02 kB
# 🚀 Exotec Error Server Serveur de simulation d'erreurs HTTP pour tests automatisés Exotec. ## 📦 Installation ### Installation globale ```bash npm install -g exotec-error-server ``` ### Installation locale ```bash npm install exotec-error-server ``` ## 🚀 Utilisation ### CLI (ligne de commande) ```bash # Mode normal (pas d'erreur) exotec-server # Spécifier le code d'erreur et le port exotec-server --error 502 --port 8080 # Toutes les options exotec-server --error 503 --port 3000 --host localhost --verbose ``` ### API Programmatique ```typescript import { startServer } from 'exotec-error-server'; // Démarrer le serveur const server = await startServer({ errorMode: 502, port: 3000, host: '0.0.0.0' }); // Arrêter le serveur await server.stop(); ``` ## 🔧 Codes d'erreur supportés | Code | Description | |------|-------------| | 0 | Mode normal (pas d'erreur) | | 502 | Bad Gateway | | 503 | Service Unavailable | | 504 | Gateway Timeout | ## 🛠️ API ### `startServer(config: ServerConfig): Promise<ServerInstance>` Démarre le serveur avec la configuration spécifiée. #### Paramètres - `errorMode`: Code d'erreur HTTP (0, 502, 503, 504) - `port`: Port d'écoute - `host`: Adresse d'écoute (optionnel, défaut: '0.0.0.0') #### Retourne Promise qui résout avec une instance de serveur contenant: - `server`: Instance du serveur HTTP - `stop()`: Fonction pour arrêter le serveur - `getConfig()`: Fonction pour obtenir la configuration ## 📝 Exemples ### Test avec curl ```bash # Démarrer le serveur exotec-server --error 502 --port 3000 # Tester dans un autre terminal curl -X POST http://localhost:3000/test \ -H "Content-Type: application/json" \ -d '{"test": "data"}' # Retourne: HTTP 502 Bad Gateway ``` ### Utilisation dans les tests Playwright ```typescript import { test, expect } from '@playwright/test'; import { startServer } from 'exotec-error-server'; test('test avec simulation d\'erreur 502', async () => { const server = await startServer({ errorMode: 502, port: 3000 }); // Vos tests ici... // Le serveur retournera toujours 502 pour les requêtes POST await server.stop(); }); ``` ### Capture de requêtes ```typescript import { startServer, getCapturedRequests, clearCapturedRequests } from 'exotec-error-server'; // Mode normal pour capturer les requêtes const server = await startServer({ errorMode: 0, port: 3000 }); // Faire vos tests... // Récupérer les requêtes capturées const requests = getCapturedRequests(); console.log('Requêtes reçues:', requests); // Nettoyer clearCapturedRequests(); await server.stop(); ``` ## 🧪 Tests ```bash npm test ``` ## 🏗️ Développement ```bash # Cloner le projet git clone <repository-url> cd exotec-error-server # Installer les dépendances npm install # Développement avec rechargement automatique npm run dev -- 502 3000 # Compiler npm run build # Tester localement npm link exotec-server --help ``` ## 📄 Licence MIT © Exotec