fake-fetch

2.3.0 • Public • Published

fake-fetch Build Status

fake window.fetch for tests.

Installation

$ npm install fake-fetch --save-dev

Usage

var fakeFetch = require('fake-fetch');
 
beforeEach(fakeFetch.install);
afterEach(fakeFetch.restore);
 
it("should fetch what you need", done => {
  fakeFetch.respondWith({"foo": "bar"});
 
  fetch('/my-service', {headers: new Headers({accept: 'application/json'})}).then(data => {
    expect(fakeFetch.getUrl()).toEqual('/my-service');
    expect(fakeFetch.getMethod()).toEqual('get');
    expect(data._bodyText).toEqual('{"foo":"bar"}');
    expect(fakeFetch.getRequestHeaders()).toEqual(new Headers({accept: 'application/json'}));
    done();
  });
});

API

install

Mock window.fetch before doing anything.

restore

Restore window.fetch.

getUrl

Returns request URL.

getMethod

Returns request method. Default is 'get'.

getBody

Returns message body. Default is '' (empty string).

getRequestHeaders

Returns request headers. Default is {} (empty object).

getOptions

Returns request options. Default is {} (empty object)

called (Boolean getter)

Check whether this instance of fakeFetch was ever called

respondWith(data, options)

data

Type: object

The object to be sent as request-body.

options

Type: object

Custom Response options, see Response

Remarks

You may find necessary to use browserify before using fake-fetch within your specs, e.g.

// karma.conf.js
preprocessors: {
  './node_modules/fake-fetch/index.js': [ 'browserify' ]
}

Real-life usage example can be found here https://github.com/msn0/file-downloader/blob/master/test.js

License

MIT © Michał Jezierski

Readme

Keywords

Package Sidebar

Install

npm i fake-fetch

Weekly Downloads

66

Version

2.3.0

License

MIT

Unpacked Size

14.5 kB

Total Files

8

Last publish

Collaborators

  • michal.jezierski