Skip to content

Instantly share code, notes, and snippets.

@piscis
Created July 6, 2015 09:25
Show Gist options
  • Save piscis/be4e8903b2454a31ab17 to your computer and use it in GitHub Desktop.
Save piscis/be4e8903b2454a31ab17 to your computer and use it in GitHub Desktop.
loadRemoteFile JSON test
var assert = require('assert');
describe('Environment test', function(){
it('It should not fail', function(){
assert.equal(1,1);
});
});
describe('loading JSON from server', function(){
it('file exists and structure has `groups`', function(done){
// arrange
var validUrl = 'http://katas.tddbin.com/katas/es6/language/__grouped__.json';
// act
loadRemoteFile(validUrl, function(err, result){
// assert
assert.equal(err, null);
//assert.equal(result.substr(0,13),"{\n \"groups\":");
assert.equal('groups' in result, true);
done();
});
});
it('file exists and structure has NO `groups`', function(done){
// arrange
var validUrl = 'http://katas.tddbin.com/katas/es6/language/__all__.json';
// act
loadRemoteFile(validUrl, function(err, result){
// assert
assert.equal(err, null);
//assert.equal(result.substr(0,13),"{\n \"groups\":");
assert.deepEqual(result, {});
done();
});
});
});
var http = require('http');
var url = require('url');
function loadRemoteFile(fileUrl, onLoaded) {
var data = '';
var options = url.parse(fileUrl);
var request = http.request(options, function(res) {
res.on('data', function(chunk) {data += chunk;});
res.on('end', function() {
var result = JSON.parse(data);
if(("groups" in result)){
onLoaded(null, result);
}else{
onLoaded(null, {});
}
});
});
request.on('error', function(e) { onLoaded(e); });
request.end();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment