aboutsummaryrefslogtreecommitdiff
path: root/node_modules/isomorphic-fetch/test/api.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/isomorphic-fetch/test/api.test.js')
-rw-r--r--node_modules/isomorphic-fetch/test/api.test.js51
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);
+ });
+
+});