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.
- 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.
Install the library using npm:
npm install chaos-engineering-frontend
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.
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
},
});
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%
});
-
Clone the repository:
git clone https://github.com/bellangelo/chaos-engineering-frontend cd chaos-engineering-frontend
-
Install dependencies:
npm install
-
Run tests:
npm test