Sha256: 030ed758d344fc5b9f6287347e510dbdea27e5bb874341b9985b83e40a5f46ea

Contents?: true

Size: 1.3 KB

Versions: 25

Compression:

Stored size: 1.3 KB

Contents

require 'term/ansicolor'
require 'pact/term'

module Pact
  module Matchers
    module Messages

      def match_term_failure_message diff, actual, diff_formatter, color_enabled
        message = "Actual: #{(String === actual ? actual : actual.to_json)}\n\n"
        formatted_diff = diff_formatter.call(diff)
        message + colorize_if_enabled(formatted_diff, color_enabled)
      end

      def match_header_failure_message header_name, expected, actual
        "Expected header \"#{header_name}\" to #{expected_desc(expected)}, but was #{actual_desc(actual)}"
      end

      private

      def colorize_if_enabled formatted_diff, color_enabled
        if color_enabled
          # RSpec wraps each line in the failure message with failure_color, turning it red.
          # To ensure the lines in the diff that should be white, stay white, put an
          # ANSI reset at the start of each line.
          formatted_diff.split("\n").collect{ |line| ::Term::ANSIColor.reset + line }.join("\n")
        else
          formatted_diff
        end
      end

      def expected_desc expected
        case expected
        when NilClass then "be nil"
        else
          "match #{expected.inspect}"
        end
      end

      def actual_desc actual
        actual.nil? ? 'nil' : '"' + actual + '"'
      end

    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
pact-1.13.0 lib/pact/provider/matchers/messages.rb
pact-1.12.1 lib/pact/provider/matchers/messages.rb
pact-1.12.0 lib/pact/provider/matchers/messages.rb
pact-1.11.1 lib/pact/provider/matchers/messages.rb
pact-1.11.0 lib/pact/provider/matchers/messages.rb
pact-1.10.0 lib/pact/provider/matchers/messages.rb
pact-1.9.6 lib/pact/provider/matchers/messages.rb
pact-1.9.5 lib/pact/provider/matchers/messages.rb
pact-1.9.4 lib/pact/provider/matchers/messages.rb
pact-1.9.3 lib/pact/provider/matchers/messages.rb
pact-1.9.2 lib/pact/provider/matchers/messages.rb
pact-1.9.1 lib/pact/provider/matchers/messages.rb
pact-1.9.0 lib/pact/provider/matchers/messages.rb
pact-1.8.1 lib/pact/provider/matchers/messages.rb
pact-1.8.0 lib/pact/provider/matchers/messages.rb
pact-1.7.0 lib/pact/provider/matchers/messages.rb
pact-1.6.0 lib/pact/provider/matchers/messages.rb
pact-1.5.0 lib/pact/provider/matchers/messages.rb
pact-1.4.0 lib/pact/provider/matchers/messages.rb
pact-1.4.0.rc4 lib/pact/provider/matchers/messages.rb