class ProbeDockRSpec::TestResult
Attributes
category[R]
data[R]
duration[R]
key[R]
message[R]
name[R]
tickets[R]
Public Class Methods
extract_grouped(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 58 def self.extract_grouped example, groups = [] !!groups.collect{ |g| meta(g)[:grouped] }.compact.last end
extract_key(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 62 def self.extract_key example, groups = [] (groups.collect{ |g| meta(g)[:key] } << meta(example)[:key]).compact.reject{ |k| k.strip.empty? }.last end
meta(holder)
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 66 def self.meta holder meta = holder.metadata[:probe_dock] || {} if meta.kind_of? String { key: meta } elsif meta.kind_of? Hash meta else {} end end
new(project, example, groups = [], options = {})
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 7 def initialize project, example, groups = [], options = {} @category = project.category @tags = project.tags @tickets = project.tickets @grouped = extract_grouped example, groups [ :key, :name, :category, :tags, :tickets, :data ].each do |attr| instance_variable_set "@#{attr}".to_sym, send("extract_#{attr}".to_sym, example, groups) end @passed = !!options[:passed] @duration = options[:duration] @message = options[:message] end
Public Instance Methods
grouped?()
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 28 def grouped? @grouped end
passed?()
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 24 def passed? @passed end
to_h(options = {})
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 38 def to_h options = {} { 'p' => @passed, 'd' => @duration }.tap do |h| h['k'] = @key if @key h['m'] = @message if @message cache = options[:cache] first = !cache || !cache.known?(self) stale = !first && cache.stale?(self) h['n'] = @name if stale or first h['c'] = @category if stale or (first and @category) h['g'] = @tags if stale or (first and !@tags.empty?) h['t'] = @tickets if stale or (first and !@tickets.empty?) h['a'] = @data if @data # FIXME: cache custom data end end
update(options = {})
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 32 def update options = {} @passed &&= options[:passed] @duration += options[:duration] @message = [ @message, options[:message] ].select{ |m| m }.join("\n\n") if options[:message] end
Private Instance Methods
extract_category(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 98 def extract_category example, groups = [] cat = (groups.collect{ |g| meta(g)[:category] }.unshift(@category) << meta(example)[:category]).compact.last cat ? cat.to_s : nil end
extract_data(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 111 def extract_data example, groups = [] meta(example)[:data] end
extract_grouped(*args)
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 83 def extract_grouped *args self.class.extract_grouped *args end
extract_key(*args)
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 87 def extract_key *args self.class.extract_key *args end
extract_name(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 91 def extract_name example, groups = [] parts = groups.dup parts = parts[0, parts.index{ |p| meta(p)[:grouped] } + 1] if @grouped parts << example unless @grouped parts.collect{ |p| p.description.strip }.join ' ' end
extract_tickets(example, groups = [])
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 107 def extract_tickets example, groups = [] (wrap(@tickets) + groups.collect{ |g| wrap meta(g)[:tickets] } + (wrap meta(example)[:tickets])).flatten.compact.uniq.collect(&:to_s) end
meta(*args)
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 79 def meta *args self.class.meta *args end
wrap(a)
click to toggle source
# File lib/probe_dock_rspec/test_result.rb, line 115 def wrap a a.kind_of?(Array) ? a : [ a ] end