2011-12-12 17:22:32 +00:00
|
|
|
#= require jasmine.HeadlessReporter.js
|
|
|
|
#
|
|
|
|
class jasmine.HeadlessConsoleReporter extends jasmine.HeadlessReporter
|
2011-10-27 00:05:05 +00:00
|
|
|
constructor: (@callback = null) ->
|
2011-12-12 17:22:32 +00:00
|
|
|
super(@callback)
|
|
|
|
|
2011-11-21 16:33:51 +00:00
|
|
|
@position = 0
|
|
|
|
@positions = "|/-\\"
|
2011-10-27 00:05:05 +00:00
|
|
|
|
|
|
|
reportRunnerResults: (runner) ->
|
2011-12-12 17:22:32 +00:00
|
|
|
super()
|
2011-10-27 00:05:05 +00:00
|
|
|
|
|
|
|
JHW.stdout.print("\n")
|
|
|
|
|
2011-12-12 17:22:32 +00:00
|
|
|
resultLine = this.formatResultLine(this._runtime())
|
2011-10-27 00:05:05 +00:00
|
|
|
|
|
|
|
if @failedCount == 0
|
|
|
|
JHW.stdout.puts("PASS: #{resultLine}".foreground('green'))
|
|
|
|
else
|
|
|
|
JHW.stdout.puts("FAIL: #{resultLine}".foreground('red'))
|
2011-11-29 20:36:17 +00:00
|
|
|
|
|
|
|
for result in @results
|
|
|
|
JHW.stdout.puts(result.toString())
|
2011-10-27 00:05:05 +00:00
|
|
|
|
2011-11-05 18:19:41 +00:00
|
|
|
if window.JHW
|
|
|
|
window.onbeforeunload = null
|
|
|
|
|
2011-10-27 00:05:05 +00:00
|
|
|
reportRunnerStarting: (runner) ->
|
2011-12-12 17:22:32 +00:00
|
|
|
super(runner)
|
2011-11-21 21:10:15 +00:00
|
|
|
JHW.stdout.puts("\nRunning Jasmine specs...".bright()) if !this.hasError()
|
2011-10-27 00:05:05 +00:00
|
|
|
|
|
|
|
reportSpecResults: (spec) ->
|
2011-12-12 17:22:32 +00:00
|
|
|
super(spec)
|
|
|
|
|
|
|
|
this._reportSpecResult(spec, {
|
|
|
|
success: (results) =>
|
|
|
|
JHW.stdout.print('.'.foreground('green'))
|
|
|
|
failure: (results) =>
|
|
|
|
JHW.stdout.print('F'.foreground('red'))
|
|
|
|
|
|
|
|
failureResult = new HeadlessReporterResult(spec.getFullName(), spec.getSpecSplitName())
|
|
|
|
testCount = 1
|
|
|
|
|
|
|
|
for result in results.getItems()
|
|
|
|
if result.type == 'expect' and !result.passed_
|
|
|
|
if foundLine = result.expectations[testCount - 1]
|
|
|
|
[ result.line, result.lineNumber ] = foundLine
|
|
|
|
failureResult.addResult(result)
|
|
|
|
testCount += 1
|
|
|
|
@results.push(failureResult)
|
|
|
|
})
|
2011-10-27 00:05:05 +00:00
|
|
|
|
2011-11-21 16:33:51 +00:00
|
|
|
reportSpecWaiting: ->
|
|
|
|
if !@timer
|
|
|
|
@timer = true
|
2011-12-12 17:22:32 +00:00
|
|
|
@first = true
|
|
|
|
|
|
|
|
this._waitRunner()
|
2011-11-21 16:33:51 +00:00
|
|
|
|
|
|
|
reportSpecRunning: ->
|
|
|
|
if @timer
|
|
|
|
clearTimeout(@timer)
|
|
|
|
@timer = null
|
|
|
|
JHW.stdout.print(Intense.moveBack())
|
|
|
|
|
2011-12-12 17:22:32 +00:00
|
|
|
formatResultLine: (runtime) ->
|
2011-10-27 00:05:05 +00:00
|
|
|
line = []
|
|
|
|
line.push(@length)
|
|
|
|
line.push((if @length == 1 then "test" else "tests") + ',')
|
|
|
|
|
|
|
|
line.push(@failedCount)
|
|
|
|
line.push((if @failedCount == 1 then "failure" else "failures") + ',')
|
|
|
|
|
|
|
|
line.push(runtime)
|
|
|
|
line.push((if runtime == 1.0 then "sec" else "secs") + '.')
|
|
|
|
|
|
|
|
line.join(' ')
|
|
|
|
|
2011-12-12 17:22:32 +00:00
|
|
|
_waitRunner: =>
|
|
|
|
@timer = setTimeout(
|
|
|
|
=>
|
|
|
|
if @timer
|
|
|
|
JHW.stdout.print(Intense.moveBack()) if !@first
|
|
|
|
JHW.stdout.print(@positions.substr(@position, 1).foreground('yellow'))
|
|
|
|
@position += 1
|
|
|
|
@position %= @positions.length
|
|
|
|
@first = false
|
|
|
|
this._waitRunner()
|
|
|
|
, 750
|
|
|
|
)
|