class BlinkaMinitest

Public Class Methods

new(test_result) click to toggle source
# File lib/blinka_minitest.rb, line 2
def initialize(test_result)
  @test_result = test_result
end

Public Instance Methods

backtrace() click to toggle source
# File lib/blinka_minitest.rb, line 36
def backtrace
  return unless @test_result.failure
  Minitest.filter_backtrace(@test_result.failure.backtrace)
end
image() click to toggle source
# File lib/blinka_minitest.rb, line 61
def image
  return unless kind == 'system'

  image_path = "./tmp/screenshots/failures_#{name}.png"
  return unless File.exist?(image_path)

  image_path
end
kind() click to toggle source
# File lib/blinka_minitest.rb, line 25
def kind
  parts = self.path.gsub('test/', '').split('/')
  parts.length > 1 ? parts.first : 'general'
end
line() click to toggle source
# File lib/blinka_minitest.rb, line 10
def line
  @line ||= source_location.last
end
message() click to toggle source
# File lib/blinka_minitest.rb, line 30
def message
  failure = @test_result.failure
  return unless failure
  "#{failure.error.class}: #{failure.error.message}"
end
name() click to toggle source
# File lib/blinka_minitest.rb, line 57
def name
  @test_result.name
end
path() click to toggle source
# File lib/blinka_minitest.rb, line 6
def path
  @path ||= source_location.first.gsub(Dir.getwd, '').delete_prefix('/')
end
report() click to toggle source
# File lib/blinka_minitest.rb, line 70
def report
  {
    backtrace: backtrace,
    message: message,
    line: line,
    image: image,
    kind: kind,
    name: name,
    path: path,
    result: result,
    time: time
  }.compact
end
result() click to toggle source
# File lib/blinka_minitest.rb, line 41
def result
  if @test_result.error?
    :error
  elsif @test_result.skipped?
    :skip
  elsif @test_result.failure
    :fail
  else
    :pass
  end
end
source_location() click to toggle source

Handle broken API in Minitest between 5.10 and 5.11 github.com/minitest-reporters/minitest-reporters/blob/e9092460b5a5cf5ca9eb375428217cbb2a7f6dbb/lib/minitest/reporters/default_reporter.rb#L159

# File lib/blinka_minitest.rb, line 16
def source_location
  @source_location ||=
    if @test_result.respond_to?(:klass)
      @test_result.source_location
    else
      @test_result.method(@test_result.name).source_location
    end
end
time() click to toggle source
# File lib/blinka_minitest.rb, line 53
def time
  @test_result.time
end