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

protractor-fake-backend

v1.2.0

Published

Mock the http calls of your angular application when testing it with protractor

Downloads

9

Readme

protractor-fake-backend

Build Status Dependency Status devDependency Status Known Vulnerabilities Codacy Badge

A NodeJS module to be used alongside Protractor

Installation

npm install --save-dev protractor-fake-backend

Configuration

In your protractor configuration file you need to do the following:

    exports.config = {
      // other stuff
      onPrepare: function() {
        // other stuff
        require('protractor-fake-backend').config = {
          mocksDir: 'path/to/mocks/directory', // default 'mocks'
          defaultMocks: ['some/mock', 'another/**', {request:{}, response:{}}] // default []
        };
      }
    }
  • mocksDir should receive the relative path of the directory that contains the mock files.
  • defaultMocks must be an array. The array can contain mock objects and file names (strings). These are included every time (unless excludeDefaultMocks = true). You can use patterns for file names

Mock files

Mock files must be written in javascript and must export a mock object or an array of mock objects

    module.exports = {
      request: {
        path: '/the/path',
        method: 'GET'
      },
      response: {
        data: 'bla'
      }
    }

or

    module.exports = [
      {
        // first mock
      }, {
        // second mock
      }
    ]

Reference mock object

{
  request: {
    path: '/must/start/with/a/slash',
    method: 'POST',
    data: 'request body',
    headers: {
      first: 1,
      second: 'bla'
    },
    params: {
      first: 1,
      second: 'woo'
    }
  },
  response: {
    status: 200,
    data: 'bla',
    headers: {
      first: 1,
      second: 'two'
    }
  }
}

Usage

var fakeBackend = require('protractor-fake-backend');
var page = require('your/page/object');

describe('your test', function() {
  beforeAll(function() {
    fakeBackend(['first/file', 'second/file']);
    page.get();
  });

  it('check the last request', function() {
    var expectation = {
          path: '/the/path',
          method: 'POST',
          body: 'request body'
        };

    fakeBackend.clearRequests();

    page.someButton.click();

    fakeBackend.getLastRequest().then(function(request) {
      expect(request).toEqual(expectation);
    });
  });
});

API

fakeBackend(mocks, excludeDefaultMocks)

Adds the mock module on protractor. Needs to be called in each spec.

mocks if not passed, only default mocks will be included.

Can be:

  • A string representing a file name or a pattern. E.g. 'some/file' or 'file/**'
  • An array that can contain a combination of file names(or patterns) and mock objects

excludeDefaultMocks by default is false. As the name says, if you pass true then the default mocks declared in config won't be added

fakeBackend.teardown()

Removes the mock module from protractor

fakeBackend.getRequests()

Returns an array containing all intercepted requests

fakeBackend.getLastRequest()

Returns the last intercepted request

fakeBackend.clearRequests()

Deletes all the intercepted requests

fakeBackend.addMock(mock)

Adds one or more mocks. The mock param can be an Object or an Array of Objects

fakeBackend.removeMocks()

Removes all the mocks from the module