diff --git a/lib/repository.js b/lib/repository.js index 5e75f4752..3a073b81d 100644 --- a/lib/repository.js +++ b/lib/repository.js @@ -541,7 +541,7 @@ Repository.prototype.treeBuilder = function() { Repository.prototype.defaultSignature = function() { var result = NodeGit.Signature.default(this); - if (!result.name()) { + if (!result || !result.name()) { result = NodeGit.Signature.now("unknown", "unknown@unknown.com"); } diff --git a/test/tests/signature.js b/test/tests/signature.js index 9c7613986..6a369969f 100644 --- a/test/tests/signature.js +++ b/test/tests/signature.js @@ -45,17 +45,14 @@ describe("Signature", function() { assert.equal(when.offset(), -now.getTimezoneOffset()); }); - it("can get a default signature when no user name is set", function() { + it("can get a default signature when no user name is set", function(done) { var savedUserName; var savedUserEmail; var cleanUp = function() { return exec("git config --global user.name \"" + savedUserName + "\"") .then(function() { - return exec( - "git config --global user.email \"" + - savedUserEmail + - "\""); + exec("git config --global user.email \"" + savedUserEmail + "\""); }); }; @@ -78,17 +75,15 @@ describe("Signature", function() { }) .then(function(repo) { var sig = repo.defaultSignature(); - assert.equal(sig.name(), "unknown"); assert.equal(sig.email(), "unknown@unknown.com"); - - }) - .then(function() { - cleanUp(); }) + .then(cleanUp) + .then(done) .catch(function(e) { cleanUp() .then(function() { + done(e); return Promise.reject(e); }); });