jasmine-headless-webkit/jasmine/headless_reporter_result.coffee

45 lines
1.4 KiB
CoffeeScript
Raw Normal View History

# Try to get the line number of a failed spec
class window.HeadlessReporterResult
constructor: (@name, @splitName) ->
@results = []
2011-10-26 02:22:29 +00:00
addResult: (message) ->
@results.push(message)
2011-10-26 02:22:29 +00:00
print: ->
output = @name.foreground('red')
bestChoice = HeadlessReporterResult.findSpecLine(@splitName)
output += " (#{bestChoice.file}:#{bestChoice.lineNumber})".foreground('blue') if bestChoice.file
JHW.stdout.puts "\n\n#{output}"
for result in @results
output = result.message.foreground('red')
if result.lineNumber
output += " (line ~#{bestChoice.lineNumber + result.lineNumber})".foreground('red').bright()
JHW.stdout.puts(" " + output)
JHW.stdout.puts(" #{result.line}".foreground('yellow'))
2011-10-26 02:22:29 +00:00
@findSpecLine: (splitName) ->
bestChoice = { accuracy: 0, file: null, lineNumber: null }
for file, lines of HeadlessReporterResult.specLineNumbers
index = 0
lineNumber = 0
while newLineNumberInfo = lines[splitName[index]]
if newLineNumberInfo.length == 0
lineNumber = newLineNumberInfo[0]
else
lastLine = null
for line in newLineNumberInfo
lastLine = line
break if line > lineNumber
lineNumber = lastLine
index++
if index > bestChoice.accuracy
bestChoice = { accuracy: index, file: file, lineNumber: lineNumber }
2011-10-26 02:22:29 +00:00
bestChoice