Sha256: 90bba981e9c7347d924ad42067b2a9493685a392b6292b829510cea189e4aa01

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

require 'turnip_formatter/step_template/base'
require 'slim'

module TurnipFormatter
  module StepTemplate
    class Exception < Base
      on_failed :build_failed
      on_pending :build_pending

      def self.css
        <<-EOS
          section.scenario div.steps div.step_exception {
              margin: 1em 0em;
              padding: 1em;
              border: 1px solid #999999;
              background-color: #eee8d5;
              color: #586e75;
          }

          section.scenario div.steps div.step_exception dd {
              margin-top: 1em;
              margin-left: 1em;
          }
        EOS
      end

      #
      # @param  [RSpec::Core::Example]  example
      #
      def build_failed(example)
        exception = example.exception

        if example.exception.is_a?(RSpec::Core::MultipleExceptionError)
          exception = example.exception.all_exceptions.first
        end

        build(exception.to_s, formatted_backtrace(example, exception))
      end

      #
      # @param  [RSpec::Core::Example]  example
      #
      def build_pending(example)
        build(example.execution_result.pending_message, [example.location])
      end

      private

      def build(message, backtrace)
        template_step_exception.render(Object.new, { message: message, backtrace: backtrace })
      end

      def template_step_exception
        @template_step_exception ||= Slim::Template.new(File.dirname(__FILE__) + "/exception.slim")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
turnip_formatter-0.6.0.pre.beta.6 lib/turnip_formatter/step_template/exception.rb
turnip_formatter-0.6.0.pre.beta.5 lib/turnip_formatter/step_template/exception.rb