ff

fake-fetch

fake window.fetch for tests

Showing:

Popularity

Downloads/wk

94

GitHub Stars

17

Maintenance

Last Commit

2yrs ago

Contributors

3

Package

Dependencies

3

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial