module Capybara::Screenshot::RSpec::HtmlEmbedReporter

Public Instance Methods

extra_failure_content_with_screenshot(exception) click to toggle source
# File lib/capybara-screenshot/rspec/html_embed_reporter.rb, line 12
def extra_failure_content_with_screenshot(exception)
  result  = extra_failure_content_without_screenshot(exception)
  example = @failed_examples.last
  # Ignores saved html file, only saved image will be embedded (if present)
  if (screenshot = example.metadata[:screenshot]) && screenshot[:image]
    result += "<img src='#{image_tag_source(screenshot[:image])}' style='display: block'>"
  end
  result
end

Private Instance Methods

image_tag_source(path) click to toggle source
# File lib/capybara-screenshot/rspec/html_embed_reporter.rb, line 24
def image_tag_source(path)
  if URI.regexp(%w[http https]) =~ path
    path
  else
    image = File.binread(path)
    encoded_img = Base64.encode64(image)
    "data:image/png;base64,#{encoded_img}"
  end
end