class Blade::TestResults
Constants
- STATUS_DOTS
Attributes
failures[R]
results[R]
session_id[R]
state[R]
total[R]
Public Class Methods
new(session_id)
click to toggle source
# File lib/blade/test_results.rb, line 6 def initialize(session_id) @session_id = session_id reset Blade.subscribe("/tests") do |details| if details[:session_id] == session_id event = details.delete(:event) try("process_#{event}", details) end end end
Public Instance Methods
process_begin(details)
click to toggle source
# File lib/blade/test_results.rb, line 25 def process_begin(details) reset @state = "running" @total = details[:total] publish(total: @total) end
process_end(details)
click to toggle source
# File lib/blade/test_results.rb, line 44 def process_end(details) @state = failures.zero? ? "finished" : "failed" publish(completed: true) end
process_result(details)
click to toggle source
# File lib/blade/test_results.rb, line 32 def process_result(details) result = details.slice(:status, :name, :message) @results << result if result[:status] == "fail" @state = "failing" @failures += 1 end publish(result) end
publish(message = {})
click to toggle source
# File lib/blade/test_results.rb, line 49 def publish(message = {}) Blade.publish("/results", message.merge(state: state, session_id: session_id)) end
reset()
click to toggle source
# File lib/blade/test_results.rb, line 18 def reset @results = [] @state = "pending" @total = 0 @failures = 0 end