npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mock-rest-request

v0.0.3

Published

Connect middleware to mock REST requests

Downloads

9

Readme

mock-rest-request

Build Status

NPM

This library can be used to Mock REST requests in NodeJS. It works with Connect middleware and adds on the fly mock functionality to a NodeJS server.

Why use this library

Sometimes when you're testing a website or app that's backed by a NodeJS server, you'd like to see what happens if the server would give different results. That's what this library does for you.

How it works?

You send a POST request to your webserver telling it that you want to mock a certain request. This POST request contains the mock data. After that, GET requests will return the mocked data.

Of course also wotks with other methods besides GET and you can also mock status codes other than 200.

Use with Grunt

The above scenario can be easily applied to web applications build with Grunt when using Grunt with Connect middleware. See below for examples of how to configure this.

Installation

Install with NPM and add to your project.

With Connect middleware

var mockRequests = require('mock-rest-request');
var app = connect()
  .use(mockRequests())

http.createServer(app).listen(3000);

Without Connect middleware

var http = require('http');
var mockRequests = require('mock-rest-request');
http.createServer(function (req, res) {
  mockRequests()(req, res);
}).listen(3000);

In Gruntfile.js

var mockRequests = require('mock-rest-request');

connect: {
  options: {
    // your options
  },
  livereload: {
    options: {
    },
    middleware: function (connect, options) {
      var middlewares = [];

      middlewares.push(mockRequests());

      options.base.forEach(function (base) {
        middlewares.push(connect.static(base));
      });

      return middlewares;
    }
  }
}

Usage

Once you've added mock-rest-request to your project, you can start making POST requests to mock certain rest requests. These call need to start the path with /mock, followed by the path to mock.

Let's say we have our server running on localhost, port 3000 and we want to mock the call that gives back the user. With curl we can send the POST request telling the server that we want to mock this request.

curl -X POST -d '{"name":"Foo"}' http://localhost:3000/mock/api/user

After that, normal calls (like the ones coming from our web application) will then return the mocked data.

curl http://localhost:3000/api/user

{"name":"Foo"}

To remove the mock for a certain path, call /reset on the path.

curl http://localhost:3000/reset/api/user