class AirborneReport::Report

Public Class Methods

blank() click to toggle source
# File lib/airborne_report/report.rb, line 35
def self.blank
  {
    'tests' => {}
  }
end
new(before_json, notification) click to toggle source
# File lib/airborne_report/report.rb, line 3
def initialize(before_json, notification)
  after_json = {}
  statuses = {
    'all' => 0,
    'passed' => 0,
    'failed' => 0,
    'pending' => 0
  }

  notification.examples.map do |example|
    location = example.metadata[:location]

    hash = {}
    e = example.exception
    if e
      hash['exception'] =  {
        'class' => e.class.name,
        'message' => e.message,
        'backtrace' => e.backtrace,
      }
    end

    after_json[location] = craft_example(before_json, location, example).merge(hash)
    statuses = increment_statuses(statuses, example)
  end

  @json = {
    'statuses' => statuses,
    'tests' => after_json
  }
end

Public Instance Methods

to_hash() click to toggle source
# File lib/airborne_report/report.rb, line 41
def to_hash
  @json
end

Private Instance Methods

craft_example(before_json, location, example) click to toggle source
# File lib/airborne_report/report.rb, line 47
def craft_example(before_json, location, example)
  if before_json[location]
    Message.extra(example).to_hash.merge('responses' => before_json[location])
  else
    Message.extra(example).to_hash
  end
end
increment_statuses(old_statuses, example) click to toggle source
# File lib/airborne_report/report.rb, line 55
def increment_statuses(old_statuses, example)
  new_statuses = old_statuses
  new_statuses['all'] += 1
  new_statuses[example.execution_result.status.to_s] += 1
  new_statuses
end