spectacular
Version:
Advanced BDD framework for CoffeeScript and JavaScript
52 lines (40 loc) • 1.39 kB
text/coffeescript
class spectacular.formatters.console.ErrorFormatter
constructor: (, ) ->
format: ->
promise = new spectacular.Promise
formatters = spectacular.formatters.console
res = .message
res += '\n'
if .stack?
stackFormatter = new formatters.ErrorStackFormatter .stack,
if .showSource
{file, line, column} = stackFormatter.parser.details(stackFormatter.parser.lines[0])
if file?
fileFormatter = new formatters.ErrorSourceFormatter , file, line, column
fileFormatter
.format()
.then (result) =>
res += spectacular.utils.colorize result, 'grey', .colors
stackFormatter.format()
.then (result) ->
res += result
promise.resolve res
.fail (reason) ->
console.log reason
promise.resolve res
else
stackFormatter
.format()
.then (result) ->
res += result
promise.resolve res
.fail (reason) ->
console.log reason
promise.resolve res
else
res += stackFormatter.format()
promise.resolve res
else
promise.resolve res + '\n'
promise
formatMessage: (message) -> "\n#{spectacular.utils.indent message or ''}"