GitXplorerGitXplorer
d

msw-chaos-composition

public
4 stars
0 forks
0 issues

Commits

List of commits on branch main.
Unverified
9daf080ab8c52a1df961292e307c3b246b7d5f54

1.0.1

committed 4 years ago
Unverified
4d35fefda8cac10aa0b9eddef41d235b65e3fbab

npm publish at first v1.0.0

committed 4 years ago
Unverified
498ea16fad0156a3c4c29b5cb25f7e9935a021db

add npm information

committed 4 years ago
Unverified
269d08f1c6ef8b329b0b5aa5ccdb18987ea2809f

first commit

committed 4 years ago

README

The README file for this repository.

Chaos Mock Service Worker logo

msw-chaos-composition

msw-chaos-composition add chaos into the response of msw.

Features

  • Randomize Mock Service Worker response 🌪
  • Delay response time ⌛️

Install

npm install msw-chaos-composition

or

yarn add msw-chaos-composition

Usage

Basic msw usage

const handler = rest.get("/hello", (req, res, ctx) => {
  return res(
    ctx.status(200),
    ctx.json({
      message: "hello world",
    })
  );
});

const server = setupServer(handler);
server.listen();

fetch /hello then response is { status: 200, body: { message: "hello world" } }

Using mws-chaos-composition

Use chaosRes() created by createChaosResponse()

import { createChaosResponse } from "msw-chaos-composition";

const chaosRes = createChaosResponse();
const handler = rest.get("/hello", (req, res, ctx) => {
  return chaosRes(
    ctx.status(200),
    ctx.json({
      message: "hello world",
    })
  );
});

const server = setupServer(handler);
server.listen();

fetch /hello then one of the following will be returned as a response.

  • { status: 429, body: "Too Many Requests", }
  • { status: 500, body: "Internal Server Error" }
  • { status: 502, body: "Bad Gateway" }
  • { status: 503, body: "Service Unavailable" }
  • { status: 504, body: "Gateway Timeout" }

Params

Specify the response that will result in an error

const errors = [
  {
    status: 500,
    body: "Internal Server Error",
    delay: 500,
    rate: 10,
  },
  {
    status: 504,
    body: "Gateway Timeout",
    delay: 100000,
    rate: 20,
  },
];

const chaosRes = createChaosResponse(errors);
const handler = rest.get("/hello", (req, res, ctx) => {
  return chaosRes(
    ctx.status(200),
    ctx.json({
      message: "hello world",
    })
  );
});

const server = setupServer(handler);
server.listen();

fetch /hello then one of the following will be returned as a response.

  • { status: 500, body: "Internal Server Error" }
  • { status: 504, body: "Gateway Timeout" }