Provide a fallback for null display names. (#21)

* Provide a fallback for null display names.

* Check empty strings too.
This commit is contained in:
Ben Briggs 2016-06-28 10:29:23 +01:00 committed by Jeroen Engels
parent 47c69a381a
commit c4d04d00ee
3 changed files with 50 additions and 1 deletions

View file

@ -15,7 +15,7 @@ module.exports = function getUserInfo(username, cb) {
var body = JSON.parse(res.body);
var user = {
login: body.login,
name: body.name,
name: body.name || username,
avatar_url: body.avatar_url,
profile: body.blog || body.html_url
};

View file

@ -0,0 +1,48 @@
import test from 'ava';
import nock from 'nock';
import getUserInfo from './github';
test.cb('should handle errors', function (t) {
nock('https://api.github.com')
.get('/users/nodisplayname')
.replyWithError(404);
getUserInfo('nodisplayname', function (err) {
t.truthy(err);
t.end();
});
});
test.cb('should fill in the name when null is returned', function (t) {
nock('https://api.github.com')
.get('/users/nodisplayname')
.reply(200, {
login: 'nodisplayname',
name: null,
avatar_url: 'https://avatars2.githubusercontent.com/u/3869412?v=3&s=400',
html_url: 'https://github.com/nodisplayname'
});
getUserInfo('nodisplayname', function (err, info) {
t.falsy(err);
t.is(info.name, 'nodisplayname');
t.end();
});
});
test.cb('should fill in the name when an empty string is returned', function (t) {
nock('https://api.github.com')
.get('/users/nodisplayname')
.reply(200, {
login: 'nodisplayname',
name: '',
avatar_url: 'https://avatars2.githubusercontent.com/u/3869412?v=3&s=400',
html_url: 'https://github.com/nodisplayname'
});
getUserInfo('nodisplayname', function (err, info) {
t.falsy(err);
t.is(info.name, 'nodisplayname');
t.end();
});
});

View file

@ -31,6 +31,7 @@
},
"devDependencies": {
"ava": "^0.14.0",
"nock": "^8.0.0",
"nyc": "^6.4.2",
"xo": "^0.15.0"
},