amis-rpc-design/node_modules/isomorphic-fetch/test/api.test.js
2023-10-07 19:42:30 +08:00

52 lines
1.2 KiB
JavaScript

/*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);
});
});