Skip to content

Bellangelo/chaos-engineering-frontend

Repository files navigation

Chaos Engineering Frontend

Run Tests

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, or 503 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

  1. Clone the repository:

    git clone https://github.com/bellangelo/chaos-engineering-frontend
    cd chaos-engineering-frontend
  2. Install dependencies:

    npm install
  3. Run tests:

    npm test

About

Chaos Engineering Frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published