protractor-fake-backend

1.2.0 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i protractor-fake-backend

Weekly Downloads

0

Version

1.2.0

License

MIT

Last publish

Collaborators

  • ascripcaru