exotec-error-server
Version:
Serveur de simulation d'erreurs HTTP pour tests Exotec
153 lines (111 loc) • 3.02 kB
Markdown
# 🚀 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