Skip to content
Branch: master
Go to file
Code

Latest commit

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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

You can’t perform that action at this time.