diff --git a/generate/input/descriptor.json b/generate/input/descriptor.json index fde52a83a..2c02270de 100644 --- a/generate/input/descriptor.json +++ b/generate/input/descriptor.json @@ -2533,10 +2533,10 @@ "status_flags": { "isReturn": true, "shouldAlloc": true - }, - "return": { - "isErrorCode": true } + }, + "return": { + "isErrorCode": true } }, "git_status_foreach": { diff --git a/test/tests/status.js b/test/tests/status.js index d74c7bee7..aa306d666 100644 --- a/test/tests/status.js +++ b/test/tests/status.js @@ -102,7 +102,27 @@ describe("Status", function() { .then(function() { return Promise.reject(e); }); + }); + }); + it("gets status on non-existent file results in error", function() { + var fileName = "non-existent-Status.file-test.txt"; + var repo = this.repository; + var filePath = path.join(repo.workdir(), fileName); + return exec("git clean -xdf", {cwd: reposPath}) + .then(function() { + assert.equal(false, fse.existsSync(filePath)); + return Status.file(repo, filePath) + .then(function() { + assert.fail("Non-existent file should throw error on Status.file"); + }, function(err) { + assert.equal(NodeGit.Error.CODE.ENOTFOUND, err.errno); + assert.equal("Status.file", err.errorFunction); + assert.equal( + "attempt to get status of nonexistent file '" + filePath + "'", + err.message + ); + }); }); }); });