0.0.2 • Published 11 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, or503on 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-frontendUsage
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-frontendInstall dependencies:
npm installRun tests:
npm test