Sha256: 344f9177dcc762a577fa6b2825df36a384f44df5a1f5eaa412637d8183fae4bd
Contents?: true
Size: 1.94 KB
Versions: 10
Compression:
Stored size: 1.94 KB
Contents
#= require teaspoon/reporters/html/base_view class Teaspoon.Reporters.HTML.SpecView extends Teaspoon.Reporters.BaseView viewId = 0 constructor: (@spec, @reporter) -> @views = @reporter.views @spec.viewId = viewId += 1 @views.specs[@spec.viewId] = @ super build: -> classes = ["spec"] classes.push("state-pending") if @spec.pending super(classes.join(" ")) @el.innerHTML = """<a href="#{@spec.link}">#{@htmlSafe(@spec.description)}</a>""" @parentView = @buildParent() @parentView.append(@el) buildParent: -> parent = @spec.parent return @reporter unless parent if parent.viewId @views.suites[parent.viewId] else view = new (Teaspoon.resolveClass("Reporters.HTML.SuiteView"))(parent, @reporter) @views.suites[view.suite.viewId] = view buildErrors: -> div = @createEl("div") html = "" for error in @spec.errors() html += """<strong>#{@htmlSafe(error.message)}</strong><br/>#{@htmlSafe(error.stack || "Stack trace unavailable")}""" div.innerHTML = html @append(div) updateState: (spec, elapsed) -> result = spec.result() @clearClasses() if result.status == "pending" @updatePending(spec, elapsed) else if result.status == "failed" @updateFailed(spec, elapsed) else if result.skipped @updateDisabled(spec, elapsed) else @updatePassed(spec, elapsed) updatePassed: (spec, elapsed) -> @addStatusClass("passed") @addClass("slow") if elapsed > Teaspoon.slow @el.innerHTML += "<span>#{elapsed}ms</span>" updateFailed: (spec, elapsed) -> @addStatusClass("failed") @buildErrors() @parentView.updateState?("failed") updatePending: (spec, elapsed) -> @addStatusClass("pending") updateDisabled: (spec, elapsed) -> # noop clearClasses: -> @el.className = "" addStatusClass: (status) -> @addClass("state-#{status}") addClass: (name) -> @el.className += " #{name}"
Version data entries
10 entries across 10 versions & 1 rubygems