This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
/*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); |
|
}); |
|
|
|
});
|
|
|