0.0.2 • Published 7 months ago
chaos-engineering-frontend v0.0.2
Chaos Engineering Frontend
Chaos Engineering Frontend is a JavaScript library for introducing controlled chaos into frontend applications. It uses a service worker to simulate failure scenarios like latency, errors, tampering, and offline mode, helping developers test the resilience of their applications.
Features
- Latency Simulation: Introduce random or configurable delays in API responses.
- Error Injection: Simulate HTTP errors like
500
,404
, or503
on selected requests. - Response Tampering: Modify the content of API responses to test frontend handling.
- Offline Simulation: Block requests to simulate offline scenarios.
- Dynamic Configuration: Update chaos settings at runtime.
Installation
Install the library using npm:
npm install chaos-engineering-frontend
Usage
1. Register the Service Worker
Register the service worker in your application:
import { registerChaosWorker } from 'chaos-engineering-frontend';
registerChaosWorker('/chaos-worker.js');
Make sure the chaos-worker.js
file is available in your public directory.
2. Configure Chaos Scenarios
You can configure chaos scenarios like latency, errors, and more:
import { configureChaos } from 'chaos-engineering-frontend';
configureChaos({
enabled: true,
latency: {
enabled: true,
min: 200, // Minimum latency in milliseconds
max: 1000, // Maximum latency in milliseconds
},
errors: {
enabled: true,
rate: 0.2, // 20% error rate
statusCodes: [500, 503], // Simulate server errors
},
offline: {
enabled: false,
rate: 0, // No offline simulation
},
});
3. Update Chaos Settings Dynamically
Update configurations at runtime using the updateChaosConfig
method:
import { updateChaosConfig } from 'chaos-engineering-frontend';
updateChaosConfig({
latency: { enabled: false }, // Disable latency
errors: { rate: 0.5 }, // Increase error rate to 50%
});
Development
Running Locally
Clone the repository:
git clone https://github.com/bellangelo/chaos-engineering-frontend cd chaos-engineering-frontend
Install dependencies:
npm install
Run tests:
npm test