Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

exotec-error-server

cyrilleexo5922MIT1.0.0TypeScript support: included

Serveur de simulation d'erreurs HTTP pour tests Exotec

test, server, error, simulation, http, 502, 503, 504, exotec, playwright

readme

🚀 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'é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

# 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