neft
Version:
JavaScript. Everywhere.
68 lines (53 loc) • 1.31 kB
text/coffeescript
{utils} = Neft
stack = require './stack'
errorUtils = require './error'
log = switch true
when utils.isNode
require './loggers/node'
else
require './loggers/client'
SCOPE_PAD = ' '
MIN_TIME_WARN = 100
pad = ''
testStartTime = 0
exports.onTestsStart = ->
log.onTestsStart()
exports.onTestsEnd = ->
for error in stack.errors
errorString = errorUtils.toString error
errorString = errorString.replace /^/gm, SCOPE_PAD
msg = '\n'
if error.test
msg += "#{error.test.getFullMessage()}\n"
msg += errorString
log.error msg
log.onTestsEnd()
return
exports.onScopeStart = (scope) ->
{message} = scope
if message is ''
return
log.log pad + scope.message
pad += SCOPE_PAD
return
exports.onScopeEnd = (scope) ->
{message} = scope
if message is ''
return
pad = pad.slice SCOPE_PAD.length
return
exports.onTestStart = (test) ->
testStartTime = Date.now()
return
exports.onTestEnd = (test) ->
msg = pad + test.message
duration = Date.now() - testStartTime
if duration > MIN_TIME_WARN
ms = duration.toFixed(2)
msg += " (#{ms} ms)"
if test.fulfilled
log.ok msg
else
log.error msg
return