mirror of
https://github.com/balena-io/balena-cli.git
synced 2024-12-18 21:27:51 +00:00
Implement errors module
This commit is contained in:
parent
cbf7039fca
commit
90cb463390
14
lib/errors/errors.coffee
Normal file
14
lib/errors/errors.coffee
Normal file
@ -0,0 +1,14 @@
|
||||
TypedError = require('typed-error')
|
||||
log = require('../log/log')
|
||||
|
||||
exports.NotFound = class NotFound extends TypedError
|
||||
contructor: (name) ->
|
||||
@message = "Couldn't find #{name}"
|
||||
|
||||
exports.handle = (error, exit = true) ->
|
||||
return if not error? or error not instanceof Error
|
||||
|
||||
if error.message?
|
||||
log.error(error.message)
|
||||
|
||||
process.exit(1) if exit
|
49
lib/errors/errors.spec.coffee
Normal file
49
lib/errors/errors.spec.coffee
Normal file
@ -0,0 +1,49 @@
|
||||
expect = require('chai').expect
|
||||
sinon = require('sinon')
|
||||
log = require('../log/log')
|
||||
errors = require('./errors')
|
||||
|
||||
MESSAGES =
|
||||
helloWorld: 'Hello World'
|
||||
|
||||
describe 'Errors:', ->
|
||||
|
||||
describe '#handle()', ->
|
||||
|
||||
it 'should log the error message to stderr', ->
|
||||
logErrorStub = sinon.stub(log, 'error')
|
||||
error = new Error(MESSAGES.helloWorld)
|
||||
errors.handle(error, false)
|
||||
expect(logErrorStub).to.have.been.calledWith(MESSAGES.helloWorld)
|
||||
logErrorStub.restore()
|
||||
|
||||
it 'should do nothing if error is not an instance of Error', ->
|
||||
logErrorStub = sinon.stub(log, 'error')
|
||||
|
||||
for item in [
|
||||
undefined
|
||||
null
|
||||
[ 1, 2, 3 ]
|
||||
'Hello'
|
||||
{ message: 'foo bar' }
|
||||
]
|
||||
errors.handle(item, false)
|
||||
|
||||
expect(logErrorStub).to.not.have.been.called
|
||||
logErrorStub.restore()
|
||||
|
||||
checkProcessExitOption = (value, expectations) ->
|
||||
processExitStub = sinon.stub(process, 'exit')
|
||||
logErrorStub = sinon.stub(log, 'error')
|
||||
errors.handle(new Error(MESSAGES.helloWorld), value)
|
||||
expectations(processExitStub)
|
||||
processExitStub.restore()
|
||||
logErrorStub.restore()
|
||||
|
||||
it 'should exit if the last parameter is true', ->
|
||||
checkProcessExitOption true, (processExitStub) ->
|
||||
expect(processExitStub).to.have.been.called
|
||||
|
||||
it 'should not exit if the last parameter is false', ->
|
||||
checkProcessExitOption false, (processExitStub) ->
|
||||
expect(processExitStub).to.not.have.been.called
|
@ -43,6 +43,7 @@
|
||||
"open": "0.0.5",
|
||||
"inquirer": "~0.8.0",
|
||||
"cliff": "~0.1.9",
|
||||
"underscore.string": "~2.4.0"
|
||||
"underscore.string": "~2.4.0",
|
||||
"typed-error": "~0.1.0"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user