1.0.14 • Published 3 years ago

@jarvis-catalyst/mockserver v1.0.14

Weekly downloads
22
License
ISC
Repository
-
Last release
3 years ago

Jarvis Catalyst Mock Server

Simple mock server without dependencies, zero configuration and super easy ussing

How to use

this library creates a folder service and static

  • install this package npm i @jarvis-catalyst/mockserver
  • create a folder mockserver at the root of your project
  • create into mockserver folder a index.js file
  • add this code
const mock = require("@jarvis-catalyst/mockserver");
mock.default({
  dir: __dirname,
});
  • add the task to your package.json
"devserver": "node ./mockserver/index.js"

Props

  • port: defines the port where the server starts (default: 4000)
  • dir: define where services are scanned
  • delayResponse: defines the delay time when the server responds (default: 100ms)

Create a Endpoint

  • create your services into services folder
  • it is recommended to use the following name structure {verb}-{path}-your-{endpint}.js

Example:

// for a service such that
module.exports = () => ({
  path: "/indexes/v1/products/facets",
  method: "GET",
  response: (req, res, querystring, data, params) => ({
    data: {
      data: {},
    },
    status: 200,
  }),
  delay: 1000,
});

// the file name will be
// get-indexes-v1-products-facets.js

props your endpoints

// get_hello-world.js
const mockAsync = async () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Hello World");
    }, 100);
  });
};

module.exports = () => ({
  path: "/hello-world/:id", // :id is a varaible param
  method: "GET", // http verb
  /**
   * @pamam {IncomingMessage} res
   * @param {ServerResponse} res
   * @param {any} querystring - object /page?12 > { page: 12}
   * @param {any} data - object boby
   * @param {string[]} params - array http://foo.com/path/:id/:name > [12, 'jhon']
   */
  response: async (req, res, querystring, data, params) => {
    const message = await mockAsync();
    return {
      // data represent a return body
      data: {
        id: params[0], // is equal to value into :id
        message,
      },
      status: 200, // http status code
    };
  },
  delay: 500, // define delay this endpoint
});
1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago