Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/john-doherty/fetch-reply-with
Unit test fetch requests with ease
https://github.com/john-doherty/fetch-reply-with
fetch fetch-api mock nodejs unit-testing
Last synced: about 3 hours ago
JSON representation
Unit test fetch requests with ease
- Host: GitHub
- URL: https://github.com/john-doherty/fetch-reply-with
- Owner: john-doherty
- License: mit
- Created: 2017-08-28T08:26:51.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-08T04:57:22.000Z (almost 2 years ago)
- Last Synced: 2024-10-28T16:58:44.324Z (20 days ago)
- Topics: fetch, fetch-api, mock, nodejs, unit-testing
- Language: JavaScript
- Homepage:
- Size: 123 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fetch-reply-with
[![npm version](https://badge.fury.io/js/fetch-reply-with.svg)](https://www.npmjs.com/package/fetch-reply-with)
[![Tests](https://github.com/john-doherty/fetch-reply-with/actions/workflows/ci.yml/badge.svg)](https://github.com/john-doherty/fetch-reply-with/actions/workflows/ci.yml)Simplifies unit tests by intercepting [fetch](https://developers.google.com/web/updates/2015/03/introduction-to-fetch#fetch) requests and returning [mocked](https://en.wikipedia.org/wiki/Mock_object) responses.
## Install
```bash
npm install --save-dev fetch-reply-with
```## Usage
```js
require('fetch-reply-with'); // <- `fetch` is now globally available// intercept GET http://orcascan.com and reply with...
fetch('http://orcascan.com', {// regular fetch option
method: 'GET',// add reply for this fetch
replyWith: {
status: 200,
body: 'Barcode Scanner app',
headers: {
'Content-Type': 'text/html'
},
delay: 500 // miliseconds to wait before responding (default = 0)
}
});// execute fetch request
fetch('http://orcascan.com').then(function(res){
return res.text();
})
.then(function(text){
// text === `Barcode Scanner app`
});
```Couple of things to note:
* Requests not setup with `replyWith` are executed as normal
* A `replyWith` can be modified by redefining the `replyWith`## Unit Tests
The project includes unit tests, to run the tests:
1. Checkout `git clone https://github.com/john-doherty/fetch-reply-with`
2. Navigate into project folder `cd fetch-reply-with`
3. Install dependencies `npm install`
4. Run the tests `npm test`## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -m 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :)## Star the repo
If you find this useful please star the repo, it helps us prioritize fixes :raised_hands:
## History
For change-log, check [releases](https://github.com/john-doherty/fetch-reply-with/releases).
## License
Licensed under [MIT License](LICENSE) © [John Doherty](https://twitter.com/mrjohndoherty)