diff --git a/lib/actions/keys.coffee b/lib/actions/keys.coffee index 46fc095a..98c4ba02 100644 --- a/lib/actions/keys.coffee +++ b/lib/actions/keys.coffee @@ -40,16 +40,4 @@ exports.add = permissions.user (params) -> key = key.trim() resin.models.key.create(params.name, key, callback) - ], (error) -> - return if not error? - - # TODO: Make handle() check the error type - # and accomodate as most as possible to prevent - # this types of checks in client code. - if error.code is 'EISDIR' - error.message = "File is a directory: #{error.path}" - - if error.code is 'ENOENT' - error = new Error("File not found: #{error.path}") - - errors.handle(error) + ], errors.handle diff --git a/lib/errors/errors.coffee b/lib/errors/errors.coffee index 2b466fd5..6fea65cf 100644 --- a/lib/errors/errors.coffee +++ b/lib/errors/errors.coffee @@ -7,7 +7,13 @@ exports.handle = (error, exit = true) -> if process.env.DEBUG log.error(error.stack) else - if error.message? + if error.code is 'EISDIR' + log.error("File is a directory: #{error.path}") + + else if error.code is 'ENOENT' + log.error("No such file or directory: #{error.path}") + + else if error.message? log.error(error.message) if _.isNumber(error.exitCode) diff --git a/lib/errors/errors.spec.coffee b/lib/errors/errors.spec.coffee index 935b2e9c..58fe303e 100644 --- a/lib/errors/errors.spec.coffee +++ b/lib/errors/errors.spec.coffee @@ -61,3 +61,19 @@ describe 'Errors:', -> expect(logErrorStub).to.have.been.calledOnce expect(logErrorStub).to.have.been.calledWith(error.stack) delete process.env.DEBUG + + it.only 'should handle EISDIR', -> + error = new Error() + error.code = 'EISDIR' + error.path = 'hello' + checkProcessExitOption error, false, (processExitStub, logErrorStub) -> + expect(logErrorStub).to.have.been.calledOnce + expect(logErrorStub).to.have.been.calledWith('File is a directory: hello') + + it.only 'should handle ENOENT', -> + error = new Error() + error.code = 'ENOENT' + error.path = 'hello' + checkProcessExitOption error, false, (processExitStub, logErrorStub) -> + expect(logErrorStub).to.have.been.calledOnce + expect(logErrorStub).to.have.been.calledWith('No such file or directory: hello')