diff --git a/lib/check-npm.js b/lib/check-npm.js index 9de2bd9..c7b65f0 100644 --- a/lib/check-npm.js +++ b/lib/check-npm.js @@ -99,9 +99,11 @@ exports.CheckNPM.prototype.getNewPackages = function(rawPackages, callback) { exports.CheckNPM.prototype.mungePackage = function(rawPackage) { - var distTags = rawPackage['dist-tags'] || {}; + var distTags = rawPackage['dist-tags'] || {}, + author = rawPackage.author || {}; return { + author: author.name ? author.name : '', version: distTags.latest || false, description: rawPackage.description || '', name: rawPackage.name, diff --git a/test/test-check-npm.js b/test/test-check-npm.js index 1f04831..7ad2ca0 100644 --- a/test/test-check-npm.js +++ b/test/test-check-npm.js @@ -62,10 +62,12 @@ describe('CheckNPM', function() { 'latest': '0.0.1' }, name: 'foolib', - description: 'awesome' + description: 'awesome', + author: {name: 'ben'} }, mungedPackage = checkNPM.mungePackage(rawPackage); + equal('ben', mungedPackage.author); equal('foolib', mungedPackage.name); equal('awesome', mungedPackage.description); equal('0.0.1', mungedPackage.version); @@ -84,6 +86,27 @@ describe('CheckNPM', function() { equal(false, mungedPackage.version); equal('https://npmjs.org/package/foolib', mungedPackage.url); }); + + it('should handle missing author key', function() { + var checkNPM = new CheckNPM(), + rawPackage = { + name: 'foolib' + }, + mungedPackage = checkNPM.mungePackage(rawPackage); + + equal('', mungedPackage.author); + }); + + it('should handle missing author.name', function() { + var checkNPM = new CheckNPM(), + rawPackage = { + name: 'foolib', + author: {email: 'bencoe@gmail.com'} + }, + mungedPackage = checkNPM.mungePackage(rawPackage); + + equal('', mungedPackage.author); + }); }); describe('#majorRelease', function() {