diff options
Diffstat (limited to 'node_modules/isomorphic-fetch/test/api.test.js')
-rw-r--r-- | node_modules/isomorphic-fetch/test/api.test.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/isomorphic-fetch/test/api.test.js b/node_modules/isomorphic-fetch/test/api.test.js new file mode 100644 index 000000000..c25a5cbe8 --- /dev/null +++ b/node_modules/isomorphic-fetch/test/api.test.js @@ -0,0 +1,51 @@ +/*global fetch*/ +"use strict"; + +require('es6-promise').polyfill(); +require('../fetch-npm-node'); +var expect = require('chai').expect; +var nock = require('nock'); +var good = 'hello world. 你好世界。'; +var bad = 'good bye cruel world. 再见残酷的世界。'; + +function responseToText(response) { + if (response.status >= 400) throw new Error("Bad server response"); + return response.text(); +} + +describe('fetch', function() { + + before(function() { + nock('https://mattandre.ws') + .get('/succeed.txt') + .reply(200, good); + nock('https://mattandre.ws') + .get('/fail.txt') + .reply(404, bad); + }); + + it('should be defined', function() { + expect(fetch).to.be.a('function'); + }); + + it('should facilitate the making of requests', function(done) { + fetch('//mattandre.ws/succeed.txt') + .then(responseToText) + .then(function(data) { + expect(data).to.equal(good); + done(); + }) + .catch(done); + }); + + it('should do the right thing with bad requests', function(done) { + fetch('//mattandre.ws/fail.txt') + .then(responseToText) + .catch(function(err) { + expect(err.toString()).to.equal("Error: Bad server response"); + done(); + }) + .catch(done); + }); + +}); |