🚀 Exotec Error Server
Serveur de simulation d'erreurs HTTP pour tests automatisés Exotec.
📦 Installation
Installation globale
npm install -g exotec-error-server
Installation locale
npm install exotec-error-server
🚀 Utilisation
CLI (ligne de commande)
# 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
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'écoutehost
: 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 HTTPstop()
: Fonction pour arrêter le serveurgetConfig()
: Fonction pour obtenir la configuration
📝 Exemples
Test avec curl
# 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
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
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
npm test
🏗️ Développement
# 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