forked from matthew-andrews/isomorphic-fetch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
api.test.js
50 lines (42 loc) · 1.12 KB
/
api.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*global fetch*/
"use strict";
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);
});
});