spectacular
Version:
Advanced BDD framework for CoffeeScript and JavaScript
57 lines (45 loc) • 1.65 kB
text/coffeescript
class spectacular.formatters.console.ExampleResultsFormatter
constructor: (, , ) ->
format: ->
result = .result
promise = new spectacular.Promise
switch result.state
when 'errored'
.then (msg) ->
promise.resolve msg
when 'failure'
if result.expectations.length > 0
promises = []
for expectation in result.expectations
unless expectation.success
reason =
message: expectation.message
stack: expectation.trace.stack
promises.push
spectacular.Promise.all(promises)
.then (results) ->
promise.resolve results.join ''
else
.then (msg) ->
promise.resolve msg
else
promise.resolve ''
promise
formatExample: (message, error, state) ->
errorFormatter = new spectacular.formatters.console.ErrorFormatter error,
errorFormatter.format().then (errorTxt) =>
res = message, BADGE_MAP[state], COLOR_MAP[state]
res + '\n' + errorTxt
badge: (message, label, color) ->
c = spectacular.utils.colorize
hc = .colors
res = ''
res += c(c(" #{label} ".toUpperCase(), 'inverse', hc), 'bold', hc)
res += " #{@id} "
res += c(' ', 'inverse', hc)
res += ' '
res += message
res = c(res, color, hc)
res